chsh: PAM-Authentifizierung fehlgeschlagen

13

Ich möchte die Standard-Shell-Umgebung ändern

und chsh -s /bin/zshals root-Benutzer ausführen ,

aber eine Fehlermeldung angezeigt: chsh: PAM authentication failed.

Ich finde diesen Thread http://ubuntuforums.org/showthread.php?t=1702833

Aber die Antwort hat mein Problem nicht gelöst

Jede Hilfe wäre dankbar


Dies ist der Inhalt von /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

Dies ist der Inhalt von / 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

Ich finde, dass ich chsh -s zsh dies ausgeführt habe, wird die erste Zeile von /etc/passwdas ändern

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

und chshfrage nach dem Passwort, welchen Server du versuchst

Ich bearbeite die /etc/passwdDatei nur manuell und alles ist in Ordnung.

dummer fehler und danke für eure antworten

txworking
quelle
Können Sie Ihre /etc/pam.d/chsh bereitstellen? (Übrigens ist es im Allgemeinen eine gute Idee, wenn die Root-Login-Shell minimal / stabil ist - gibt es einen Bereich, in dem Sie zsh als Standard-Shell verwenden möchten, anstatt sie nach dem Login zu
starten
Ich möchte nur automatisch die zsh-Shell aufrufen, wenn ich gerade angemeldet war. Vielleicht ist das nicht gut.
Txworking

Antworten:

5

Überprüfen Sie Ihre / etc / shells-Datei und fügen Sie / bin / zsh zur Datei hinzu, wenn diese Zeile nicht vorhanden ist.

Yuriy Nazarov
quelle
3
Diese Antwort hat mich dazu inspiriert, zu prüfen /etc/passwd, ob ich das richtige Format für den Shell-Namen eingegeben habe. Thx
txworking
Bei mir musste ich mit einer vagabundierenden VM wechseln /etc/passwd. Vielen Dank an @txworking!
wulftone
Für mich wird das Problem durch eine fehlerhafte Konfiguration für Shell Inside /etc/passwdfür den Root-Account aufgerufen ...
Taper
3

Überprüfen Sie Ihre /etc/passwd. In meinem Fall hatte ich zuvor eine ungültige Shell mit angegeben chshund das hat das Problem verursacht.

Ich änderte es von zshals die Muschel, /bin/zshund das ließ das Problem für mich weggehen.

Funroll
quelle
1

Sieht so aus, als wäre dein Weg falsch. Um es zu überprüfen:

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

Wenn das Ergebnis / usr / bin / zch ist, sollte dies der Trick sein:

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

* Für Tippfehler bearbeiten.

Nickdew
quelle
1

Ich stand vor dem gleichen Problem. wann immer ich chsh eintippte, verwendete es, um aufzufordern

chsh: PAM authentication failed

Aber ich habe es gelöst, indem ich einige Änderungen an der /etc/passwdDatei vorgenommen habe

Users of kali-linux

öffne einfach dein root-terminal und ändere die /etc/passwddatei, die du für diesen job mit dem pico-, nano- oder vi-editor verwenden kannst

vi /etc/passwd

Suchen Sie dann nach dem Benutzerkonto. und ändere die Shells in die gewünschte Shell. Stelle sicher, dass die gewünschte Shell in deinem Linux-Distributionssystem installiert ist, damit neue Benutzer sehen können, welche Shells in ihrem Linux vorhanden sind. Gib sie einfach ein

cat /etc/shells

Es listet sie dort auf. Wenn Sie die Shell überhaupt installiert haben und sie nicht sehen können /etc/shell, müssen Sie einen Link erstellen und den Pfad der Shell angeben, um sie manuell /bin/kshin die /etc/shellsDatei aufzunehmen ...

Sie befinden sich beispielsweise in Bash und möchten es in ksh ändern

gehe einfach zum account in der /etc/passwddatei und bearbeite im letzten feld

/bin/bashzu /bin/kshoder /bin/ksh93(wie in Ihrem cat /etc/shells)

Einfach abmelden und einloggen und loslegen ...

für Benutzer anderer Distributionen (sagen wir) Ubuntu

eintippen

sudo -H gnome-terminal (um ein Root-Terminal zu bekommen)

und der Vorgang ist derselbe wie oben, da auch Sie ein Root-Terminal haben, wie ein Kali-Linux-Benutzer.

Dhawal S
quelle
1

Sie müssen Ihren Code als sudo ausführen:

sudo chsh -s /bin/zsh

Ich hatte auch das gleiche Problem und es hat funktioniert!

Yilmazerhakan
quelle