系统会对每个用户的身份做唯一标识,用户可隶属于多个组
用户
系统的每个用户都拥有唯一的登录名(用户名)与之对应的整数型用户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系统上,超级用户凌驾于系统的权限检查之上。因此,无论对文件施以何种访问权限限制,超级用户都可以访问系统中的任何文件,也能发送信号干预系统运行时的所有用户进程。
- 系统管理员可以使用超级用户账户来执行各种系统管理任务
总结
- 每个用户都拥有一个唯一的用户名和一个与之相关的数值型用户标识符UID。
- 用于可以隶属于一个组或者多个组。
- 每个组都拥有一个唯一的名称和一个组标识符UID
用户和组ID的主要用途由二:
- 确定各种系统资源的所有权
- 对赋予进程访问上述资源的权限加以控制。
比方说,每个文件都属于某个特定的用户和组,而每个进程也拥有相应的用户 ID 和组 ID 属性,这就决定了进程的所有者,以及进程访问文件时所拥有的权限