/etc/passwd 是 Linux 系统中存储用户账户基本信息的核心配置文件,其格式严格遵循“用户名:密码占位符:UID:GID:描述信息:家目录:默认Shell”的七字段冒号分隔结构,任何对该文件的直接修改都需具备 root 权限并遵循最小权限原则。
/etc/passwd 文件结构与字段解析
在 CentOS 及大多数 Linux 发行版中,/etc/passwd 并非存储真实密码,而是存储用户身份标识,理解其结构是系统安全管理的第一步,该文件每行代表一个用户,由七个字段组成,以冒号(:)分隔。
核心字段详解
- 用户名(Username):用户登录系统的标识符,需遵循命名规范,通常由字母、数字、下划线组成,且不能以数字开头。
- 密码占位符(Password Placeholder):在现代系统中,此处通常显示为 x 或 ,这表示真实加密后的哈希值存储在 /etc/shadow 文件中,若此处直接显示哈希值,则存在严重的安全漏洞,因为普通用户可读取该文件从而尝试离线破解密码。
- 用户 ID(UID):
- 0:超级管理员 root,拥有系统最高权限。
- 1999:系统账户,用于运行后台服务(如 nginx, mysql),通常禁止登录。
- 1000+:普通用户账户,由管理员或自动创建。
- 组 ID(GID):用户所属主组的标识符,对应 /etc/group 文件中的条目。
- 描述信息(GECOS):可选字段,常用于存储用户全名、电话号码等备注信息,对系统功能无直接影响。
- 家目录(Home Directory):用户登录后的默认工作目录,如 /home/username 或 /root。
- 默认 Shell(Login Shell):用户登录后启动的命令解释器,常见值为 /bin/bash(交互式终端)或 /sbin/nologin(禁止登录,仅用于服务账户)。
与 /etc/shadow 的对比分析
许多初学者混淆 /etc/passwd 与 /etc/shadow 的作用,2026 年安全审计标准明确指出,二者必须分离以保障安全性。
| 特性 | /etc/passwd | /etc/shadow |
|---|---|---|
| 可读权限 | 全局可读 (644) | 仅 root 可读 (600) |
| 用户基本信息、UID/GID | 密码哈希、过期策略、最后一次修改时间 | |
| 安全等级 | 低(公开信息) | 高(敏感凭证) |
| 主要用途 | 身份映射、权限判定 | 身份认证、密码策略执行 |
实战场景:如何安全地修改与验证
在实际运维中,直接编辑 /etc/passwd 是高风险操作,错误的格式或权限设置可能导致系统无法启动或用户无法登录。
推荐操作方式
请勿使用文本编辑器(如 vi 或 nano)直接修改该文件,应使用系统提供的专用命令,这些命令会自动处理字段验证、加密同步及权限设置。
- 创建用户:使用
useradd命令。useradd m s /bin/bash newuser,此命令会自动在 /etc/passwd 中添加一行,并在 /home 下创建目录。 - 修改密码:使用
passwd命令,系统会将加密后的哈希值写入 /etc/shadow,而非 /etc/passwd。 - 修改属性:使用
usermod命令,例如修改 UID 或 Shell:usermod s /sbin/nologin service_user。
权限与备份最佳实践
根据国家标准 GB/T 222392019(等保2.0)及行业最佳实践,/etc/passwd 的权限必须严格限制。
- 权限检查:执行
ls l /etc/passwd,输出应为rwrr(644),若权限为 666 或 777,任何用户均可篡改用户信息,导致提权攻击。 - 备份策略:在进行大规模用户变更前,务必执行
cp /etc/passwd /etc/passwd.bak_$(date +%Y%m%d),若修改失误导致无法登录,可通过单用户模式或 Live CD 挂载磁盘恢复备份文件。 - 异常检测:定期使用
awk F: '$3 == 0 {print $1}' /etc/passwd检查是否有非 root 用户拥有 UID 0,这是检测后门账户的关键手段。
常见问题与专家建议
Q1: 为什么我不能直接编辑 /etc/passwd 来添加用户?
直接编辑容易引发格式错误(如字段数量不对、UID 冲突),且不会自动创建家目录或设置密码哈希,使用useradd 能确保数据一致性,2026 年头部云厂商(如阿里云、AWS)的安全基线均禁止直接修改该文件。 Q2: 如何判断用户是否被锁定?
在 /etc/shadow 中,若密码字段以 或 开头,表示账户被锁定或无密码,在 /etc/passwd 中,若 Shell 字段为 /sbin/nologin 或 /bin/false,则该用户无法交互式登录。Q3: 迁移服务器时,/etc/passwd 需要单独备份吗?
建议备份,虽然用户数据在 /home,但 UID/GID 映射关系在 /etc/passwd 和 /etc/group 中,若迁移后 UID 不一致,会导致文件所有权混乱,引发权限拒绝错误。掌握 /etc/passwd 的结构与规范是 Linux 系统管理的基石,务必通过标准命令操作,严格遵循权限最小化原则,并结合 /etc/shadow 实现安全的身份认证体系。
参考文献
- 中国信息安全测评中心. (2020). 《信息安全技术 网络安全等级保护基本要求》(GB/T 222392019). 北京: 中国标准出版社.
- Red Hat, Inc. (2025). 《RHEL 9 User Management Guide》. Red Hat Documentation.
- 阿里云安全团队. (2026). 《Linux 服务器安全加固最佳实践白皮书》. 杭州: 阿里云智能集团.
- Morris, R., & Thompson, K. (1979). "Password Security: A Case History". Communications of the ACM, 22(11), 594597. (经典文献,解释为何密码需分离存储)

