Linux en Español

15+ Ejemplos para Listar Usuarios en Linux

En este post, aprenderá sobre listar usuarios en Linux. A parte de esto, usted conocerá otros trucos sobre las características de los usuarios Linux.

Existen 2 tipos de usuarios en Linux, los usuarios de sistemas que son creados por defecto con el sistema. Por otra parte, existen los usuarios regulares que son creados por el administrador del sistema y pueden iniciar sesión en el sistema y utilizarlo.


 

 

¿Qué archivos contienen las listas de los usuarios en Linux?

Antes de que comencemos a listar usuarios, necesitamos conocer ¿dónde están esos usuarios guardados en Linux?

Los usuarios están almacenados en un archivo de texto en el sistema llamado passwd file. Este archivo está localizado en el directorio /etc.

El archivo está ubicado en el siguiente camino:


En este archivo, puede encontrar toda la información acerca de los usuarios en el sistema.

 

Listar todos los usuarios

Listar usuarios es un primer paso para administrarlos. De esta forma conoceremos cuantos usuarios hay y quienes son. En Linux, casi todo puede ser hecho de varias formas y esto no es una excepción.

Para listar todos los usuarios, usted puede utilizar el comando cat:


enumerar todos los usuarios en Linux

Como puede ver en la imagen, existe toda la información acerca de los usuarios.

1- En el primer campo, usted observara el nombre del usuario.

2- Luego, una representación de la contraseña encriptada (los caracteres x). la contraseña encriptada es almacenada en /etc/shadow file.

3- El UID o el ID del usuario.

4- El próximo campo se refiere a el grupo primario de usuarios.

5- Luego, muestra la información de la ID del usuario como la dirección, correo electrónico, etc.

6- Luego de esto, usted observara el directorio principal del usuario.

7- El ultimo campo es la Shell utilizada por ese usuario.

Sin embargo, aunque la información es bastante útil, pero si solo quiere listar el nombre de los usuarios en una forma básica, usted puede utilizar este comando:


Listar Usuarios en Linux

Ahora tenemos solo los nombres solo por imprimir el primer campo del archivo te solamente.

 


Listar & ordenar usuarios por nombre

El comando anterior sirve al propósito de listar usuarios en Linux. Pero y ¿que para listar los usuarios en orden alfabético?

Para hacer esto, utilizaremos los comandos previos, pero agregaremos el comando ordenar.

Por lo que el comando será como este:


ordenar usuarios por nombre

Como puede ver en la imagen, los usuarios se muestran ordenados.

 


Listas de usuarios Linux sin contraseña

Es importante conocer los usuarios que no tienen contraseña y tomar las acciones apropiadas. Para listar los usuarios que no tienen contraseña, solo utilice el siguiente comando:


Usuario sin contraseña

El uso de regex listará todos los usuarios que no tienen contraseña.

 

Listas de usuarios por uso de disco

Si usted tiene un gran directorio y quiere conocer cual usuario está inundándolo, usted puede utilizar el comando du para obtener el uso de disco.

Con esto, puede detectar cuál de estos usuarios está utilizando de forma incorrecta el espacio de disco.

Para ello, es suficiente con utilizar el siguiente comando:


Listas de usuarios por uso de disco

En esta forma, usted tendrá los usuarios ordenados por uso de disco para el /directorio local.

Utilizamos el -n con el comando ordenar para ordenar la salida por números.

 


Lista de los usuarios conectados actualmente

Para listar a los usuarios conectados actualmente, tenemos varias formas de hacerlo. Para el primer método podemos utilizar el comando usuarios:


Lista de los usuarios conectados actualmente

Listará los usuarios con una sesión abierta en el sistema.

Pero esta información es un poco básica, sin embargo, tenemos otro comando que da más detalles. El comando es simplemente w.


Usar el comando w para enumerar los usuarios actualmente registrados

Con este comando, podemos tener más información como el tiempo exacto cuando la sesión fue iniciada y la sesión terminal que tiene disponible.

