Cuando instalas Linux ubuntu, la shell bash se configura por defecto. Sin embargo, ¿sabías que en realidad ya puedes utilizar otras shells?

Al crear un nuevo usuario en Linux, puedes especificar la shell predeterminada que el usuario usará. La opción que se utiliza para esto es la opción -s del comando useradd. Si el usuario ya ha sido creado, también se puede cambiar con el comando usermod -s.

En este artículo, revisaremos las principales shells que se pueden usar con la opción -s de useradd y sus características, así como cómo verificar la lista de shells disponibles en el sistema actual.

Desarrollador considerando la opción -s de useradd para elegir diversas shells


1. Principales tipos de shells y características

Ruta de la shell Nombre de la shell Características
/bin/bash Bash La shell estándar más utilizada. Ofrece diversas funciones como edición de comandos, autocompletado y creación de scripts.
/bin/sh Bourne Shell Proporciona funcionalidades ligeras y mínimas. Principalmente utilizada en scripts y entornos restringidos.
/bin/zsh Z Shell (Zsh) Una extensión de Bash. Ofrece excelentes funciones de autocompletado y personalización. Recientemente ha ganado mucha popularidad.
/bin/ksh Korn Shell Shell ampliamente utilizada en entornos comerciales. Enfocada en la velocidad y eficiencia.
/usr/bin/fish Fish Shell Recomendada para principiantes debido a su uso intuitivo y potentes funciones de autocompletado.
/usr/sbin/nologin o /bin/false Shell sin acceso Utilizada para bloquear el acceso de inicio de sesión directo. Se usa comúnmente al crear cuentas del sistema o cuentas de servicio.

2. Verificando las shells disponibles en el sistema actual

La lista de shells disponibles en el sistema actual se almacena en el archivo /etc/shells. Puedes verificarlo con el siguiente comando.

cat /etc/shells

Ejemplo de salida:

/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash

Solo las shells listadas en este archivo se pueden usar con la opción -s del comando useradd.


3. Verificando la ruta exacta de la shell nologin

Para verificar la ubicación exacta de la shell de bloqueo de inicio de sesión (nologin) en el sistema, usa el siguiente comando.

which nologin

Ejemplo de salida:

/usr/sbin/nologin

Puede variar según el sistema, por lo que es recomendable verificarlo.


4. Ejemplos de casos de uso

Agregar un usuario que utiliza la shell Bash

sudo useradd -m -s /bin/bash nombredeusuario

Agregar un usuario que utiliza la shell Zsh

sudo useradd -m -s /bin/zsh nombredeusuario

Agregar un usuario del sistema sin acceso

sudo useradd -r -s /usr/sbin/nologin nombredeusuario

Ejemplo de cambio de shell de un usuario existente:

sudo usermod -s /usr/sbin/nologin nombredeusuario

Comando para verificar el resultado del cambio:

cat /etc/passwd | grep nombredeusuario

Ejemplo de salida correcta:

nombredeusuario:x:1004:1004::/home/django:/usr/sbin/nologin

¡Ahora entiende claramente la opción -s de useradd y las shells disponibles, y gestiona tus cuentas de manera segura con la configuración correcta de la shell!