chsh: échec de l'authentification PAM


13

je veux changer l'environnement shell par défaut

et exécuter en chsh -s /bin/zshtant qu'utilisateur root,

mais un message d'erreur est apparu: chsh: PAM authentication failed.

je trouve ce fil http://ubuntuforums.org/showthread.php?t=1702833

mais la réponse n'a pas résolu mon problème

Toute aide serait appréciée


c'est le contenu de /etc/pam.d/chsh

#
# The PAM configuration file for the Shadow `chsh' service
#

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth       required   pam_shells.so

# This allows root to change user shell without being
# prompted for a password
auth            sufficient      pam_rootok.so

# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

c'est le contenu de / etc / shells

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

je trouve que j'ai utilisé pour exécuter chsh -s zsh cela va changer la première ligne de /etc/passwdas

root:x:0:0:root:/root:zsh

et vous chshdemandera le mot de passe que vous essayez

je viens d'éditer le /etc/passwdfichier manuellement, et tout va bien.

erreur stupide et merci pour vos réponses


Pouvez-vous fournir votre /etc/pam.d/chsh? (BTW, il est généralement considéré comme une bonne idée que le shell de connexion racine soit minimal / stable - y a-t-il une raison pour laquelle vous voulez que zsh soit le shell par défaut plutôt que de le démarrer après la connexion?)
— symcbean

je veux juste entrer automatiquement le shell zsh quand je viens de me connecter, ce n'est peut-être pas bon.
— txworking

Réponses:


5

Vérifiez votre fichier / etc / shells et ajoutez / bin / zsh au fichier si cette ligne n'existe pas.


3
cette réponse m'a inspiré à vérifier le /etc/passwdfichier si j'entre le bon format de nom de shell. Thx
— txworking

Pour moi, en utilisant une VM vagabonde, je devais changer /etc/passwd. Merci @txworking!
— wulftone

Pour moi, le problème est appelé par une configuration erronée du shell à l'intérieur /etc/passwddu compte root ...
— taper

3

Vérifiez votre /etc/passwd. Dans mon cas, j'avais spécifié un shell non valide avec chshprécédemment et c'est ce qui causait le problème.

Je l'ai changé de zshcoquille en /bin/zshet cela a fait disparaître le problème pour moi.


1

On dirait que ton chemin peut me tromper. Pour le vérifier:

[nick ~]$ which zsh
/usr/bin/zsh

Si le résultat est / usr / bin / zch, cela devrait faire l'affaire:

[nick ~]$ chsh -s /usr/bin/zsh

* modifier pour la faute de frappe.


1

J'ai fait face au même problème. chaque fois que je tape dans chsh, il utilise pour inviter

chsh: PAM authentication failed

Mais je l'ai résolu en faisant quelques modifications dans le /etc/passwdfichier

Users of kali-linux

ouvrez simplement votre terminal racine et modifiez le /etc/passwdfichier, vous pouvez utiliser l'éditeur pico, nano ou vi pour ce travail je vais par vi

vi /etc/passwd

puis recherchez le compte utilisateur. et changez les shells pour votre shell souhaité assurez-vous que le shell souhaité est installé dans vos distributions de linux pour les nouveaux utilisateurs pour voir quels shells sont présents dans leur linux, tapez simplement

cat /etc/shells

il les répertorie là. Si vous avez installé le shell et que vous ne pouvez pas le voir, /etc/shellvous devez créer un lien et placer le chemin du shell, par exemple, supposer /bin/kshdans le /etc/shellsfichier manuellement ...

par exemple, vous êtes en bash et vous voulez le changer en ksh

il suffit d'aller au compte dans le /etc/passwdfichier et dans le dernier champ modifier

/bin/bashà /bin/kshou /bin/ksh93(comme dans votre cat /etc/shells)

déconnectez-vous et connectez-vous et vous êtes prêt à partir ...

pour les utilisateurs d'autres distributions (disons) ubuntu

tapez

sudo -H gnome-terminal (pour obtenir un terminal racine)

et le processus est le même que ci-dessus car vous avez aussi un terminal racine comme un utilisateur kali-linux.


1

Vous devez exécuter votre code en tant que sudo:

sudo chsh -s /bin/zsh

J'ai eu le même problème aussi, et ça a marché!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.