【一】group 文件
`group` 文件是用户组的配置文件,其存放路径为 `/etc/group`。此文件记录了组的ID。通过 `cat` 命令可以查看该文件的内容,如图所示:
文件中的每一行代表一个用户组,各字段用冒号“:”分隔,具体字段含义如表所示:
字段序号 | 描述 |
1 | 用户组名,与 `passwd` 文件中的用户名一样,组名不能重复 |
2 | 用户组密码,这里的“x”只是密码标识,实际加密后的组密码保存在 `/etc/gshadow` 文件中 |
3 | 用户组 GID,这里的组 GID 与 `passwd` 文件中的第4个字段的 GID 相对应 |
4 | 从属该用户组的用户列表,如果有多个用户,用逗号分隔。如果此字段为空,不一定表示该用户组没有用户,因为如果该用户组是某个用户的主用户组,该用户不会显示在列表中 |
在创建用户时,如果没有为用户指定用户组,系统会为该用户创建一个同名的用户组。例如,在创建 `mrkj` 用户时,如果未指定用户组,系统会默认其用户组为 `mrkj`。用户密码是为了验证用户身份,那么用户组密码是用来做什么的呢?用户组密码主要用于指定组管理员。由于系统中可能有很多账户,root 用户可能没有时间进行所有用户组的管理,此时可以为用户组指定管理员。如果有用户需要加入或退出某个用户组,可以由该组管理员代替 root 用户进行管理,从而分担超级管理员的工作。
【二】gshadow 文件
`gshadow` 文件存放在 `/etc/gshadow` 路径下。`gshadow` 是 `/etc/group` 文件的影子文件,用户组的管理密码保存在该文件中。一般来说,`gshadow` 文件的行数应与 `group` 文件的行数相同。`gshadow` 文件每行存储着用户组的信息,与 `group` 文件互为补充。两个文件合在一起可以完整描述系统中的每个用户组。对于大型服务器运维,针对众多用户和组,定制复杂的权限模型,设置用户组密码是非常必要的。例如,如果我们不希望某些非用户组成员永久拥有用户组的权限和特性,可以通过密码验证的方式让某些用户临时拥有一些用户组的特性,这时就需要使用用户组密码。`gshadow` 文件每行有4个字段,字段之间用冒号“:”分隔,`gshadow` 文件内容如图所示:
字段说明如表所示:
字段序号 | 描述 |
1 | 用户组名,与 `/etc/group` 文件中的组名相对应 |
2 | 用户组加密后的密码,多数情况为空,显示为“!”时表示没有组密码和组管理员 |
3 | 组管理员,如果有多个组管理员,用逗号分隔 |
4 | 从属该用户组的用户列表,与 `/etc/group` 文件中附加组的内容相同 |