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

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

在影子文件(/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.

但这到底意味着什么:

``*'' entry (eg. : * :) indicates the account has been disabled

因为在这种情况下

root:*:17848:0:99999:7:::

我可以继续使用根计数。

答案1

我不认为这意味着“帐户已被禁用”。你指的是什么文件?

这是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

相关内容