No se puede iniciar sesión si el shell está configurado en /usr/bin/bash

No se puede iniciar sesión si el shell está configurado en /usr/bin/bash

Entonces me encontré con un problema interesante. En Arch Linux, si creo un usuario que usa un shell, /usr/binno puede iniciar sesión. Creo el usuario con:

useradd -m -G wheel -s /usr/bin/bash username

y cuando intentan iniciar sesión, obtienen el mensaje "Inicio de sesión incorrecto". Pero si edito /etc/passwdy cambio el shell /bin/bash, todo funciona bien.

¿Alguna idea de lo que está pasando aquí? ¡Gracias!

Respuesta1

como elArch Wiki deja claro:

Advertencia: Para poder iniciar sesión, el shell de inicio de sesión debe ser uno de los que figuran en /etc/shells; de lo contrario, el módulo PAM pam_shell denegará la solicitud de inicio de sesión.En particular, no utilice la ruta /usr/bin/bash en lugar de /bin/bash, a menos que esté configurado correctamente en /etc/shells.

cat /etc/shells                         
#
# /etc/shells
#

/bin/sh
/bin/bash

Respuesta2

Si bashestá en /bin/bashy /biny /usr/binno están vinculados, entonces el programa de inicio de sesión no puede iniciar el shell si especifica una ruta incorrecta a Bash.

Si los binarios están vinculados entre sí, entonces deberá editarlos /etc/shellspara incluir ambas variantes.

información relacionada