首页 > 解决方案 > /etc/passwd 与 /usr/bin/passwd

问题描述

在我的 CentOS 7 系统(和其他 Linux 版本)中,我注意到有两个 passwd 文件,/etc/passwd 和 /usr/bin/passwd。前者包含有关用户、组、默认 shell 等的纯文本信息,而后者是“passwd”命令调用的二进制 (?) 文件(如“which passwd”所建议的那样)。

这些可能是基本问题,但我已经在论坛上尝试了手册和解释,尽管没有完全阐明我的心理图景:

1)每个文件的目的是什么,为什么我们都有?2) 这两个文件是否相关—— /usr/bin/passwd 是 /etc/passwd 的二进制版本,为了提高效率而不断更新?3)这些文件的适当权限是什么(如果我尝试从该用户的帐户更改非 sudoer 用户的登录密码,我会收到“passwd:身份验证令牌操作错误”,这就是提示这行问题的原因开始)。

感谢您的阅读,我期待您的想法!

标签: unixpasswd

解决方案


这两个文件是不同的,用于不同的目的。

  • /etc/passwd是用户数据库(有趣的事实:与它的名称相反,它不存储密码 - 那些存储(可能以散列形式)在/etc/shadow) - 见man 5 passwd(即passwd(5)),man 5 shadow(即shadow(5))。

  • /usr/bin/passwd是应该修改存储在/etc/passwd和中的用户记录的实用程序/etc/shadow。见man 1 passwd(即passwd(1)


推荐阅读