La gestión de usuarios es una tarea crítica de administración del sistema Linux. En grandes organizaciones, tener una visión clara de quién tiene acceso al sistema es crucial para agregar, eliminar usuarios y asignar nuevos privilegios a los usuarios.
Este tutorial te mostrará cómo listar usuarios en un sistema basado en Linux. La guía proporciona cuatro métodos de listado y explica conceptos esenciales relacionados con la administración de usuarios.
Prerrequisitos
- Un sistema con Linux.
- Acceso a la terminal/línea de comandos.
Listar usuarios en Linux
Linux almacena información sobre usuarios locales en el archivo /etc/passwd. Cada línea del archivo contiene información sobre un único usuario, incluyendo su nombre de usuario, número de ID de usuario (UID), directorio principal y la shell de inicio de sesión.
Las siguientes secciones presentan múltiples formas de acceder a los datos en /etc/passwd y listar usuarios en distribuciones Linux.
Los comandos utilizados en el tutorial son:
- El comando cat
- El comando less
- El comando awk
- El comando getent
Nota: Para mostrar una lista de los usuarios conectados y la información como tiempo de arranque, procesos, nombres de host y más, usa el comando who.
Listar usuarios con el comando cat
El comando cat ofrece una forma directa de listar el contenido del archivo /etc/passwd.
Para ver el archivo, escribe:
cat /etc/passwd
El sistema muestra el archivo completo con todos los usuarios en el sistema.
Para ver solo el número de usuarios, canaliza la salida del comando anterior al comando wc y haz que cuente el número de líneas:
cat /etc/passwd | wc -l
El número de líneas en /etc/passwd corresponde al número total de usuarios.
Listar usuarios con los paginadores de terminal less y more
En sistemas con muchos usuarios, es útil limitar la salida del archivo /etc/passwd mostrada de una vez. Usa un comando paginador de terminal, como less o more, para navegar por el contenido del archivo línea por línea o página por página.
Para abrir /etc/passwd usando less, ingresa:
less /etc/passwd
La primera página del archivo aparece en la salida. La lista se detiene cuando llega al final de la pantalla del terminal. Usa el teclado para navegar por el archivo.
Usa more para obtener un resultado similar. Este comando es más antiguo y tiene un conjunto más limitado de funcionalidades:
more /etc/passwd
Listar usuarios con el comando awk
Usa el comando awk para listar solo los nombres de usuario, sin información adicional sobre cada usuario. Dado que los campos de datos en /etc/passwd están separados por un símbolo de dos puntos, la siguiente sintaxis le dice a awk que muestre solo el primer campo en cada línea:
awk -F':' '{ print $1}' /etc/passwd
Combina awk y less para una vista página por página de los resultados.
awk -F':' '{ print $1}' /etc/passwd | less
Listar usuarios con el comando getent
El comando getent busca y muestra entradas de la base de datos del sistema. Las bases de datos que se pueden buscar están listadas en el archivo /etc/nsswitch.conf. Por defecto, el archivo incluye la base de datos passwd.
Lista el contenido completo de la base de datos passwd escribiendo:
getent passwd
La salida es la misma que la salida del comando cat.
Sin embargo, puedes usar getent para buscar usuarios específicos. Para hacerlo, usa la siguiente sintaxis:
getent passwd [nombre_de_usuario]
Si el usuario existe en el sistema, el comando muestra la línea de entrada de passwd relacionada.
Listar usuarios normales y del sistema en Linux
Los sistemas basados en Linux tienen dos tipos de usuarios: usuarios del sistema y usuarios normales.
- Los usuarios del sistema son entidades creadas por el sistema para ejecutar procesos no interactivos, es decir, procesos que se ejecutan en segundo plano y no requieren interacción humana. El usuario del sistema más importante es root, que posee privilegios administrativos.
- Los usuarios normales son usuarios humanos creados por root o por otro usuario con privilegios de root. Cada usuario normal tiene una shell de inicio de sesión y un directorio principal para almacenar sus archivos.
Tanto los usuarios del sistema como los usuarios normales en Linux tienen un ID de usuario único (UID) para identificarlos. Los usuarios del sistema tienen UIDs en el rango de 0 (usuario root) a 999. Los usuarios normales generalmente reciben UIDs desde 1000 en adelante, y cada usuario recién creado recibe el siguiente UID no utilizado más pequeño.
Para verificar el rango de UID para usuarios normales, usa el comando grep para buscar la información almacenada en /etc/login.defs:
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
La salida en este ejemplo muestra que el UID más pequeño que un usuario normal puede recibir es 1000, y el más grande es 60000.
Usa getent para buscar en la base de datos passwd por UID:
getent passwd [UID]
La salida muestra la entrada del usuario relacionada con el UID.
Usa UIDs en combinación con getent para buscar usuarios en un rango:
getent passwd {[primer-UID]..[último-UID]}
El comando ahora lista todos los usuarios dentro del rango de UID especificado.
Esta guía te mostró cómo listar todos los usuarios de Linux, buscar usuarios y encontrar el número de usuarios de Linux en cualquier distribución de Linux. Si quieres aprender más sobre cómo manejar este sistema operativo, revisa el resto de nuestros artículos en Portalmastips. Recientemente, sacamos una guía sobre qué es sudo rm -rf en Linux y cuáles son sus verdaderos riesgos.