44 votes

Chsh demande toujours un mot de passe, et obtient `PAM: Échec de l'authentification`

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

Tout d'abord j'ai essayé fish, et j'ai utilisé chsh -s fish pour le définir par défaut. Après un certain temps, j'ai trouvé qu'il ne peut pas utiliser ~/.bashrc (&& doit être remplacé par and).

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

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

Ensuite j'ai essayé chsh -s bash et chsh -s zsh, il m'a toujours demandé un mot de passe et a affiché PAM: Authenticaton failure (pas le mot de passe système). Je n'arrive pas à comprendre cela.

59voto

UPENDRA Points 11

Merci à cette question sur Server Fault, j'ai contourné le problème en :

Changeant /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 est préférable de restaurer les paramètres chsh après avoir changé de shell.

14voto

Roitmaster Points 141

Essayez ceci :

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

6voto

Xu Radman Points 61
  1. Utilisez which zsh pour trouver l'emplacement de votre zsh.

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

  3. Vérifiez dans /etc/passwd que votre configuration est /usr/bin/zsh

  4. Exécutez chsh -s /usr/bin/zsh

2voto

Molomby Points 121

Une solution de contournement alternative -

Mon fichier /etc/pam.d/chsh a cette section :

# Cela permet à root de changer le shell de l'utilisateur sans être
# invité à entrer un mot de passe
auth        suffisant  pam_rootok.so

Comme le commentaire le suggère, cela permet à root de changer le shell sans avoir besoin de fournir le mot de passe. J'ai donc pu changer mon shell (pour zsh) en exécutant chsh en tant que root et en spécifiant mon compte utilisateur, par exemple:

sudo chsh $USER -s $(which zsh)

0voto

Alpha Points 1

Ajoutez ceci à la fin de votre fichier $HOME/.bashrc

export SHELL=`which sh`
zsh
exit

Cela fonctionne pour moi! Si vous le souhaitez, vous pouvez ajouter un texte de bienvenue dans votre shell, mais vous devez installer figlet en utilisant la commande suivante:

sudo apt install figlet

Et remplacez le code précédent à la fin de votre fichier $HOME/.bashrc

export SHELL=`which zsh`
figlet 'Votre message de bienvenue COMME POUR MOI: Bienvenue'
zsh
exit

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X