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.