bash 中的 sudo su 错误“无法执行帮助:没有这样的文件或目录”

bash 中的 sudo su 错误“无法执行帮助:没有这样的文件或目录”

我安装了 zsh 并将 root shell /bin/bash 更改为 /usr/bin/zsh。然后我重新启动并输入 sudo su。它说“无法执行帮助:没有这样的文件或目录”。所以,我输入了 sudo bash。然而,当我输入“echo $SHELL”时,它说 root shell 是“help”。我怎样才能解决这个问题?

答案1

该错误消息Cannot execute help: No such file or directory表明 root 的登录 shell 已设置help为有效 shell。

您可以通过发出正确的chsh命令来解决此问题:

sudo chsh -s /bin/bash root

或者通过编辑 root 的登录记录/etc/passwd该文件必须使用以下命令进行编辑vipw(从来没有直接):

sudo vipw

在大多数 Linux 系统上,使用时在编辑器中打开的文件中的 root 条目vipw应类似于

root:x:0:0:root:/root:/bin/bash

您应该确保最后一个:- 分隔字段是系统上 root 登录 shell 的正确路径,如果不是,请在编辑器中进行更改。然后保存文件并退出。


注意,绝对有更改 root 的登录 shell 是有好处的,因为您不应该发现自己以 root 身份登录或使用交互式 root shell 任何时间。

您可能需要在系统上执行的任何管理任务都可以使用sudo后跟您需要执行的命令来执行。

另外不需要su与 一起使用sudo。这在问题的答案中讨论过是否有充分的理由运行 sudo su?

相关内容