¿Cómo se cambia el shell predeterminado para TODOS LOS USUARIOS a bash?


38

Quiero que cada nuevo usuario de ahora en adelante tenga bash como su shell por defecto.

Sé que para cambiar su propio shell a bash, usaría el comando "chsh -s / bin / bash", pero ¿cómo configuro automáticamente el shell de todos los futuros usuarios de manera predeterminada?

Respuestas:


63

agregar usuario

El adduserarchivo predeterminado es /etc/adduser.conf. El shell predeterminado definido por la DSHELLvariable es /bin/bashpor defecto.

useradd

Lo más probable es que no necesite esto porque useradd es una utilidad de muy bajo nivel, y casi nunca se usa directamente.

Si usa useradd, edite el /etc/default/useraddarchivo de esqueleto (sin embargo, no olvide hacer una copia de seguridad).

Establezca la SHELLvariable en /bin/bashlugar de /bin/sh.

Ahora, cada vez que usas useraddpara agregar un nuevo usuario, bashes automáticamente su shell predeterminado.

Usuarios ya existentes

Si desea cambiar el shell de los usuarios ya existentes, debe editar el /etc/passwdarchivo (asegúrese de tener una copia de seguridad del mismo).

Aquí hay una descripción de las columnas.

  1. nombre de inicio de sesión
  2. contraseña cifrada opcional
  3. ID de usuario numérico
  4. ID de grupo numérico
  5. nombre de usuario o campo de comentario
  6. directorio de inicio del usuario
  7. intérprete de comandos de usuario opcional

En ese orden separados por dos puntos (:) como este.

root:x:0:0:root:/root:/bin/bash

Para obtener más información sobre ese archivo, consulte la página de manual man 5 passwd.


44
Creo que una forma más segura de cambiar el shell de otro usuario sería algo así sudo -u $USER chsh -s $SHELL.
Jack O'Connor

1
@ JackO'Connor, también debes publicar eso como respuesta.
Octavian A. Damiean

Esto no parece estar funcionando en Ubuntu 16.04. ¿Alguien sabe la solución?
Harshdeep

26

Como señaló Octavian, la forma de cambiar los valores predeterminados depende de la forma en que está creando el usuario. Intenté crear un nuevo usuario a través de mi Configuración de Gnome en este momento, y parece que sigue /etc/default/useradd, así que esa podría ser su mejor opción. Para los usuarios existentes, la forma más segura de cambiar el shell de inicio de sesión de otra persona es con usermod :

usermod -s /bin/bash $USERNAME

Si no eres root, deberás sudo eso. Una alternativa es sudo en el usuario que desea modificar y simplemente ejecutar chsh , así:

sudo -u $USERNAME chsh -s /bin/bash

Es mejor evitar la edición /etc/passwda mano, porque un error podría romper todo tipo de cosas.


1

Si realmente desea que todos los usuarios en el servidor tengan bash (que era la pregunta que realmente se hizo), puede ejecutar el comando:

sudo dpkg-reconfigure dash

Y luego elija NO guión. Como se explica en esta respuesta,

¿Cómo puedo hacer que / bin / sh apunte a / bin / bash?

Eso no solo establece bash como el shell predeterminado, sino que remite sh y las páginas man correctamente.

Espero que esto ayude.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.