Como administrador de sistemas, una de las tareas más recurrentes es saber qué usuarios existen en el sistema por diversas razones, como la auditoría de seguridad o la determinación de sus roles y privilegios. Para ello, es fundamental conocer los comandos que permiten listar usuarios en Linux.
En este artículo, te mostraré diferentes métodos para listar usuarios de Linux, con o sin la especificación de su directorio personal.
Método 1: Leer el archivo /etc/passwd
El método más directo para listar usuarios en Linux es leer el contenido del archivo /etc/passwd. Por ejemplo, puedes utilizar el comando cat junto con la ruta del archivo, como muestro a continuación.
cat /etc/passwdEl comando cat también muestra toda la demás información sobre los usuarios, la cual puede no ser necesaria. Para obtener un resultado más limpio al listar usuarios Linux en consola, puedes filtrar esta salida.
Para ello, utiliza el comando awk, una herramienta muy potente que he cubierto en otro artículo, para extraer únicamente el nombre de usuario del archivo /etc/passwd, como se indica a continuación.
awk -F ":" '{print $1}' /etc/passwdSi tu objetivo es ver explícitamente el directorio asignado a cada usuario, puedes modificar ligeramente el comando awk para que imprima ambos campos: el nombre de usuario ($1) y su directorio personal ($6). Esto es especialmente útil para auditorías rápidas del sistema.
awk -F: '{print "Usuario:", $1, "\tDirectorio:", $6}' /etc/passwdMétodo 2: Usar el comando compgen -u
De manera similar al comando awk, que omite todos los demás datos excepto el nombre de usuario, puedes emplear el comando compgen para realizar la misma tarea sin necesidad de una sintaxis extensa, como demuestro aquí.
compgen -uMétodo 3: Emplear el comando getent
Al igual que el comando cat, getent muestra todos los demás detalles. Puedes utilizar este comando para ejecutar la misma tarea sin necesidad de especificar la ruta al archivo passwd, como se ilustra a continuación.
getent passwdMétodo 4: Filtrar usuarios reales por directorio /home/
Los comandos anteriores pueden dar la impresión de que listan todos los usuarios, tanto los creados manualmente como los generados por servicios del sistema.
Frecuentemente, los usuarios no distinguen entre los usuarios creados manualmente y aquellos generados por servicios.
Para solucionar este problema, es posible listar usuarios Linux con terminal centrándose únicamente en aquellos cuyo directorio personal se encuentra en la ruta /home/. Para lograrlo, volvemos a usar el comando awk como se muestra a continuación.
awk -F: '$6 ~ /^\/home\// {print $1}' /etc/passwdEl comando anterior filtra y muestra exclusivamente los nombres de aquellos usuarios cuyo directorio personal (el sexto campo en /etc/passwd) comienza con la ruta /home/. Este es el método estándar para aislar a los usuarios humanos de los usuarios del sistema o de servicio, que típicamente no tienen sus directorios personales en esta ubicación. Es una técnica que uso constantemente para auditorías rápidas.
Como se puede observar en el ejemplo, se crearon manualmente dos usuarios, «parallels» y «usuarioprueba» precisamente porque ambos usuarios fueron creados manualmente con el comando adduser. Este comando es parte fundamental de la gestión de usuarios, como se explico en esta guía sobre la creación de usuarios.
La terminal: La herramienta clave para la gestión de usuarios
Existen aplicaciones con interfaz gráfica (GUI) que realizan esta misma función; sin embargo, no se mencionan en este artículo. Desde mi perspectiva técnica, la operación de Linux sin el uso de la terminal es considerada por muchos una subutilización de sus capacidades. Dominar estos comandos es un paso esencial para cualquier profesional de Linux.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.