Cómo comprobar si se ha configurado la shell de un usuario específico en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar la shell predeterminada de un usuario específico en Linux. La shell es el intérprete de línea de comandos que procesa sus comandos, y diferentes usuarios pueden tener shells predeterminadas diferentes.

Explorará el archivo /etc/passwd para identificar la shell predeterminada de un usuario, entenderá cómo enumerar las shells disponibles en el sistema utilizando el comando chsh -l y verificará la información de la shell de un usuario utilizando el comando getent passwd. Este laboratorio proporciona conocimientos fundamentales para comprender las configuraciones de usuario en Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/help -.-> lab-558766{{"Cómo comprobar si se ha configurado la shell de un usuario específico en Linux"}} linux/man -.-> lab-558766{{"Cómo comprobar si se ha configurado la shell de un usuario específico en Linux"}} linux/cat -.-> lab-558766{{"Cómo comprobar si se ha configurado la shell de un usuario específico en Linux"}} end

Verificar la shell de un usuario con cat /etc/passwd

En este paso, aprenderá cómo verificar la shell predeterminada de un usuario en Linux. La shell es el intérprete de línea de comandos que procesa sus comandos. Diferentes usuarios pueden tener shells predeterminadas diferentes.

El archivo /etc/passwd contiene información sobre todos los usuarios del sistema. Cada línea en este archivo representa a un usuario y está estructurada con campos separados por dos puntos (:). El último campo de cada línea especifica la shell predeterminada del usuario.

Podemos usar el comando cat para mostrar el contenido del archivo /etc/passwd.

Abra su terminal si no está abierta. Recuerde, puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Ahora, escriba el siguiente comando y presione Enter:

cat /etc/passwd

Este comando imprimirá todo el contenido del archivo /etc/passwd en su terminal. Verá muchas líneas, cada una correspondiente a una cuenta de usuario en el sistema.

Busque la línea que comienza con labex:. Esta es la entrada para su usuario actual. La línea se verá algo así (las partes pueden variar):

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Los campos son:

  1. Nombre de usuario: labex
  2. Marcador de contraseña: x (el hash real de la contraseña se almacena en otro lugar por seguridad)
  3. Identificador de usuario (UID): 5000
  4. Identificador de grupo (GID): 5000
  5. Información de usuario (GECOS): LabEx user,,,
  6. Directorio personal: /home/labex
  7. Shell predeterminada: /usr/bin/zsh

En este caso, la shell predeterminada del usuario labex es /usr/bin/zsh. Esto confirma que la terminal que está utilizando actualmente es en realidad zsh.

Comprender el archivo /etc/passwd es fundamental para la administración de sistemas Linux. Proporciona una forma rápida de obtener información básica sobre los usuarios, incluyendo su shell predeterminada y su directorio personal.

Haga clic en Continuar para pasar al siguiente paso.

Listar las shells disponibles con chsh -l

En el paso anterior, vio que su shell predeterminada es /usr/bin/zsh. Pero, ¿qué otras shells están disponibles en este sistema?

Los sistemas Linux a menudo tienen múltiples shells instaladas. Puede listar las shells disponibles utilizando el comando chsh con la opción -l.

El comando chsh se utiliza típicamente para cambiar la shell de inicio de sesión de un usuario, pero la opción -l le permite listar las shells que se enumeran en el archivo /etc/shells. Este archivo contiene una lista de shells de inicio de sesión válidas en el sistema.

En su terminal, escriba el siguiente comando y presione Enter:

chsh -l

Este comando mostrará una lista de rutas, cada una de las cuales representa una shell disponible en el sistema. La salida se verá similar a esto:

/bin/sh
/bin/bash
/usr/bin/rc
/usr/bin/rbash
/usr/bin/nologin
/bin/false
/usr/bin/zsh
/usr/bin/ksh
/usr/bin/dash

Puede ver /usr/bin/zsh en esta lista, lo que confirma que es una shell válida en este sistema. También puede ver otras shells comunes como /bin/bash (Bourne Again SHell) y /bin/sh (Bourne SHell).

Comprender qué shells están disponibles es útil si alguna vez necesita cambiar su shell predeterminada o si encuentra scripts escritos para una shell específica.

Haga clic en Continuar para pasar al siguiente paso.

Verificar la shell con getent passwd

En los pasos anteriores, aprendiste cómo ver directamente el archivo /etc/passwd y listar las shells disponibles. Ahora, usemos otro comando, getent, para recuperar información de usuarios, incluyendo la shell.

El comando getent es una utilidad que obtiene entradas de las bases de datos de Name Service Switch (NSS), que pueden incluir /etc/passwd, /etc/group y otras. Es una forma más estandarizada de recuperar información de usuarios en comparación con leer directamente /etc/passwd, ya que también puede consultar bases de datos de usuarios basadas en red.

Para obtener la entrada del usuario labex de la base de datos passwd, escribe el siguiente comando en tu terminal y presiona Enter:

getent passwd labex

Este comando solicita específicamente la entrada del usuario labex de la base de datos passwd. La salida será similar a la línea que viste cuando usaste cat /etc/passwd:

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Nuevamente, el último campo /usr/bin/zsh confirma la shell predeterminada del usuario labex.

Usar getent suele ser preferible en scripts o para consultar sistemas que pueden usar sistemas de autenticación centralizados (como LDAP) en lugar de solo archivos locales. Para comprobaciones simples en un sistema local, tanto cat /etc/passwd como getent passwd <username> funcionan.

Ahora has usado con éxito tres métodos diferentes para entender las shells de usuario en Linux: ver directamente /etc/passwd, listar las shells disponibles con chsh -l y consultar información de usuario con getent.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar la shell predeterminada de un usuario en Linux. Utilizaste el comando cat /etc/passwd para mostrar información de usuarios, centrándote específicamente en el último campo de cada línea, que indica la shell predeterminada. Este método proporciona una forma directa de identificar la shell configurada para cualquier usuario en el sistema examinando la estructura del archivo /etc/passwd.