我尝试使用命令在终端上成为 root sudo -i
,但系统显示sudo: /usr/local/bin/fish: command not found
。我尝试将 fish shell 设置为默认,但遇到了问题。有人能告诉我该怎么做才能解决这个问题吗?
我尝试使用 firstsudo echo /usr/local/bin/fish >> /etc/shells
和 after将 fish shell 设置为默认chsh -s /usr/local/bin/fish
。但是,似乎我有多个usr/local/bin/fish
文件/usr/shells
。(事实上,我遵循了 那里)
提前致谢!
附言我现在知道文件不是usr/local/bin/fish
,但是usr/local/bin
。我已成功将 fish shell 设置为默认值,但问题仍然存在sudo -i
。
答案1
root
要用替换错误的默认 shell fish
:
- 安装
fish
(sudo apt install fish
如果您需要 Ubuntu 的软件包) - 跑步
sudo nano /etc/pam.d/chsh
#
在行前插入auth required pam_shells.so
- 按Ctrl+ O, Enter, Ctrl+保存并退出X
- 运行
sudo chsh -s $(which fish)
($
如果您在 内完成所有操作,请删除fish
) - 跑步
sudo nano /etc/pam.d/chsh
- 删除
#
你插入的 - 按Ctrl+ O, Enter, Ctrl+保存并退出X
现在,你可以使用 测试 shell 是否设置正确sudo -i
。