首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/etc/passwd vs /usr/bin/passwd

/etc/passwd vs /usr/bin/passwd
EN

Stack Overflow用户
提问于 2018-06-18 07:17:11
回答 2查看 10.2K关注 0票数 8

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

这些可能是基本的问题,但我在论坛上尝试了一些手册和解释,尽管没有完全阐明我的想法:

1)每个文件的目的是什么,为什么两者都有? 2)这两个文件是相关的- /usr/bin/passwd是一个不断更新的/etc/passwd的二进制版本,是为了提高效率吗? 3)这些文件的适当权限是什么(如果我试图从该用户的帐户中更改非自选用户的登录密码,则会得到"passwd:身份验证令牌操作错误“,这是引发这一问题的原因)。

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

EN

回答 2

Stack Overflow用户

发布于 2018-06-18 07:28:49

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

  • /etc/passwd是用户数据库(有趣的事实:与其名称相反,它不存储密码(可能以散列形式存储在/etc/shadow中)--参见man 5 passwd (即护照(5))、man 5 shadow (即阴影(5))。
  • /usr/bin/passwd是用来修改存储在/etc/passwd/etc/shadow中的用户记录的实用工具。见man 1 passwd (即护照(1))
票数 7
EN

Stack Overflow用户

发布于 2018-06-18 07:38:10

  1. /etc/passwdpassword file,但它不需要包含密码-见下文。它是一个纯文本文件,包含给定系统上的用户和组列表。您可以在man 5 passwd中阅读更多有关它的信息: /etc/passwd包含每个用户帐户的一行,其中七个字段由冒号(":")分隔。这些字段是:. login·可选加密密码·数值用户ID·数值组ID·用户名或注释字段·user home目录·可选用户命令解释器

/usr/bin/passwd是一个用于更改用户密码的实用程序,通常是阴影包的一部分。讽刺的是,并不是说用户的密码不是存储在/etc/passwd中,而是存储在当今系统上的/etc/shadow中,因此password file可能有点误导。来自man 5 passwd

如果密码字段是小写的"x",则加密的密码实际上存储在阴影(5)文件中;必须在/etc/阴影文件中有相应的行,否则用户帐户无效。

普通用户甚至无法读取/etc/shadow,因为它在此文件上没有读取权限,但可以使用passwd实用程序更改密码,因为passwd设置了setuid位:https://unix.stackexchange.com/questions/101467/how-does-the-passwd-command-gain-root-user-permissions

  1. 不,/usr/bin/passwd不是/etc/passwd的二进制版本。
  2. 请参见: $ ls -l /etc/passwd -rw-r-r-1根根1335年7月14日/etc/passwd $ ls -l /usr/bin/passwd -rws-x-x1根根77689,2014年7月2日/usr/bin/passwd $ -l /etc/影子-rw-r-2016年8月5日 不能将其他用户的密码更改为常规用户。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50904342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档