7个字段
/etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
✔ 第一个字段 用户名称
保存的是用户名称。不过大家需要注意,用户名称只是为了方便管理员记忆,Linux 系统是通过用户 ID (UID) 来区分不同用户、分配用户权限的。而用户名称和 UID 的对应正是通过 /etc/passwd 这个文件来定义的。
✔ 第二个字段 密码标志
密码标志这里的"x"代表的是密码标志,而不是真正的密码,真正的密码是保存在 /etc/shadow 文件中的。
✔ 第三个字段 用户 ID(UID),
我们已经知道系统是通过 UID 来识别不同的用户和分配用户权限的。这些 UID 是有使用限制和要求的:0:超级用户 UID。如果用户 UID 为 0,则代表这个账号是管理员账号。在 Linux 中如何把普通用户升级成管理员呢?只需把其他用户的 UID 修改为 0 就可以了,
✔ 第四个字段用户的组 ID(GID),也就是这个用户的初始组的标志号。这里需要解释一下初始组和附加组的概念。
所谓初始组,指用户一登陆录就立刻拥有这个用户组的相关权限。每个用户的初始组只能有一个,一般就是将和这个用户的用户名相同的组名作为这个用户的初始组。举例来说,我们手工添加用户 lamp,在建立用户 lamp 的同时就会建立 lamp 组作为 lamp 用户的初始组。
所谓附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组要把用户再加入其他的用户组外,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。
✔ 第五个字段 用户的简单说明
没有什么特殊作用,可以不写。
✔ 第六个字段 用户的家目录,
就是用户登录后有操作权限的访问目录,我们把这个目录称为用户的家目录。
✔ 第七个字段 登录之后的Shell
Shell 就是 Linux 的命令解释器。管理员输入的密码都是 ASCII 码,也就是类似 abcd 的英文。但是系统可以识别的编码是类似 0101 的机器语言。Shell 的作用就是把 ASCII 编码的命令翻译成系统可以识别的机器语言,同时把系统的执行结果翻译为用户可以识别的 ASCII 编码。Linux 的标准 Shell 就是 /bin/bash。
在 /etc/passw 文件中,大家可以把这个字段理解为用户登录之后所拥有的权限。如果写入的是 Linux 的标准 Shell,/bin/bash 就代表这个用户拥有权限范围内的所有权限