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

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

今天我们就来详细了解一下内容 /etc/影子 文件以及它可以告诉您有关您的系统的信息。

什么是 /etc/shadow?

听起来很神秘,该文件的功能非常简单。 这 /etc/影子 文件包含有关 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年 (埃克斯河豚), 5 (SHA-256),或 6 (SHA-512)。
  • 盐: 这是用于加密和验证密码的盐。
  • 哈希: 这是散列后出现的用户密码。 影子文件保存您密码的散列版本,以便系统可以检查任何输入密码的尝试。

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

3. 上次更改密码的日期

在这里,您会看到该用户上次更改密码的时间。 请注意,系统以 Unix 时间格式显示日期。

4. 最低密码年龄

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

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

5.最大密码年龄

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

6. 警告期

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

7. 不活动期

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

8. 有效期

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

如果不设置此字段将为空,如果设置,则日期将以纪元时间显示。

9. 未使用

该字段目前没有任何用途,仅供将来使用。

影子文件解释

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

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