几年前,我们更习惯使用命令切换到 root 帐户su
。首先,我们切换到 root 帐户,然后执行那些 root 命令。现在我们更习惯使用命令sudo
。
但是我们知道root账户是存在的,我们可以很容易地找到root用户的主目录。
$ ls -ld /root/
drwx------ 18 root root 4096 Oct 22 17:21 /root/
现在我想说的是,上面说“Ubuntu 中的 root 密码未设置”。请参阅以下答案这个问题。大多数答案在第一段中都提到了这一点。有一两个答案进一步指出“该帐户已被禁用”。
现在我的主要问题是,
- 未设置密码是什么意思?它是空白吗?是空吗?还是其他更神秘的东西?
- 我设置密码后,账户如何才能启用?(
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