Me sorprendió no haber encontrado esta pregunta en el sitio. Así que hoy $
surgió después de iniciar sesión como un nuevo usuario. Esto fue inesperado porque el indicador de mi usuario principal comienza con [email protected]:~$
.
Entonces, ¿cómo cambio de este otro Shell a bash?
Suponiendo que el Shell desconocido admite la ejecución de un comando absoluto, puede intentar: /bin/bash
Para cambiar el Shell predeterminado, usaría chsh(1)
. Ejemplo de uso: chsh -s /bin/bash $USER
Escribe bash
. Si desea que esto sea permanente, cambie el Shell predeterminado a /bin/bash
editando /etc/passwd
.
Aquí hay algunos fragmentos de mi /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
El último campo contiene el Shell, modificando el campo después del último :
a un Shell válido o no válido funcionará. /bin/false
y /sbin/nologin
ambos significan que el usuario no tiene un Shell de inicio de sesión real, aunque si pam no está configurado correctamente, esto no significa que no pueden iniciar sesión (informé de un error al respecto en Arch Linux, porque puede iniciar sesión gráficamente sin tener un Shell de inicio de sesión). /bin/bash
y /bin/zsh
son conchas válidas, ver /etc/shells
para obtener una lista de shells válidos en sus sistemas. Aquí está mi /etc/shells
si te interesa.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Sí, puede usar chsh
o usermod
para hacer lo mismo, recuerde que estos son solo archivos de texto estructurados y TIMTOWTDI.
Si chsh o la edición manual de la configuración no funcionará, pero se ejecuta un script ~/.profile al iniciar sesión, agregue esta línea:
exec /bin/bash --login