chsh: error de autenticación PAM

13

quiero cambiar el entorno de shell predeterminado

y ejecutar chsh -s /bin/zshcomo usuario root,

sino un mensaje de error apareció: chsh: PAM authentication failed.

Encuentro este hilo http://ubuntuforums.org/showthread.php?t=1702833

pero la respuesta no resolvió mi problema

Cualquier ayuda sería apreciada


este es el contenido 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

este es el contenido 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

Me parece que solía ejecutar chsh -s zsh esto cambiará la primera línea de /etc/passwdcomo

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

y chshle pedirá la contraseña en cualquier momento que intente

Acabo de editar el /etc/passwdarchivo manualmente, y todo está bien.

estúpido error y gracias por tus respuestas

txworking
fuente
¿Puede proporcionar su /etc/pam.d/chsh? (Por cierto, generalmente se considera una buena idea que el shell de inicio de sesión raíz sea mínimo / estable; ¿hay alguna razón por la que desee que zsh sea el shell predeterminado en lugar de iniciarlo después del inicio de sesión?)
symcbean
Solo quiero ingresar automáticamente al shell zsh cuando recién inicié sesión, tal vez esto no sea bueno.
txworking

Respuestas:

5

Verifique su archivo / etc / shells y agregue / bin / zsh al archivo si esta línea no existe.

Yuriy Nazarov
fuente
3
esta respuesta me inspiró a verificar el /etc/passwdarchivo si ingresé el formato correcto del nombre de shell. Thx
txworking
Para mí, usando una máquina virtual vagabunda, necesitaba cambiar /etc/passwd. Gracias @txworking!
wulftone el
Para mí, el problema se debe a una configuración errónea de shell dentro /etc/passwdde la cuenta raíz ...
disminuya el
3

Revisa tu /etc/passwd. En mi caso, ya había especificado un shell no válido chshy eso es lo que estaba causando el problema.

Lo cambié de zshcaparazón a /bin/zshy eso hizo que el problema desapareciera para mí.

funroll
fuente
1

Parece que tu camino puede estar equivocado. Para comprobarlo:

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

Si el resultado es / usr / bin / zch, esto debería hacer el truco:

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

* editar para error tipográfico.

nickdew
fuente
1

Me enfrenté al mismo problema. cada vez que escribí en chsh se usa para solicitar

chsh: PAM authentication failed

Pero lo resolví haciendo algunas modificaciones en el /etc/passwdarchivo

Users of kali-linux

simplemente abra su terminal raíz y modifique el /etc/passwdarchivo, puede usar el editor pico, nano o vi para este trabajo al que voy vi

vi /etc/passwd

luego busque la cuenta de usuario. y cambie los shells a su shell deseado, asegúrese de que el shell deseado esté instalado en sus distribuciones de Linux para que el nuevo usuario vea qué shells están presentes en su Linux simplemente escriba

cat /etc/shells

los enumera allí. Si ha instalado el shell y no puede verlo, /etc/shelldebe crear un enlace y colocar la ruta del shell, por ejemplo./bin/ksh en el /etc/shellsarchivo manualmente ...

por ejemplo, estás en bash y quieres cambiarlo a ksh

solo ve a la cuenta en /etc/passwd archivo y en el último campo edita

/bin/basha /bin/ksh, o /bin/ksh93(como en sucat /etc/shells )

simplemente cierre sesión e inicie sesión y estará listo para comenzar

para usuarios de otras distribuciones (digamos) ubuntu

escribir

sudo -H gnome-terminal (para obtener un terminal raíz)

y el proceso es el mismo que el anterior ya que usted también tiene un terminal raíz como un usuario de kali-linux

Dhawal S
fuente
1

Debes ejecutar tu código como sudo:

sudo chsh -s /bin/zsh

¡También tuve el mismo problema y funcionó!

Yilmazerhakan
fuente