/etc/passwd 与 /usr/bin/passwd

Ste*_*vic 6 unix passwd

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

这些可能是基本问题,但我已经尝试过使用论坛上的手册和解释的运气,尽管没有完全澄清我的心理图景:

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

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

el.*_*ado 6

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

  • /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)