je veux changer l'environnement shell par défaut
et exécuter en chsh -s /bin/zsh
tant 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/passwd
as
root:x:0:0:root:/root:zsh
et vous chsh
demandera le mot de passe que vous essayez
je viens d'éditer le /etc/passwd
fichier manuellement, et tout va bien.
erreur stupide et merci pour vos réponses
Réponses:
Vérifiez votre fichier / etc / shells et ajoutez / bin / zsh au fichier si cette ligne n'existe pas.
la source
/etc/passwd
fichier si j'entre le bon format de nom de shell. Thx/etc/passwd
. Merci @txworking!/etc/passwd
du compte root ...Vérifiez votre
/etc/passwd
. Dans mon cas, j'avais spécifié un shell non valide avecchsh
précédemment et c'est ce qui causait le problème.Je l'ai changé de
zsh
coquille en/bin/zsh
et cela a fait disparaître le problème pour moi.la source
On dirait que ton chemin peut me tromper. Pour le vérifier:
Si le résultat est / usr / bin / zch, cela devrait faire l'affaire:
* modifier pour la faute de frappe.
la source
J'ai fait face au même problème. chaque fois que je tape dans chsh, il utilise pour inviter
Mais je l'ai résolu en faisant quelques modifications dans le
/etc/passwd
fichierouvrez simplement votre terminal racine et modifiez le
/etc/passwd
fichier, vous pouvez utiliser l'éditeur pico, nano ou vi pour ce travail je vais par vipuis 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
il les répertorie là. Si vous avez installé le shell et que vous ne pouvez pas le voir,
/etc/shell
vous devez créer un lien et placer le chemin du shell, par exemple, supposer/bin/ksh
dans le/etc/shells
fichier manuellement ...par exemple, vous êtes en bash et vous voulez le changer en ksh
il suffit d'aller au compte dans le
/etc/passwd
fichier et dans le dernier champ modifier/bin/bash
à/bin/ksh
ou/bin/ksh93
(comme dans votrecat /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.
la source
Vous devez exécuter votre code en tant que sudo:
J'ai eu le même problème aussi, et ça a marché!
la source