debian 9 终端无法更改为 su

debian 9 终端无法更改为 su

我昨天安装了 Debian Stretch。我安装了fish shell。我通过以下方式将默认 shell 更改为 Fish

su chsh -s 'which fish'

然后再次输入这个命令

su chsh -s `which fish`

现在,在我重新启动电脑后,我在使用“su”时遇到以下错误

sathish@localhost ~> su
Password: 
Cannot execute which fish: No such file or directory

答案1

(因为我无法发表评论。所以在这里发帖)

  1. 将用户更改为su

$ su

(然后输入密码)

  1. 类型

# chsh [username]

在你的情况下:

# chsh root

  1. 输入登录shell/usr/bin/fish
  2. 就是这样。注销并重新登录。应该管用

答案2

来自评论:很明显,您想要将用户的登录 shell 更改rootfish.做:

sudo chsh -s "$(which fish)" root

或者简单地:

sudo chsh -s "$(which fish)"

如果不存在,您可能必须输入绝对路径fish(通常在安装软件包时由维护者脚本完成)。/etc/shellspostinst


如果你还没有sudo安装,恕我直言,你有更大的问题需要解决。无论如何,这是使用以下方法来执行此操作的方法su

su root -c 'chsh -s "$(which fish)"'

在这种情况下,您需要root的密码(像往常一样)。

相关内容