chsh: autenticazione PAM non riuscita


13

voglio cambiare la shell predefinita env

ed esegui chsh -s /bin/zshcome utente root,

ma un messaggio di errore è comparso: chsh: PAM authentication failed.

trovo questa discussione http://ubuntuforums.org/showthread.php?t=1702833

ma la risposta non ha risolto il mio problema

Qualsiasi aiuto sarebbe apprezzato


questo è il contenuto di /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

questo è il contenuto di / 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

trovo che ero solito eseguire chsh -s zsh questo cambierà la prima riga di /etc/passwdcome

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

e chshti chiederà la password per ogni tentativo

ho appena modificato il /etc/passwdfile manualmente e tutto è ok.

stupido errore e grazie per le tue risposte


Puoi fornire il tuo /etc/pam.d/chsh? (A proposito, è generalmente considerata una buona idea che la shell di login di root sia minima / stabile - ci sono aree su cui vuoi che zsh sia la shell predefinita piuttosto che
avviarla

voglio solo inserire automaticamente la shell zsh quando ero appena loggato, forse non va bene.
txworking

Risposte:


5

Controlla il tuo file / etc / shells e aggiungi / bin / zsh al file se questa linea non esiste.


3
questa risposta mi ha ispirato a controllare il /etc/passwdfile se ho inserito il formato corretto del nome della shell. Thx
txworking

Per me, utilizzando una macchina virtuale vagabonda, avevo bisogno di cambiare /etc/passwd. Grazie @txworking!
wulftone

Per me, il problema è chiamato da una configurazione errata per la shell interna /etc/passwdper l'account root ...
taper

3

Controlla il tuo /etc/passwd. Nel mio caso avevo precedentemente specificato una shell non valida chshe questo è ciò che stava causando il problema.

L'ho cambiato da zshcome shell a /bin/zshe questo ha fatto sparire il problema per me.


1

Sembra che il tuo percorso sia sbagliato. Per verificarlo:

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

Se il risultato è / usr / bin / zch, questo dovrebbe fare il trucco:

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

* modifica per errore di battitura.


1

Ho affrontato lo stesso problema. ogni volta che ho digitato chsh lo usa per chiedere

chsh: PAM authentication failed

Ma l'ho risolto apportando alcune modifiche al /etc/passwdfile

Users of kali-linux

basta aprire il terminale di root e modificare il /etc/passwdfile per utilizzare l'editor pico, nano o vi per questo lavoro

vi /etc/passwd

quindi cerca l'account utente. e cambia le shell nella shell desiderata assicurati che la shell desiderata sia installata nelle tue distribuzioni di linux affinché i nuovi utenti possano vedere quali shell sono presenti nel loro linux semplicemente digita

cat /etc/shells

li elenca lì. Se non hai installato la shell e non riesci a vederlo, /etc/shelldevi creare un collegamento e posizionare un percorso della shell, per esempio, supponendo /bin/kshnel /etc/shellsfile manualmente ...

per esempio sei in bash e vuoi cambiarlo in ksh

vai all'account nel /etc/passwdfile e nell'ultima modifica del campo

/bin/basha /bin/ksho /bin/ksh93(come nel tuo cat /etc/shells)

basta disconnettersi e accedere e sei a posto ...

per gli utenti di altre distro (diciamo) ubuntu

digitare

sudo -H gnome-terminal (per ottenere un terminale root)

e il processo è lo stesso di quanto sopra anche tu hai un terminale root come un utente kali-linux ..


1

È necessario eseguire il codice come sudo:

sudo chsh -s /bin/zsh

Ho avuto anche lo stesso problema, e ha funzionato!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.