05-用户和组
2.3 用户和组
系统会对每个用户的身份做唯一标识,用户可隶属于多个组。
用户
系统的每个用户都拥有唯一的登录名(用户名)和与之相对应的整数型用户ID(UID)。系统密码文件/etc/passwd为每个用户都定义有一行记录,除了上述两项信息外,该记录还包含如下信息。
- 组ID:用户所属第一个组的整数型组ID。
- 主目录:用户登录后所居于的初始目录。
- 登录shell:执行以解释用户命令的程序名称。
该记录还能以加密形式保存用户密码。然而,出于安全考虑,用户密码往往存储于单独的shadow密码文件中,仅供特权用户阅读。
组
出于管理目的,尤其是为了控制对文件和其他资源的访问,将多个用户分组是非常实用的做法。例如,某项目的开发团队人员需要共享同一组文件,就可以将他们编为同一组的成员。在早期的UNIX实现中,一个用户只能隶属于一个组。BSD率先允许一个用户同时属于多个组,这一理念后来被其他UNIX实现纷纷效仿,并最终成为POSIX.1-1990标准。每个用户组都对应着系统组文件/etc/group中的一行记录,该记录包含如下信息。
- 组名:(唯一的)组名称。
- 组ID(GID):与组相关的整数型ID。
- 用户列表:隶属于该组的用户登录名列表(通过密码文件记录的group ID字段未能标识出的该组其他成员,也在此列),以逗号分隔。
超级用户
超级用户在系统中享有特权。超级用户账号的用户ID为0,通常登录名为root。在一般的UNIX系统上,超级用户凌驾于系统的权限检查之上。因此,无论对文件施以何种访问权限限制,超级用户都可以访问系统中的任何文件,也能发送信号干预系统运行的所有用户进程。系统管理员可以使用超级用户账号来执行各种系统管理任务。