中的 root 帐户的当前默认/etc/passwd
值为root:x:0:0:root:/root:/bin/bash
。
为什么不将其设置为root:x:0:0:root:/root:/usr/sbin/nologin
?
答案1
如果是这种情况,您一次只能运行一个命令sudo
,但无法启动 root shell。root shell 在许多情况下都很方便,例如,如果您计划以 root 身份连续运行多个命令。
具体来说,您无法运行sudo -i
,正如 AlexP 指出的那样。来自man sudo
:
-i, --login Run the shell specified by the target user's password database entry as a login shell.
答案2
除了 Alberto Santini 的 sudo 答案之外,还有另一个(好得多的)答案。如果 root 的 shell 设置为非 shell 的某个值,则无法启动单个用户。sulogin
对于不存在的 shell 或完全损坏的 shell 等情况,可以进行恢复,但如果 shell 看起来是有效的 shell,但实际上不是 shell,则无法恢复。
您仍然可以sudo
通过指定shell来直接获取shell,sudo
所以它甚至没有很好的保护。