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

Cómo usar 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.

Cómo cambiar el shell de inicio de sesión usando chsh

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:

Establecer el nuevo shell de inicio de sesión

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

Cómo cambiar el shell de inicio de sesión para algún otro usuario

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.

También te podría gustar...