什么是 Linux /etc/shadow 文件,它有什么作用?

在您的 Linux 系统文件中四处寻找,您可能会在 /等等 目录命名 阴影. 这听起来可能令人毛骨悚然,但对于系统管理来说,它确实是一个安全、必要且有用的文件。

今天我们就来仔细看看里面的内容 /etc/shadow 文件以及它可以告诉您有关系统的信息。

什么是/etc/shadow?

虽然听起来很神秘,但该文件的功能非常简单。 这 /etc/shadow 文件包含有关 Linux 系统用户、他们的密码和他们的密码的时间规定的信息。

在 Linux 中创建或更改密码时,系统会对其进行哈希处理并将其存储在影子文件中。 管理员分配的任何密码规则(如到期日期和不活动期限)也将保留在此处。 然后影子文件可以告诉身份验证协议用户的密码是否正确,例如 example,或者当它过期时。

永远不要直接编辑影子文件。 它由自动化流程维护,不供普通用户修改。 尽管如此,它包含的信息对您来说可能很有价值,因此值得一看。

Linux 影子文件中有什么?

要查看影子文件的内容,请打开终端并发出 命令它:

sudo cat /etc/shadow

您会看到一个提示,要求您输入密码。 假设您具有管理权限,您将看到与此类似的文本字符串的打印输出(省略号标记字符串被剪裁以适合您的屏幕的位置):

muo1:$6$IK2...$20a...:18731:0:99999:7:::

它看起来很神秘,实际上,其中一些是加密文本。 然而,该字符串遵循特定的结构,并包含特定的信息位,由 冒号 () 特点。

这是字符串的完整布局:

[username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

让我们仔细看看这些字段中的每一个:

1. 用户名

字符串中的所有内容都与此用户名相关联。

2. 密码

密码字段由三个附加字段组成,以美元符号分隔: $id$salt$hash.

  • ID: 这定义了用于加密密码的加密算法。 值可能是 1 (MD5), 2a (河豚), 2年 (Eksblowfish), 5 (SHA-256),或 6 (SHA-512).
  • 盐: 这是用于加密和验证密码的盐。
  • 哈希: 这是散列后出现的用户密码。 影子文件保留了密码的散列版本,以便系统可以检查是否有任何输入密码的尝试。

有时密码字段只包含一个 星号 (*) 或者 感叹号 ()。 这意味着系统已禁用用户的帐户,或者用户必须通过密码以外的方式进行身份验证。 对于您可能在影子文件中找到的系统进程(也称为伪用户)来说,情况通常也是如此。

3. 上次更改密码的日期

您将在此处找到该用户上次更改密码的时间。 请注意,系统以 Unix 时间格式显示日期。

4. 最低密码年龄

您将在此处找到用户在更改密码后必须等待的天数,然后才能再次更改密码。

如果未设置最小值,则此处的值为 0。

5. 密码最长使用期限

这定义了用户可以在不更改密码的情况下使用多长时间。 经常更改密码有其好处,但默认情况下,该值将设置为 99,999 天。 那是 close 到 275 年。

6. 警告期

此字段确定密码达到其最长期限前的天数,在此期间用户将收到更改密码的提醒。

7. 闲置期

这是在系统禁用帐户之前用户密码达到其最长期限后可以经过的天数。 将此视为“宽限期”,在此期间用户有第二次机会更改其密码,即使它在技术上已过期。

8. 有效期

此日期是系统将自动禁用用户帐户的非活动期结束日期。 一旦禁用,用户将无法登录,直到管理员再次启用它。

如果未设置,此字段将为空,如果设置,则日期将出现在纪元时间。

9. 未使用

该字段目前没有任何用途,保留供将来潜在使用。

影子文件解释

影子文件真的一点都不神秘。 但是请记住,如果您想更改密码和密码规则,则应避免直接编辑影子文件,而应选择使用为此目的指定的工具。

每当您向 Linux 系统添加新用户时, /etc/shadow 文件被自动修改以存储有关用户的身份验证信息。

相关阅读:

Posted in: Linux