了解/ etc / shadow文件

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

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

/etc/shadow 格式编号

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

sudo cat /etc/shadow

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

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

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$ –河豚
    • $2y$ –河豚
    • $5$ – SHA-256
    • $6$ – SHA-512

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

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

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

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

  5. 密码最长使用期限。 必须更改用户密码后的天数。 默认情况下,此数字设置为 99999

  6. 预警期。 密码过期之前的天数,在此期间,系统会警告用户必须更改密码。

  7. 闲置期间。 用户密码过期后,禁用用户帐户之前的天数。 通常,此字段为空。

  8. 截止日期。 帐户被禁用的日期。 它表示为一个纪元日期。

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

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

示例条目号

让我们看下面的例子:

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

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

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

结论#

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

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

终奌站

Sidebar