Linux学习笔记:7.系统用户和用户组管理

706 查看

认识/etc/passwd和/etc/shadow

这两个目录在Linux中的重要性不言而喻,和你的登录有关。
先看看/etc/passwd,示例代码如下:

‘/etc/passwd’ 由 ‘:’ 分割成7个字段,每个字段的具体含义是:

(1)用户名(如第一行中的root就是用户名),代表用户账号的字符串。用户名字符可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。

(2)存放的就是该账号的口令。

(3)这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root。通常uid的取值范围是0~65535,0是超级用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始。

(4)表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上类似。

(5)注释说明,该字段没有实际意义,通常记录该用户的一些属性。

(6)用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以自定义的。

(7)shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。

然后是/etc/shadow这个文件,和/etc/passwd类似,用 ‘:’ 分割成9个字段。

(1)用户名,跟/etc/passwd对应。

(2)用户密码,这个才是该账号的真正的密码,已经加密过。

(3)上次更改密码的日期,计算得来的,距离1970年1月1日到上次更改密码的日期。

(4)要过多少天才可以更改密码,默认是0,即不限制。

(5)密码多少天后到期。即在多少天内必须更改密码,默认是99999,可以理解为永远不需要改。

(6)密码到期前的警告期限。

(7)账号失效期限。

(8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。

(9)作为保留用的,没有什么意义。

新增/删除用户和用户组

新增一个组

语法 : groupadd [-g GID] groupname

不加 “-g” 选项则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的。
“-g” 选项可以自定义gid.

删除组

命令 : groupdel

有一种情况不能删除组,这是因为miraclewong组中包含miraclewong账户,只有删除miraclewong账户后才可以删除该组。

增加账户

语法 : useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

‘-u’ 自定义UID
‘-g’ 使其属于已经存在的某个组,后面可以跟组id, 也可以跟组名
‘-d’ 自定义用户的家目录
‘-M’ 不建立家目录
‘-s’ 自定义shell

‘useradd’ 不加任何选项直接跟用户名,则会创建一个跟用户名同样名字的组。

‘-g’ 选项后面跟一个不存在的gid会报错,提示该组不存在。刚刚上面说过 ‘-M’ 选项加上后则不建立用户家目录,但是在/etc/passwd文件中仍然有这个字段。但是您使用 ls /home/user11 查看一下会提示该目录不存在。所以 ‘-M’ 选项的作用只是不创建那个目录。

删除账户的命令

语法 : userdel [-r] username

‘-r’ 选项的作用只有一个,就是删除账户的时候连带账户的家目录一起删除。

其他的命令:

passwd:修改密码
mkpasswd:生成密码
chfn:更改用户的finger
su:用于切换用户,切换到root用户。

参考资料:
1.李世明《跟阿铭学Linux》
2.《Ubuntu Linux从入门到精通》