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, si no todos los sistemas Linux, 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. To block or disable normal user logins in Linux using a nologin shell.
  2. Use a shell wrapper script or program to login user commands before they are sent to a shell for execution. Here, you specify the shell wrapper as a user’s login shell.
  3. To meet a user’s demands (wants to use a specific shell), especially those with administrative rights.

Al crear cuentas de usuario con las utilidades useradd o adduser, el indicador --shell se puede usar para especificar el nombre del shell de inicio de sesión de un usuario distinto del 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 remota de Linux. 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 listemos 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:

  • A user can change their own shell to any thing: which, however must be listed in the /etc/shells file.
  • Only root can run a shell not listed in /etc/shells file.
  • If an account has a restricted login shell, then only root can change that user’s shell.

Ahora vamos a discutir 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, almacenada en el archivo /etc/passwd y la opción -s o --shell es Se utiliza 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 como sigue

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

2. chsh Utility

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 sobre todo 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 utilizando cualquiera de sus editores de texto de línea de comando favoritos y cambie un shell de usuarios específico.

# vi /etc/passwd

Cuando hayas terminado de editar, guarda y cierra el archivo.

No olvides leer estos temas relacionados:

  1. Understanding Shell Initialization Files and User Profiles in Linux
  2. Understand Linux Shell and Basic Shell Scripting Tips – Part I
  3. How To Write and Use Custom Shell Functions and Libraries
  4. Understanding Different Classifications of Shell Commands and Their Usage

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