chsh总是询问密码,并得到“ PAM:身份验证失败”


17

今天,我试图切换到另一个外壳。

首先,我尝试使用鱼,然后chsh -s 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 bashchsh -s zsh,它总是要求我输入密码然后扔PAM: Authentication failure(不是系统密码)。我不知道这个。


检查您的.bashrc / .zshrc / .etcrc中是否有别名或带有sudo的东西
Lucas Serafim

Answers:


32

由于服务器故障这个问题,我通过以下方法解决了这个问题:

改变/etc/pam.d/chsh:来自:

auth       required   pam_shells.so

auth       sufficient   pam_shells.so

然后,它不再要求输入密码。但是我认为切换外壳后恢复chsh设置更好。


使用sed:sudo sed s / required / sufficient / g -i /etc/pam.d/chsh
ospider

不幸地没有工作。但是我注释掉了这一行,再次更改了外壳并删除了注释。因此,您的提示对我来说是正确的。
Markus Zeller

4
  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


这仅适用于普通用户,不适用于root。这是一项安全功能吗?
Timo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.