Finalmente, existe un comando llamado who. Está disponible para toda la familia Unix. Por lo que puede utilizarlo en otro sistema como FreeBSD.


El comando who

Con el comando who, también tenemos alguna información acerca de los usuarios conectados actualmente. Por supuesto, podemos agregar la opción -a y mostrar todos los detalles.


El comando who con opciones

Por lo que, de esta manera uste conoce todo sobre los usuarios conectados.

 

Lista Linux de usuarios recientemente conectados en el sistema

Vimos cómo obtener los usuarios conectados actualmente, pero ¿qué acerca de listar el historial de conexión de los usuarios?

Usted puede utilizar el comando last para obtener más información acerca de los inicios de sesión que tuvieron lugar:


El comando last

O los inicios de sesión de un usuario en particular


Por ejemplo:


comando last con usuario específico

Estos son las actividades de inicio de sesión del usuario, cuando fueron iniciadas y cuánto tiempo le tomó.

 

Listas de inicios de sesión de usuarios en una hora o día especifico

¿Qué hay de listar los inicios de sesión de los usuarios en una fecha u hora específica? Para ello utilizamos el último comando, pero con el parámetro -t:


Por ejemplo:


Lista de usuarios por una fecha específica

Y ahora todo lo que tiene que hacer es elegir una fecha y hora exacta para listar quien se conectó en ese momento.

 

Lista de todos los usuarios en un grupo

Existen 2 tipos formas para listar los miembros de un grupo en Linux, la forma más fácil y más directa de obtener los usuarios del archivo /etc/group de esta manera:


Este comando listará a los usuarios en el grupo likegeeks.

La otra forma es utilizando comandos como los comandos members en distros basados en Debian. Sin embargo, no está instalado por defecto en las distribuciones Linux.

Para instalar en Ubuntu/ Linux Mint19, solo utilice APT:


O en caso de CentOS:


Una vez instalado, usted puede correr el comando luego el nombre del grupo de que quiere listar los usuarios:


Por ejemplo:


Usando el comando members

De esta forma puede listar usuarios de un grupo en un distro basado en Debian. ¿Que hay sobre un Redhat basado en distro como CentOS?

Puede utilizar el siguiente comando:


 


Listar usuario con UID

En sistemas Unix, cada usuario tiene un identificador de usuario o ID. El sirve para manjar y administrar cuentas internamente en el sistema operativo.

Generalmente, UIDs de o a 1000 son para usuarios de sistemas. Y de allí en adelante para usuarios regulares. Siempre en sistemas Unix, UID cero pertenece a los usuarios raíz (puede tener más de un usuario con UID cero).

Por lo que, ahora listaremos los usuarios con sus respectivos UID utilizando awk.

El comando que realiza la tarea es el siguiente:


Lista de usuarios con el UID

Como puede ver, cada usuario con su UID

 

Lista de usuarios raíz

En un sistema como Unix como Linux, existe usualmente un usuario raíz. Si existen varios, ¿cómo listarlos?

Para hacer esto, podemos utilizar este comando:


Lista de usuarios raíz

Aquí estamos filtrando el archivo para obtener usuarios con UID de cero (usuarios raíz).

Otra forma de hacerlo es comprobando el archivo /etc/group:


Los usuarios root en Linux

Aquí estamos obteniendo usuarios en el grupo raíz desde el archivo /etc/group.

También, puede verificar si algún usuario puede ejecutar comandos como raíz al chequear el archivo /etc/sudoers:


 

Obtener el número total de usuarios

Para obtener el número total de usuarios en Linux, usted puede contar las líneas en el archivo /etc/passwd utilizando el comando wc de esta manera:


Listar el número total de usuarios en Linux

¡Grandioso! 43 usuarios. Pero esto incluye usuarios del sistema y regulares. ¿Que hay sobre obtener el número de usuarios regulares solamente?

¡Fácil! Ya que conocemos de arriba que los usuarios regulares tienen UID de 1000 en adelante, podemos utilizar awk para obtenerlos:


Lista de usuarios habituales

¡Genial!

 


