Linux对用户和用户组的管理
用户的账号一方面不仅可以帮助系统管理员对使用系统的用户进行跟踪,而且还能控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性的保护。
用户账号的管理包括以下几个方面:注意,每个用户账号都拥有一个唯一的用户名和密码。用户在登录时输入正确的用户名和密码后,就能够进入系统和主目录。
- 用户账号的添加、删除与修改;
- 用户组的创建与修改;
- 用户配置文件。
用户与用户组是什么
用户是指使用操作系统的人;用户组指在操作系统中具有相同系统权限的一组用户。Linux 系统对账号和组的管理是通过 ID 号来实现的。用户在登录系统时,输入用户名和与之对应的密码,操作系统会先将用户名转化为 ID 号,然后判断该账号是否存在,并比对密码是否正确。
Linux 操作系统中的组分为基本组和附加组,一个用户同一时刻只可以加入一个基本组中,但可以同时加入多个附加组中。默认在创建用户时,系统默认会自动创建同名的组,并设置用户加入该基本组中。注意在 Linux 系统中,用户的 ID 号被称为 UID,用户组 ID 号被称为 GID。其中,UID 为 0 时,代表系统最高管理员,也就是 root 账号。
用户和用户组的对应关系有以下 4 种:
- 一对一:一个用户可以存在一个组中,是组中的唯一成员。
- 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限。
- 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
- 多对多:多个用户可以存在多个组中。
用户和用户组的配置文件
在 Linux 系统中包含 4 个配置文件,分别为 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 文件。1) /etc/passwd文件
/etc/passwd 文件存储了系统中所有用户的基本信息,也被称为用户信息数据库。在 /etc/passwd 文件中,每一个用户都占有一行记录,并且用冒号划分成 7 个字段,如图 1 所示。
[root@bogon ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
......
- root:第 1 个字段,表示用户名。
- x:第 2 个字段,表示用户密码。如果是 x,即该用户在登录系统时必须使用密码;如果为空,则该用户在登录系统时不需要输入密码。
- 0:第 3 个字段,表示该用户的 UID。
- 0:第 4 个字段,表示该用户组的 GID。
- root:第 5 个字段,表示该用户的文本描述,即注释信息。
- /root:第 6 个字段,表示该用户主目录的位置。
- /bin/bash:第 7 个字段,表示当该用户登录系统后,第一个要执行的进程即 Shell。
注意,/etc/passwd 文件中的密码字段都被设置成了 x,这并不是说所有的用户账号都使用相同的密码;/bin/Bash 为可登录系统的 Shell,而 /sbin/nologin 表示该账号无法登录系统。
2) /etc/shadow文件
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息。/etc/shadow 文件只有 root 用户才有查看权限,其他用户没有此权限,这样就保证了用户密码的安全性。/etc/shadow 文件存储了所有用户的密码信息,每一个用户占用一行记录,如下所示:
[root@bogon ~]# cat /etc/shadow
root:$1$QfSojmtW$5wox.SEvltl/2nt0jxEnq0:18463:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
......
- 第 1 个字段:账号名称。
- 第 2 个字段:加密后的密码。当账号未设置密码时显示为“!!”,当账号设置密码时密码被加密后显示。
- 第 3 个字段:上次修改密码的时间距离 1970 年 1 月 1 日有多少天。
- 第 4 个字段:密码至少使用多少天才可以修改。
- 第 5 个字段:密码多少天之后必须修改。
- 第 6 个字段:密码过期前的多少天提醒用户更改密码。
- 第 7 个字段:密码过期多少天之后禁止使用该账号。
- 第 8 个字段:用户账号被禁止使用的日期,从 1970 年 1 月 1 日到当天。
- 第 9 个字段:暂时保留未使用的字段。
3) /etc/group文件
/etc/group 文件是用户组的配置文件,即用户组的所有信息都存放在此文件中。/etc/group 文件包含 Linux 系统中使用到的每个组的信息,如下所示:
[root@bogon ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
- 第 1 个字段:表示组名。
- 第 2 个字段:表示组密码。
- 第 3 个字段:表示用户组的 GID。
- 第 4 个字段:表示属于该组的成员列表,仅显示附加成员,基本成员不显示。
注意,在用户组列表中,有些组并没有显示出用户,但并不说明组中没有该成员。当用户在 /etc/passwd 文件中指定某个组作为默认组时,则该用户不会作为该组成员出现在 /etc/group 文件中。
4) /etc/gshadow文件
/etc/gshadow 文件,用于存储 Linux 系统中用户组的密码信息。/etc/gshadow 文件也只有 root 用户才有查看权限,从而保证了用户组密码的安全性。通过使用命令
cat /etc/gshadow
来查看文件存储信息,如下所示:
[root@bogon ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
disk:::
lp:::daemon
mem:::
......
- 第 1 个字段:表示组名。
- 第 2 个字段:表示组密码,一般为组管理员密码。对于大多数用户来说,通常不设置组密码,字段显示常为空,但有时为“!”,指的是该群组没有组密码,也不设有群组管理员。
- 第 3 个字段:表示组管理员。当有用户想要加入某群组而 root 不能及时作出回应时,组管理员就可以将用户加入自己管理的用户组中。
- 第 4 个字段:表示组成员。显示这个用户组中有的附加用户。
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。