我安装了 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?