Tutorial del comando chsh de Linux para principiantes (5 ejemplos)
El shell bash es uno de los shells de inicio de sesión más utilizados en Linux. Pero también existen otros shells, y puedes utilizarlos para tu trabajo en la línea de comandos (hasta que, por supuesto, haya un requisito específico para tu trabajo). En este artículo, hablaremos de una herramienta -apodada chsh- que te permite cambiar a un shell de inicio de sesión diferente de tu shell actual.
Pero antes de hacerlo, conviene mencionar que todos los ejemplos de este tutorial se han probado en una máquina Ubuntu 18.04 LTS.
El comando chsh de Linux
Como ya hemos explicado en la introducción, el comando chsh te permite cambiar tu shell de inicio de sesión. A continuación se muestra su sintaxis:
chsh [options] [LOGIN]
Y esto es lo que dice la página man de la herramienta sobre ella:
The chsh command changes the user login shell. This determines the name
of the user's initial login command. A normal user may only change the
login shell for her own account; the superuser may change the login
shell for any account.
A continuación se presentan algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una buena idea de cómo funciona el comando chsh.
Q1. ¿Cómo se utiliza chsh?
El uso básico es bastante sencillo: sólo tienes que ejecutar el comando «chsh» sin argumentos. Se te pedirá tu contraseña de acceso, y después de introducirla correctamente, tendrás la opción de cambiar tu shell de acceso.
chsh
Ten en cuenta que, por defecto, se cambia el shell de inicio de sesión del usuario actual.
Q2. ¿Cómo cambiar el shell de inicio de sesión con chsh?
Como era de esperar, sólo tienes que introducir el nuevo valor (ver la captura de pantalla del ejemplo anterior) y tu shell se cambiará por el nuevo.
Por ejemplo, yo he introducido /bin/sh como nuevo valor.
Para verificar el cambio, puedes volver a ejecutar el comando chsh. El valor que aparece entre corchetes es el shell actual. Así que en mi caso, el shell actual pasó a ser /bin/sh:
Q3. ¿Cómo cambiar el shell de inicio de sesión para otro usuario?
Para ello, basta con especificar el nombre de usuario como entrada al comando chsh.
chsh [username]
Por ejemplo, para cambiar el shell de inicio de sesión de root, utiliza chsh de la siguiente manera:
chsh root
Q4. ¿Cómo hacer que chsh se ejecute en modo no interactivo?
Utiliza para ello la opción de línea de comandos -s, que requiere que se le pase el nombre del shell como entrada.
Por ejemplo:
chsh -s /bin/sh
De este modo, el shell de inicio de sesión del usuario actual se cambiará a /bin/sh de forma no interactiva.
Q5. ¿Cómo ver la lista de shells de inicio de sesión disponibles en el sistema?
Para ver rápidamente la lista de shells disponibles en tu sistema, basta conhacer un cat en el archivo /etc/shells.
Por ejemplo, aquí está la salida producida en mi sistema:
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
Nota:
The only restriction placed on the login shell is that the command name
must be listed in /etc/shells, unless the invoker is the superuser, and
then any value may be added. An account with a restricted login shell
may not change her login shell. For this reason, placing /bin/rsh in
/etc/shells is discouraged since accidentally changing to a restricted
shell would prevent the user from ever changing her login shell back to
its original value.
Conclusión
Como ves, el comando chsh es una herramienta importante que los usuarios de la línea de comandos deben conocer. Aquí, en este tutorial, hemos hablado de la mayoría de las opciones de línea de comandos que ofrece la herramienta. Para saber más sobre chsh, dirígete a su página man.