本机的用户账号数据储存于/etc/passwd文件中。与其他的配置文件一样,passwd 也是一个文本文件,因此,你可以直接使用文字处理程序,例如 cat 或 less 浏览其中的内容。
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
/etc/passwd 权限必须是0644,每一行代表一个用户的账号数据,每一行又使用冒号(:)分隔为几个部分
USERNAME:PASSWORD:UID:GID:COMMENT:HOMEDIR:SHELL
USERNAME: 用户识别名称,也是登录的名称
PASSWORD: 密码位,用于存储用户的密码,为了安全起见,密码放在另一个文件中,这里统一用x
UID: 用户识别号,0表示为管理员,非0为普通用户
GID: 组识别号,用来识别用户组的身份,同样0为管理员组,非0为系统群组或者自定义组
COMMENT: 描述信息
HOMEDIR: 家目录位置
SHELL: shell类型
这个文件我们就介绍完了,现在我们来看下用户管理的相关命令
useradd
-u UID 用来指定账号的 UID,如果省略这个参数,useradd会自动以最后一个可用的 UID 作为新账号的 UID。 如果你指定的 UID 已经使用过,useradd 将会显示错误信息,此时你可以配合 -o 参数,告诉 useradd 允许重复的 UID。
-g GROUP 定义用户的主要群组。使用 -g 参数前,GROUP 必须已经存在。
-d HOME 指定用户的主目录。默认的主目录是建立在 /home/ 目录下,而且目录名称与用户名称相同。
-s SHELL 指定用户登录执行的程序。
-c COMMENT 指定用户的批注说明。如果批注文字包含空白,请记得使用双引号 (") 包起来。
-r 这个参数用来指出建立一个系统用户的账号。
这些参数大多数可以同时使用,可以根据自己的需求指定,如:
useradd -u 1500 -g hello -d /home/hello -s /bin/bash -c "this is a test user" hello
usermod 是用来修改用户相关信息的,和useradd使用的参数很多是相同的,用法也是一样的,除此之外usermod命令还有一些额外的参数
-l NEWNAME 修改账号的用户名称,NEWNAME 即是新的账号名称。
-L 锁定账号,一经锁定的账号将无法用来登录系统。
-U 解除锁定。
userdel 删除用户,有一个常用参数-r,含义是删除用户的相关数据,包括家目录,邮箱。
id
[root@manage01 ~]# id hello
uid=1000(hello) gid=1000(hello) 组=1000(hello)
[root@manage01 ~]# id -u hello
1000
whoami
[root@manage01 ~]# whoami
root