chsh 总是要求输入密码,并得到“PAM:身份验证失败”

chsh 总是要求输入密码,并得到“PAM:身份验证失败”

今天尝试切换至另一个shell。

一开始尝试使用 fish,习惯chsh -s fish把 fish 改成默认,用了一段时间发现不能用~/.bashrc(&& 需要换成 and)。

因为我更喜欢重复使用~/.bashrc,所以我找到了zsh一个更简单的方法,然后就遵循了本文档切换为zsh

在我运行时sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)",它突然要求我输入Password:。我输入了 root 密码,但得到了PAM: Authentication failure

然后我尝试了chsh -s bash一下chsh -s zsh,它总是要求我输入密码并抛出PAM: Authentication failure(不是系统密码)。我搞不懂。

答案1

谢谢Server Fault 上的这个问题,我通过以下方式解决了这个问题:

更换

auth       required   pam_shells.so

auth       sufficient   pam_shells.so

/etc/pam.d/chsh

然后它就不再要求输入密码了。但我认为切换 shell 后最好恢复 chsh 设置。

答案2

尝试这个:

sudo chsh -s $(which zsh) $(whoami)

答案3

  1. 用于which zsh查找您的zsh位置。

    $ which zsh
    /usr/bin/zsh
    
  2. 添加/usr/bin/zsh/etc/shells

  3. 检查/etc/passwd你的配置是否/usr/bin/zsh

  4. 跑步chsh -s /usr/bin/zsh

答案4

尝试在 $HOME/.bashrc 底部添加

export SHELL=`which sh`
zsh
exit

这对我有用!如果您愿意,您可以在 shell 中放置欢迎文本,但您必须使用以下命令安装 figlet:

sudo apt install figlet

并覆盖 $HOME/.bashrc 底部的先前代码

export SHELL=`which zsh`
figlet 'Your welcome message LIKE FOR ME: Welcome'
zsh
exit

相关内容