3 formas de cambiar el shell predeterminado de un usuario en Linux


En este artículo, describiremos cómo cambiar el shell de un usuario en Linux. El shell es un programa que acepta e interpreta comandos; hay varios shells como bash, sh, ksh, zsh, fish y muchos otros shells menos conocidos disponibles en Linux.

Bash (/ bin/bash) es un shell popular en la mayoría de los sistemas Linux, si no en todos, y normalmente es el shell predeterminado para las cuentas de usuario.

Hay varias razones para cambiar el shell de un usuario en Linux, incluidas las siguientes:

  1. Para bloquear o deshabilitar los inicios de sesión normales de los usuarios en Linux usando un shell nologin.
  2. Utilice un programa o script de envoltura de shell para iniciar sesión en los comandos de usuario antes de que se envíen a un shell para su ejecución. Aquí, especifica el contenedor de shell como el shell de inicio de sesión de un usuario.
  3. Para satisfacer las demandas de un usuario (quiere usar un shell específico), especialmente aquellos con derechos administrativos.

Al crear cuentas de usuario con las utilidades useradd o adduser, la marca --shell se puede usar para especificar el nombre del shell de inicio de sesión de un usuario que no sea el especificado en los archivos de configuración respectivos.

Se puede acceder a un shell de inicio de sesión desde una interfaz basada en texto o mediante un SSH desde una máquina Linux remota. Sin embargo, si inicia sesión a través de una interfaz gráfica de usuario (GUI), puede acceder al shell desde emuladores de terminal como xterm, konsole y muchos más.

Primero enumeremos todos los shells disponibles en su sistema Linux, escriba.

# cat /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/dash

Antes de continuar, tenga en cuenta que:

  • Un usuario puede cambiar su propio shell a cualquier cosa: la cual, sin embargo, debe estar listada en el archivo/etc/shells.
  • Solo root puede ejecutar un shell que no esté incluido en el archivo/etc/shells.
  • Si una cuenta tiene un shell de inicio de sesión restringido, solo root puede cambiar el shell de ese usuario.

Ahora analicemos tres formas diferentes de cambiar el shell de usuario de Linux.

1. Utilidad usermod

usermod es una utilidad para modificar los detalles de la cuenta de un usuario, almacenados en el archivo/etc/passwd y la opción -s o --shell se usa para cambiar el shell de inicio de sesión del usuario .

En este ejemplo, primero verificaremos la información de la cuenta del usuario tecmint para ver su shell de inicio de sesión predeterminado y luego cambiaremos su shell de inicio de sesión de/bin/sh a/bin/bash de la siguiente manera.

# grep tecmint /etc/passwd
# usermod --shell /bin/bash tecmint
# grep tecmint /etc/passwd

2. Utilidad chsh

chsh es una utilidad de línea de comandos para cambiar un shell de inicio de sesión con la opción -s o –shell como esta.

# grep tecmint /etc/passwd
# chsh --shell /bin/sh tecmint
# grep tecmint /etc/passwd

Los dos métodos anteriores modifican el shell especificado en el archivo/etc/passwd que puede editar manualmente como en el tercer método a continuación.

3. Cambie el shell de usuario en el archivo/etc/passwd

En este método, simplemente abra el archivo/etc/passwd usando cualquiera de sus editores de texto de línea de comando favoritos y cambie el shell de un usuario específico.

# vi /etc/passwd

Cuando haya terminado de editar, guarde y cierre el archivo.

No olvide leer estos temas relacionados:

  1. Comprender los archivos de inicialización de Shell y los perfiles de usuario en Linux
  2. Comprender los consejos de creación de scripts de Shell básico y de Shell de Linux - Parte I
  3. Cómo escribir y usar funciones y bibliotecas de shell personalizadas
  4. Comprensión de las diferentes clasificaciones de los comandos de shell y su uso

En este artículo, describimos varias formas de cambiar el shell de un usuario en Linux. Para compartir cualquier pensamiento con nosotros, use la sección de comentarios a continuación.