/etc/passwd文件详解:Linux用户管理关键信息

需积分: 9 0 下载量 48 浏览量 更新于2024-08-25 收藏 1.51MB PPT 举报
/etc/passwd是Linux操作系统中的一个重要配置文件,它存储了系统用户的详细信息,用于用户登录和权限管理。文件中的每个记录代表一个用户,按照特定的格式组织: 1. **用户名**: 用户登录时使用的唯一标识符,如root、普通用户(UID500-60000)和伪用户(UID1-499,主要用于系统服务)。 2. **密码**: 实际的密码存储并不在/etc/passwd中,而是通过加密方式保存在/etc/shadow文件中,以提高安全性。用户在/etc/passwd中看到的是一个星号(*)表示密码已被替换。 3. **UID**: 用户标识号,是唯一的,0代表超级用户(root),500-60000范围内的数字代表普通用户,1-499用于伪用户。 4. **GID**: 缺省组标识号,表示用户所属的初始用户组。 5. **注释性描述**: 可能包含用户全名、电话号码或其他个人资料,但不是必需的。 6. **宿主目录**: 用户登录后默认进入的目录,如/home/username。 7. **命令解释器**: 用户登录后使用的Shell环境,默认为bash,用于命令行交互。 Linux用户管理涉及多个配置文件,包括: - **/etc/passwd**: 存储基本用户信息,如/bin/bash表明普通用户也可以用shell来更改密码。 - **/etc/shadow**: 存储密码哈希值和密码策略,如密码过期时间和最小修改间隔。 - **/etc/group**: 组管理文件,记录用户组名称、组密码(不常用)、GID以及组成员列表。 - **/etc/gshadow**: 类似于/etc/group,但仅存储组密码信息,用于安全考虑。 - **/etc/login.defs**: 定义用户账户默认设置,如密码有效期和最小密码长度等。 - **/etc/default/useradd**: 控制新用户账户创建的默认行为。 - **/etc/skel**: 提供新用户默认目录结构和文件。 在Linux中,超级用户(root)和普通用户权限不同,普通用户可以更改密码是因为系统允许通过特定的命令行工具,如passwd或chpasswd,这些工具以超级用户的身份执行,从而实现权限升级。同时,普通用户更改密码时,实际上是在运行具有SetUID权限的程序,这些程序允许在执行过程中提升权限,以便完成密码修改操作。SetUID是Unix/Linux系统中的一个权限控制机制,它允许可执行文件以其他用户身份运行,但通常仅应用于对系统安全至关重要的程序。