对于 root 帐户(和其他帐户)来说“未设置密码”是什么意思?

对于 root 帐户(和其他帐户)来说“未设置密码”是什么意思?

几年前,我们更习惯使用命令切换到 root 帐户su。首先,我们切换到 root 帐户,然后执行那些 root 命令。现在我们更习惯使用命令sudo

但是我们知道root账户是存在的,我们可以很容易地找到root用户的主目录。

$ ls -ld /root/
drwx------ 18 root root 4096 Oct 22 17:21 /root/

现在我想说的是,上面说“Ubuntu 中的 root 密码未设置”。请参阅以下答案这个问题。大多数答案在第一段中都提到了这一点。有一两个答案进一步指出“该帐户已被禁用”。

现在我的主要问题是,

  1. 未设置密码是什么意思?它是空白吗?是空吗?还是其他更神秘的东西?
  2. 我设置密码后,账户如何才能启用?(sudo password root

为了更好地理解,我检查了该/etc/shadow文件。由于我已经为 root 帐户设置了密码,因此我再也看不到那里的内容(加密密码)。因此,我创建了另一个帐户并将其禁用。文件中的相应条目/etc/shadow是,

testpassword:!:16020:0:99999:7:::

现在,我上面的疑问可能需要改为,!密码字段中的 是什么意思?其他加密密码都是那些非常长的神秘字符串。为什么这种加密形式只有一个字符长?如果我在(加密的)密码字段中输入 ,帐户会被禁用吗!

答案1

未设置密码是什么意思?它是空白吗?是空吗?还是其他更神秘的东西?

就是不存在。默认情况下,Root 帐户是禁用的,因此不需要密码。因此,最相似的是undefined(在 JavaScript 中)或(null)(其他语言)。它只是未设置。

一旦我为帐户设置了密码,该帐户如何才能启用?

其实设置密码只是其中的一部分,并不代表可以启用账户,需要使用以下命令来启用账户:

sudo usermod -U root

然后用 设置密码passwd

密码字段中的是什么!意思?

摘自man shadow

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

这可能意味着帐户已被锁定。但也:

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

无论哪种方式,任何帐户都!无法使用利用影子文件的应用程序登录。

这个加密表格怎么只有一个字符长?

未加密。请参阅上文。

如果我在(加密)密码字段中输入!,帐户是否会被禁用?

另请参见上文。

答案2

我也在学习这个,因为这对我来说是个新话题。据我所知,该帐户存在但未启用,因此尝试使用它只会不断响应凭据错误。这似乎是为了让恶意用户更难知道他们无法破解密码的原因。如果您已经设置了它,我强烈建议您使用以下命令撤消它:

    sudo passwd -dl root

要了解更多信息,请访问:

https://help.ubuntu.com/community/RootSudo

相关内容