it-swarm-es.tech

¿Cómo cambio de un Shell desconocido a bash?

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?

41
mouche

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

62
Kevin M

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.

20
xenoterracide

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
12
Kevin Cantu