Cómo arreglar bash o auto run / bin / bash en el inicio de sesión SSH

16

Al iniciar sesión como rooten mi servidor, todo funciona bien, pero cuando inicio sesión como myusernamebash no funciona correctamente.

La línea comienza con:

$ 

en lugar de

myusername@myserver:~$

y todas las teclas especiales como las teclas de flecha, las teclas de tabulación, etc. no funcionarán.

Cuando escribo bin/bash, funciona de nuevo, pero me gustaría solucionar el problema o ejecutarlo automáticamente bin/bashal iniciar sesión. ¿Cómo puedo arreglar esto?


fuente

Respuestas:

16

Solo necesitas cambiar tu caparazón. Como ese usuario, ejecute:

$ chsh -s /bin/bash

Luego cierre sesión y vuelva a ingresar.

Después de hacer esto, el mensaje no se ve como lo desea, deberá comenzar a ajustar la variable PS1 de su entorno.

EEAA
fuente
Esto es realmente peligroso ya que la pregunta es sobre el rootusuario. Es probable que no esté usando Linux. La raíz debe permanecer con el shell predeterminado ya que el proveedor probablemente va a contar con que sea ksho lo que sea que elija. En cambio, la respuesta real es "no deberías iniciar sesión como root de todos modos".
bahamat
12

Necesitas cambiar tu caparazón. Ejecuta el comando

chsh -s /bin/bash

luego inicie sesión nuevamente.

Sin embargo, no todos los usuarios tienen derecho a cambiar su propio shell. Si usa sudorecuerde agregar su nombre de usuario al chshcomando como

sudo chsh <username> -s /bin/bash

de lo contrario, cambiará el shell de root sin darse cuenta.

Mikael Fremling
fuente
Punto justo. Extendió la respuesta ligeramente.
Mikael Fremling
Era muy ingenuo intentarlo: sudo chsh -s /bin/bashya que mi usuario no tenía permiso para cambiar el shell. Tu respuesta me ayudó a resolverlo. ¡Gracias!
Edenshaw
5

Una posible razón es que el shell predeterminado de myusername no es bash.

Puede verificar el shell de su usuario actual con:

  • echo ${SHELL}
  • echo $0

Para cambiar el shell de usuario de forma permanente man chsh , consulte , por ejemplo:

chsh -s /bin/bash
H.-Dirk Schmitt
fuente
2

Si su contraseña de usuario de sudo está deshabilitada, puede editarla /etc/passwddirectamente, encontrar la línea donde está su usuario y cambiar la ruta del shell /bin/bash.

Aquí está la explicación del formato / etc / passwd .

mujer
fuente
0

Solo quería agregar una cosa más.

Si se requiere acceso a sudo para cambiar el bash para ese usuario, entonces también debe mencionar su nombre de usuario en el comando sudo ya que sin nombre de usuario se aplicará al usuario root.

$ sudo chsh -s /bin/bash <user>
Prateek
fuente