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 chsh
siempre que esté en el /etc/shells
archivo.
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/login
normalmente 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 chsh
comando. 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/passwd
archivo 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