/etc/shadow和/etc/passwd之间的区别是什么?

两个文件 /etc/shadow/etc/passwd 看起来是一样的,它们只是报告了一些关于账户的信息。它们之间有什么区别呢?
3个回答

简短回答:

passwd 存储一般用户信息,而 shadow 存储用户密码信息。

稍长回答:

当创建新用户时,passwd 文件用于存储用户信息(如用户名、用户ID、组ID、家目录位置、登录Shell等)。

shadow 文件用于存储重要信息(如用户密码的加密形式、密码过期日期、是否需要更改密码、密码更改的最小和最大时间间隔等),这些信息同样是在创建新用户时被存储。

一些有趣的额外信息: passwdshadow


查看命令或实用程序的手册页总是非常有用的。在命令行上,只需输入:man passwd。 - kingmilo

The Linux Documentation Project - 6.6. Linux Password & Shadow File Formats中:
传统的Unix系统将用户帐户信息,包括单向哈希密码,保存在名为/etc/passwd的文本文件中。由于该文件被许多工具(如ls)用于显示文件所有权等,通过将用户ID与用户名进行匹配,因此该文件需要对所有人可读。因此,这可能会带来一定的安全风险。
另一种存储帐户信息的方法是使用阴影密码格式,这是我经常使用的方法。与传统方法一样,该方法以兼容格式将帐户信息存储在/etc/passwd文件中。但是,密码以单个“x”字符的形式存储(即实际上不存储在此文件中)。第二个文件/etc/shadow包含加密密码以及其他信息,例如帐户或密码过期值等。/etc/shadow文件仅可由root帐户读取,因此安全风险较小。

/etc/shadow

这个文件以加密格式存储了用户账户的实际密码,同时还包含与用户密码相关的其他属性,即它存储了安全的用户账户信息。所有字段都由冒号(:)符号分隔点击此处了解更多

/etc/passwd

这个文件存储了登录时所需的基本信息,即用户账户信息。/etc/passwd是一个文本文件,其中包含系统账户的列表,为每个账户提供一些有用的信息,如用户ID、组ID、主目录、shell等点击此处了解更多