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

在Linux系统文件中浏览时,您可能在/ etc目录中遇到了一个名为shadow的文件。这听起来有些令人毛骨悚然,但是对于系统管理而言,它确实是一个安全,必要且有用的文件。

今天,我们将仔细研究/ etc / shadow文件的内容以及它可以告诉您有关系统的信息。

什么是/ etc / shadow?

听起来很神秘,文件的功能非常简单。 / etc / shadow文件包含有关Linux系统用户,其密码以及其密码的时间规定的信息。

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

您永远不要直接编辑阴影文件。它由自动化流程维护,不适合普通用户进行修改。但是,其中包含的信息可能对您有价值,因此值得一看。

Linux影子文件中包含什么?

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

 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 (河豚), 2y (埃克斯河豚), 5 (SHA-256)或6 (SHA-512)。
  • 盐:这是用于加密和认证密码的盐。
  • 哈希:这是哈希后显示的用户密码。影子文件保留密码的哈希版本,因此系统可以检查是否有任何尝试输入密码的尝试。

了解更多:定义的基本加密术语

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

3.上次密码更改的日期

在这里,您可以找到该用户最后一次更改密码的时间。请注意,系统以Unix时间格式显示日期。

4.最小密码期限

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

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

5.最长密码期限

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

6.警告期

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

7.闲置期间

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

8.到期日

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

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

9.未使用

该字段目前无用,保留给将来可能使用。

影子文件解释

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

每当您将新用户添加到Linux系统时, / etc / shadow文件都会自动修改以存储有关该用户的认证信息。