了解/etc/shadow文件

linux

在Linux系统上可以使用几种不同的身份验证方案。最常用和标准的方案是对 /etc/passwd/etc/shadow文件执行认证。

/etc/shadow是一个文本文件,其中包含有关系统用户密码的信息。它由用户root和shadow组拥有权限,并且具有640权限。

/etc/shadow格式

/etc/shadow文件每行包含一个条目,每个条目代表一个用户帐户。您可以使用文本编辑器或cat之类的命令查看文件的内容。

sudo cat /etc/shadow

通常,第一行描述了root用户,然后是系统用户和普通用户帐户。新条目将附加在文件末尾。

/etc/shadow文件的每一行包含九个逗号分隔的字段:

mark:$6$.n.:17736:0:99999:7:::

[--] [----] [---] - [---] ----

| | | | | |||+-----------> 9. Unused

| | | | | ||+------------> 8. Expiration date

| | | | | |+-------------> 7. Inactivity period

| | | | | +--------------> 6. Warning period

| | | | +------------------> 5. Maximum password age

| | | +----------------------> 4. Minimum password age

| | +--------------------------> 3. Last password change

| +---------------------------------> 2. Encrypted Password

+----------------------------------------> 1. Username

1.用户名,登录系统时输入的字符串,系统上存在的用户帐户。

2.加密的密码,密码使用$type$salt$hashed格式。 $type是方法密码哈希算法,可以具有以下值:

  • $1$ – MD5
  • $2a$salt
  • $2y$ – Eksblowfish
  • $5$ – SHA-256
  • $6$ – SHA-512

3.如果密码字段包含星号(*)或感叹号(!),用户将无法使用密码身份验证登录到系统。仍然允许使用其他登录方法,例如基于密钥的身份验证或切换到该用户。

4.在较旧的Linux系统中,用户的加密密码存储在/etc/passwd文件。

最后一次更改密码。这是上次更改密码的日期。从1970年1月1日(纪元日期)开始计算天数。

5.最低密码年龄。可以更改用户密码之前必须经过的天数。通常将其设置为零,这意味着没有最小密码期限。

6.最大密码期限。多少天后必须更改用户密码。默认情况下,此数字设置为99999

7.警告时段即闲置期。在密码过期之前的天数,警告用户必须更改密码。用户密码过期后,禁用用户帐户之前的天数。通常,此字段为空。

8.到期日期。帐户被禁用的日期。

9.未使用。该字段被忽略。它保留供将来使用。

除非您知道自己在做什么,否则不要手工编辑/etc/shadow文件。始终使用专门为此目的设计的命令。例如,要更改用户密码,请使用passwd命令,要更改密码时效信息,请使用chage命令。

示例

让我们看一下以下示例:

myfreax:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::

上面的条目包含有关用户 myfreax密码的信息:

  • 密码已使用SHA-512加密(为了更好的可读性,密码被截断了)。
  • 密码最后一次更改是在2019年4月23日-18009
  • 没有密码使用期限的下限。
  • 必须至少每120天更改一次密码。
  • 用户将在密码到期日期的前7天收到警告消息。
  • 如果用户在密码过期14天后仍未尝试登录系统,则该帐户将被禁用。
  • 没有帐户有效期。

结论

/etc/shadow文件保留有关加密用户密码以及其他与密码有关的信息的记录。

如果您有任何问题或反馈,请随时发表评论。

以上是 了解/etc/shadow文件 的全部内容, 来源链接: utcz.com/z/507436.html

回到顶部