Commands

一起了解一下 /etc/shadow 文件

luobo · 1月13日 · 2020年 · ·

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

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

/etc/shadow格式

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

sudo cat /etc/shadow

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

/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. Username。登录系统时输入的字符串。 系统上存在的用户帐户。
  2. Encrypted Password。密码使用$type $salt $hashed格式。 $type是方法加密哈希算法,可以具有以下值:
    * $1$ – MD5
    * $2a$ – Blowfish
    * $2y$ – Eksblowfish
    * $5$ – SHA-256
    * $6$ – SHA-512
    如果密码字段包含星号(*)或感叹号(!),则用户将无法使用密码身份验证登录到系统。 仍然允许使用其他登录方法,例如基于密钥的身份验证或切换到用户。
    在较旧的Linux系统中,用户的加密密码存储在/etc/passwd文件中。
  3. Last password change。 这是上次更改密码的日期。 从1970年1月1日(纪元日期)开始计算天数。
  4. Minimum password age。可以更改用户密码之前必须经过的天数。 通常将其设置为零,这意味着没有最低密码期限。
  5. Maximum password age。 必须更改用户密码后的天数。 默认情况下,此数字设置为99999。
  6. Warning period。 密码过期前的天数,在此期间,系统会警告用户必须更改密码。
  7. Inactivity period。 用户密码过期后,禁用用户帐户之前的天数。 通常,此字段为空。
  8. Expiration date。 帐户被禁用的日期。 它表示为一个纪元日期。
  9. Unused。 该字段被忽略。 它保留供将来使用。

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

输入示例

让我们看下面的例子:

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

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

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

结论

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

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

0 条回应