chsh demande toujours un mot de passe et obtient `PAM: échec d'authentification`

16

Aujourd'hui, j'ai essayé de passer à un autre shell.

J'ai d'abord essayé le poisson, et utilisé chsh -s fishpour changer le poisson par défaut. Après un certain temps, j'ai trouvé qu'il ne pouvait pas utiliser ~/.bashrc(&& doit être remplacé par et).

Parce que je préfère réutiliser ~/.bashrc, j'ai trouvé zshce qui semble plus facile et j'ai suivi cette documentation pour passer zsh.

Pendant que je courais sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)", soudain, il m'a demandé d'entrer Password:. J'ai entré le mot de passe root mais j'ai obtenu PAM: Authentication failure.

Ensuite, j'ai essayé chsh -s bashet chsh -s zsh, il m'a toujours demandé un mot de passe et a jeté PAM: Authentication failure(pas le mot de passe système). Je ne peux pas comprendre cela.

Mithril
la source
Vérifiez si vous avez un alias ou quelque chose avec sudo dans votre .bashrc / .zshrc / .etcrc
Lucas Serafim

Réponses:

31

Grâce à cette question sur Server Fault , j'ai travaillé autour de ceci en:

Changement /etc/pam.d/chsh:de:

auth       required   pam_shells.so

à

auth       sufficient   pam_shells.so

Ensuite, il ne demande plus de mot de passe. Mais je pense qu'il vaut mieux restaurer les paramètres chsh après avoir changé de shell.

Mithril
la source
utilisant sed: sudo sed s / requis / suffisant / g -i /etc/pam.d/chsh
ospider
Cela n'a malheureusement pas fonctionné. Mais j'ai commenté cette ligne, changé le shell et supprimé le commentaire, encore une fois. Votre indice était donc le bon pour moi.
Markus Zeller
4
  1. Utilisez which zshpour trouver votre zshposition.

    $ which zsh
    /usr/bin/zsh
    
  2. Ajouter /usr/bin/zshà/etc/shells

  3. Vérifiez /etc/passwdque votre configuration est/usr/bin/zsh

  4. Courir chsh -s /usr/bin/zsh

Xu Radman
la source
Cela ne fonctionne que pour l'utilisateur normal, mais pas pour root. Est-ce une fonction de sécurité?
Timo