定期校验/etc/passwd完整性需四步:一是用sha256sum生成并保护哈希基线;二是用pwck检查字段、UID、shell等语义合法性;三是验证权限为644并筛查空密码及异常UID账户;四是通过rpm -V溯源包级变更,确保文件未被非法覆盖。

定期校验 /etc/passwd 的完整性,核心是确认文件内容未被意外或恶意篡改,同时保障其格式合法、权限合规、账户逻辑合理。这不是一次性的操作,而应纳入日常安全巡检流程。
用 sha256sum 做可信基线比对
在系统处于可信状态时(如刚完成加固或重装后),立即生成哈希快照:
- 运行
sha256sum /etc/passwd > /root/etc_passwd.sha256,把校验值存到 root 家目录下 - 后续定期执行
sha256sum -c /root/etc_passwd.sha256,输出/etc/passwd: OK表示未变;若显示FAILED,说明内容已修改,需立刻排查原因 - 注意:校验文件本身必须受保护——建议配合
chown root:root /root/etc_passwd.sha256 && chmod 600 /root/etc_passwd.sha256,避免被覆盖或伪造
用 pwck 验证账号结构合法性
pwck 不检查哈希值是否变化,而是专注语义层面的完整性:字段数、UID 唯一性、主目录存在性、shell 是否有效等。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 直接运行
pwck,它会自动检查/etc/passwd和/etc/shadow(若存在) - 看到
error: line xxx: missing field或user xxx: UID not unique属于致命错误,必须人工修正 - 遇到
warning: directory /home/xxx does not exist等非致命提示,建议用usermod或删除残留账户,避免登录异常
同步检查权限与账户风险项
完整性不仅指内容不变,还包括权限设置正确、无高危账户配置:
- 确认权限:运行
ls -l /etc/passwd,结果应为-rw-r--r--(即 644);不是 600,也不是 666 - 筛查空密码用户:
sudo awk -F: '$2 == "" {print $1}' /etc/shadow—— 若有输出,说明存在无密码可直登账户,属严重风险 - 检查异常 UID:
awk -F: '$3 < 1000 && $1 != "root" {print}' /etc/passwd,重点看是否有非系统账户却拥有低 UID
结合 rpm -V 进行包级溯源(适用于 RPM 系统)
如果该文件由系统包管理器安装(如 CentOS/RHEL 中由 setup 包提供),可用 rpm 验证原始来源是否被覆盖:
- 运行
rpm -qf /etc/passwd查看归属包名(通常是setup) - 再执行
rpm -V setup,若输出类似S.5....T. /etc/passwd,表示大小(S)、MD5(5)、时间戳(T)三项不一致,说明文件被手动改动过 - 此时可从同版本 ISO 或官方仓库重新提取干净副本:
rpm2cpio setup-*.rpm | cpio -idmv ./etc/passwd

















