了解/etc/shadow文件
时间:2020-03-05 15:26:38 来源:igfitidea点击:
在Linux系统上可以使用几种不同的身份验证方案。
最常用和标准的方案是对'/etc/passwd'和'/etc/shadow'文件执行身份验证。
“/etc/shadow”是一个文本文件,其中包含有关系统用户密码的信息。
它由用户root和组shadow拥有,并具有640权限。
'/etc/shadow'格式
“/etc/shadow”文件每行包含一个条目,每个条目代表一个用户帐户。
我们可以使用文本编辑器或者“ cat”之类的命令查看文件的内容:
sudo cat /etc/shadow
通常,第一行描述根用户,然后是系统用户和普通用户帐户。
新条目将添加在文件末尾。
“/etc/shadow”文件的每一行包含九个逗号分隔的字段:
mark:$.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
- 用户名。登录系统时输入的字符串。系统上存在的用户帐户。
- 加密密码。密码使用“ $type $salt $hashed”格式。 “ $type”是方法密码哈希算法,可以具有以下值:
- '$1 $'– MD5
- '$2a $'–河豚
- '$2y $'– Eksblowfish
- '$5 $'– SHA-256
- '$6 $'– SHA-512
如果密码字段包含星号('*')或者感叹号('!'),则用户将无法使用密码身份验证登录到系统。
仍然允许使用其他登录方法,例如基于密钥的身份验证或者切换到用户。
在较旧的Linux系统中,用户的加密密码存储在“/etc/passwd”文件中。
- 上次密码更改。这是上次更改密码的日期。从1970年1月1日(纪元日期)开始计算天数。
- 最小密码年龄。可以更改用户密码之前必须经过的天数。通常将其设置为零,这意味着没有最低密码期限。
- 密码最长使用期限。必须更改用户密码后的天数。默认情况下,此数字设置为'99999'。
- 预警期。密码到期前的天数,在此期间,系统会警告用户必须更改密码。
- 闲置期间。用户密码过期后,禁用用户帐户之前的天数。通常,此字段为空。
- 截止日期。帐户被禁用的日期。它表示为一个纪元日期。
- 没用过。该字段被忽略。它保留供将来使用。
除非我们知道自己在做什么,否则不应手动编辑“/etc/shadow”文件。
始终使用专门为此目的设计的命令。
例如,要更改用户密码,请使用“ passwd”命令,而要更改密码时效信息,请使用“ chage”命令。
输入示例
让我们看一下以下示例:
theitroad:$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::
上面的条目包含有关用户“ theitroad”密码的信息:
- 密码使用SHA-512加密(为了更好的可读性,密码被截断了)。
- 密码最后一次更改是在2019年4月23日-'18009'。
- 没有最低密码年龄。
- 密码必须至少每120天更改一次。
- 用户将在密码到期日期前七天收到警告消息。
- 如果用户在密码过期后的14天之内未尝试登录系统,则该帐户将被禁用。
- 没有帐户过期日期。