影子 Linux 文件中密码字段中的星号是什么意思?

Jua*_*ual 4 linux raspberry-pi

在影子文件 ( /etc/shadow) 中并阅读其文档后,密码字段显示:

Password, 13 character encrypted. A blank entry (eg. ::) indicates a password is not required to log in (usually a bad idea), and a ``*'' entry (eg. :*:) indicates the account has been disabled.
Run Code Online (Sandbox Code Playgroud)

但是,这到底意味着什么:

``*'' entry (eg. : * :) indicates the account has been disabled
Run Code Online (Sandbox Code Playgroud)

因为在这种情况下

root:*:17848:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

我可以继续使用根数。

Kam*_*ski 6

我认为这并不意味着“该帐户已被禁用”。您指的是哪些文档?

这是man 5 shadowRaspbian 中的内容[强调我的]:

如果密码字段中包含一些不是 的有效结果的字符串crypt(3),例如!*,则用户将无法使用unix密码登录(但用户可以通过其他方式登录系统)。

该字段可能为空,在这种情况下,不需要密码即可作为指定的登录名进行身份验证。但是,如果密码字段为空,某些读取该/etc/shadow文件的应用程序可能会决定根本不允许任何访问。

以感叹号开头的密码字段表示密码已锁定。该行的其余字符代表密码被锁定之前的密码字段。

!*这里看起来很相似。从man 1 passwd

-l--lock
锁定指定帐户的密码。此选项通过将密码更改为与可能的加密值不匹配的值来禁用密码(它!在密码的开头添加 )。

请注意,这不会禁用该帐户。用户仍然可以使用另一个身份验证令牌(例如 SSH 密钥)登录。要禁用该帐户,管理员应使用usermod --expiredate 1(这会将帐户的到期日期设置为 1970 年 1 月 2 日)。

密码被锁定的用户不允许更改密码。

所以我想说是密码被锁定/禁用,而不是帐户。在我的 Raspbian、Debian、Kubuntu 和 OpenWrt 机器系统用户中,并且在适用的文件中root具有要么sole*要么sole 。我仍然可以像这样奔跑。!shadowsudo -u root bash -l