Lista de usuarios sudo

Los sistemas Linux tiene una utilidad llamada sudo que le permite ejecutar comandos como si fuera otro usuario quien usualmente es el usuario raíz.

Esto debería ser manejado con cuidado en un ambiente profesional.

También, es muy importante conocer cual usuarios puede correr el comando sudo. Para esto, es suficiente listar los usuarios que pertenecen al grupo sudo.


usuarios de sudo group

Los usuarios en este grupo pueden ejecutar comandos como super usuarios.

 

Listas de usuarios que tienen acceso SSH

SSH permite a los usuarios acceder a computadoras remotas en una red. Esto es bastante seguro y nació como un reemplazo para Telnet.

En Linux por defecto, todos los usuarios regulares pueden iniciar sesión y usar SSH. Si usted quiere limitar esto, puede utilizar el archivo de configuración de SSH (/etc/ssh/ssh_config) y agregar la siguiente directiva:


También, puede permitir grupos en lugar de permitir solo usuarios utilizando la directiva AlloeGroups:


Estas directivas definen quien puede acceder el servicio. No olvide reiniciar el servicio SSH.

 

Lista de usuarios que tienen permiso a un archivo o directorio

Podemos dar más de un permiso para acceder o modificar archivos y directorios de dos formas.

El primer método es agregando usuarios al grupo del archivo o del directorio.

De esta forma, podemos listar el grupo de miembros utilizando la utilidad members como se mostró arriba.

Está bien, pero ¿que si solo queremos los usuarios que tienen acceso a un archivo en específico? (no todos los permisos del grupo)

Aquí podemos definir la ACL para este archivo utilizando el comando setfacl de esta forma:


Aquí damos al usuario llamado newuser el permiso para el archivo llamado myfile, permisos para leer, escribir y ejecutar.

Ahora el archivo puede ser accedido y modificado por el dueño y el usuario newuser. ¿Así que ahora como los listamos?

Podemos listarlos utilizando el comando getfacl de esta manera:


Este comando listará todos los usuarios que tienen permiso para el archivo con su permiso correspondiente.

 

Listar usuarios bloqueados (deshabilitados)

En Linux, como medida de seguridad, podemos bloquear usuarios. Esto como precaución si se sospecha que el usuario está haciendo cosas malas y usted no quiere eliminarlo completamente y solo quiere bloquearlo para investigación.

Para bloquear un usuario, puede utilizar el siguiente comando:


Ahora el usuario llamado myuser no será capaz de iniciar sesión o utilizar el sistema.

Para listar todos los usuarios bloqueados del sistema, solo utilice el siguiente comando:


Esto imprimirá todos los usuarios bloqueados incluyendo los usuarios del sistema. ¿Pero cómo se hace para listar los usuarios regulares solamente?

Como vimos anteriormente, usando awk podemos obtener los usuarios regulares bloqueados de esta forma:


¡Muy fácil!

 

Listar usuarios remotos (LDAP)

Okay, ahora podemos listar todos los usuarios del sistema (usuarios locales), pero, como listar los usuarios remotos o usuarios LDAP? Bueno podemos utilizar una herramienta como ldapsearch, pero ¿existe otra forma?

¡Afortunadamente si! Usted puede listar usuarios locales y remotos con un comando llamado getent


Este comando, lista tanto a los usuarios de sistema locales como a los remotos y a los usuarios LADP o NIS o los usuarios de cualquier otra red.

Puede canalizar los resultados de este comando a cualquiera de los comandos mencionados anteriormente de la misma manera.

También, el comando getent puede listar cuentas de grupo de esta manera:


Puede revisar la página principal del comando para conocer las otras bases de datos en las cuales el comando puede buscar.

 

Conclusión

¡Listar usuarios en el sistema Linux fue divertido! Además de esto, hemos aprendido algunos consejos sobre los usuarios y como administrarlos en diferentes formas.

Finalmente, este conocimiento permitirá una mejor administración de los usuarios del sistema.

Espero que encuentre útil este tutorial. Siga regresando.

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *