¿Podemos configurar diferentes shells para diferentes usuarios en una única distribución de Linux/Unix?

¿Podemos configurar diferentes shells para diferentes usuarios en una única distribución de Linux/Unix?

Bueno, esto no es algo que quiera hacer pero hago esta pregunta para saber más sobre la configuración de Shell en sistemas Unix/Linux. Entonces, la situación a la que quiero una respuesta es la siguiente:

Como tenemos diferentes shells puestos a nuestra disposición por un sistema Unix/Linux, es posible que podamos configurar un shell diferente para cada usuario autorizado para acceder al sistema. Entonces, digamos que Tom, Dick y Harry son 3 usuarios autorizados a usar el sistema "Unix" y quiero que "Tom" use el shell.zsh, Dick para usartcshy Harry para usar elintentocaparazón. ¿Cómo puedo hacer esto? ¿Es esto posible?

Respuesta1

En primer lugar, los shells válidos se enumeran en /etc/shells. Cualquier usuario puede cambiar su shell predeterminado chshsiempre que esté en el /etc/shellsarchivo.

En segundo lugar, si desea agregar un shell /etc/shells, puede hacerlo, si elimina una entrada de allí, especialmente /bin/sh, probablemente arruinará el sistema, porque /bin/loginnormalmente NO se iniciará desde un shell que no esté listado allí.

Más información está disponible enchsh(1),iniciar sesión.defs(5), ycontraseña(5) páginas de manual.

Esta capacidad existe desde hace mucho tiempo (creo que BSD 4.x)

Respuesta2

Sí, diferentes usuarios pueden tener diferentes configuraciones de shell. Puedes cambiarlos con, por ejemplo, el chshcomando. Para cambiar el shell del usuario actual a bash (suponiendo que esté en /bin/bash):

chsh -s /bin/bash [username]

También puede modificar su /etc/passwdarchivo manualmente y cambiar la parte que especifica el shell para ese usuario. Por ejemplo:

root:*:0:0:System Administrator:/var/root:/bin/sh

La última parte de cada línea de su /etc/passwd, que se parecerá a la línea anterior, después de la última :, especifica el shell para ese usuario.

Respuesta3

Puedes usar chsh!

chsh -s /bin/sh user_name

información relacionada