Cambiar la shell de un usuario en Linux con chsh
Aprendemos a cambiar la shell de un usuario por defecto en GNU/Linux con la herramienta chsh. Al final cada maestrillo tiene su librillo, por lo que veremos diferentes formas de obtener el mismo fin. Recordar, que en todos los sistemas like-UNIX, como es el caso de todas las distribuciones GNU/Linux, se pueden utilizar diferentes shell, donde destacan las siguientes:
Las 5 mejores shell para GNU/Linux
Una vez tenemos decidido cual vamos a utilizar, cuando creamos un nuevo usuario podemos indicar la que utilizará. En el caso del comando para crear usuarios useradd
, tenemos que utilizar el parámetro -s
, de la siguiente forma:
useradd -c "Usuario de prueba" -s "/bin/bash" usuario
De esta forma indicamos que el usuario utilizará la shell de Bash.
En cambio, si tenemos un usuario ya creado, le podemos cambiar la shell o terminal a utilizar, con el comando usermod
, como sigue:
usermod -s "/bin/csh" usuario
De esta forma el usuario utilizará en este caso la shell Csh.
Utilizar la herramienta chsh
Otra opción interesante es utilizar la herramienta chsh. Su propósito es cambiar la shell de inicio de sesión. Al utilizarla, si no se proporciona una shell en la línea de comandos, chsh solicita una.
La herramienta chsh aceptará la ruta completa de cualquier archivo ejecutable en el sistema. Sin embargo, emitirá una advertencia si la shell no aparece en la lista del fichero /etc/shells.
Veamos un ejemplo de uso, imaginemos que queremos utilizar la shell de Korn, con el binario ubicado en la ruta /bin/ksh
, deberíamos ejecutar la siguiente línea:
chsh -s /bin/ksh usuario
Por ejemplo:
[root@servcentos ~]# chsh -s /bin/ksh david Cambiando intérprete de órdenes para david. Se ha cambiado el intérprete de órdenes.
Podemos comprobar que efectivamente hemos cambiado de shell, escribiendo:
cat /etc/passwd | grep -i david david:x:6650:6650::/home/david:/bin/ksh
Los parámetros principales de esta herramienta son -s
o —shell
, para indicar la shell a utilizar, además de -l
o —list-shells
, que nos indica las disponibles, que son las mismas del fichero /etc/shells.
Y esto es todo. Espero que esta entrada os sea de utilidad en algún momento.
Para más información, como siempre, podéis consultar la correspondiente página de man: