Más de 15 ejemplos para listar usuarios en Linux

en esta publicación, aprenderá sobre listar usuarios en Linux. Además de esto, conocerás otros trucos sobre las características de los usuarios de Linux.

Hay dos tipos de usuarios en Linux, los usuarios del sistema que se crean por defecto con el sistema. Por otro lado, hay usuarios regulares que son creados por los administradores del sistema y pueden iniciar sesión en el sistema y usarlo.

Tabla de Contenidos

¿Qué archivo contiene la lista de los usuarios en Linux?,

antes de empezar a listar usuarios, necesitamos saber dónde se guardan estos usuarios en Linux?

los usuarios se almacenan en un archivo de texto en el sistema llamado archivo passwd. Este archivo se encuentra en el directorio /etc.

El archivo se encuentra en la siguiente ruta:

$ /etc/passwd

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

listar todos los usuarios

listar usuarios es el primer paso para administrarlos. De esta manera, sabremos cuántos son y quiénes son. En Linux, casi todo se puede hacer de varias maneras, y esto no es una excepción.,

para listar todos los usuarios, puede usar el comando cat:

$ cat /etc/passwd

como puede ver en la imagen, hay toda la información sobre los usuarios.

1 – En el primer campo, verá el nombre de usuario.

2 – el segundo campo (el carácter x) es una representación de la contraseña cifrada. La contraseña cifrada se almacena en el archivo/etc / shadow.

3 – el UID o el ID de usuario.

4 – El siguiente campo se refiere al grupo principal del usuario.

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

6-Después de esto, verá el directorio personal del usuario.

7 – El último campo es el shell utilizado por ese usuario.

sin embargo, aunque la información es bastante útil, si solo desea enumerar los nombres de los usuarios de una manera básica, puede usar este comando:

$ cut -d: -f1 /etc/passwd

Ahora tenemos los nombres solo imprimiendo el primer campo del archivo.

List& Ordenar usuarios por nombre

el comando anterior sirve para listar usuarios en Linux. Pero, ¿qué pasa con la lista de los usuarios en orden alfabético?,

para hacer esto, usaremos el comando anterior, pero agregaremos el comando sort.

Así, el comando será similar a este:

$ cut -d: -f1 /etc/passwd | sort

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

lista de usuarios de Linux sin contraseña

es importante conocer a los usuarios que no tienen contraseña y tomar las medidas adecuadas. Para listar los usuarios que no tienen una contraseña, simplemente use el siguiente comando:

$ sudo getent shadow | grep -Po '^*(?=:.?:)'

la expresión regular utilizada mostrará todos los usuarios sin contraseña.,

lista de usuarios por uso del disco

Si tiene un directorio grande y desea saber qué usuario lo está inundando, puede usar el comando du para obtener el uso del disco.

con esto, puede detectar cuáles de estos usuarios están usando mal el espacio en disco.

Para ello, basta con utilizar el siguiente comando:

$ sudo du -smc /home/* | sort -n

De esta manera, usted tendrá los usuarios ordenados por el uso de disco para el directorio /home.

utilizamos-n para el comando sort para ordenar la salida por números.,

listar los usuarios actualmente registrados

para listar los usuarios actualmente registrados, tenemos varias formas de hacerlo. El primer método podemos usar el comando users:

$ users

listará los usuarios con sesiones abiertas 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.,

$ w

Con este comando, podemos tener más información, como el momento exacto en que se inició la sesión y la sesión de terminal que dispone.

finalmente, hay un comando llamado who. Está disponible para toda la familia Unix. Así que puedes usarlo en otros sistemas como FreeBSD.

$ who

con el comando who, también tenemos alguna información sobre los usuarios actualmente registrados. Por supuesto, podemos añadir la opción-a y mostrar todos los detalles.,

$ who -a

de Esta manera, usted sabe todo acerca de los usuarios conectados.

Linux lista de usuarios que han iniciado sesión recientemente en el sistema

vimos cómo obtener los usuarios actualmente registrados, ¿Qué hay de la lista del historial de inicio de sesión de los usuarios?,

Puede usar el último comando para obtener más información sobre los inicios de sesión que tuvieron lugar:

$ last

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

$ last 

por ejemplo:

$ last angelo

estos son la actividad de inicio de sesión del usuario y cuándo se inició y cuánto tiempo tomó.

lista los inicios de sesión de los usuarios en una fecha u hora específica

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

$ last -t YYMMDDHHMMSS

por ejemplo:

$ last -t 20190926110509

Y ahora, todo lo que tiene que hacer es elegir una fecha exacta & hora de listar quién ha iniciado sesión en ese momento.

listar todos los usuarios de un grupo

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

$ cat /etc/group | grep likegeeks

Este comando listará los usuarios del grupo likegeeks.,

la otra forma es usando comandos como el comando members en distribuciones basadas en Debian. Sin embargo, no se instala por defecto en distribuciones Linux.,

para instalarlo en Ubuntu / Linux Mint 19, simplemente use APT:

$ sudo apt install members

o en el caso de CentOS:

$ sudo dnf install members

Una vez instalado, puede ejecutar el comando a continuación, el nombre del grupo que desea enumerar los usuarios a:

$ members 

por ejemplo:

$ members avahi

de esta manera, puede listar usuarios para un grupo en una distribución basada en Debian. ¿Qué hay de una distribución basada en RedHat como CentOS?,

Puede usar el siguiente comando:

$ getent group likegeeks

lista de usuarios con UID

en sistemas Unix, cada usuario tiene un identificador de usuario o ID. Sirve para gestionar y administrar cuentas internamente en el sistema operativo.

generalmente, los UIDs de 0 a 1000 son para usuarios del sistema. Y a partir de entonces para los usuarios regulares. Siempre en sistemas Unix, UID zero pertenece a los usuarios root (puede tener más de un usuario con UID de cero).

así que ahora, vamos a listar a los usuarios con sus respectivos UID usando Awk.,

El comando que realiza la tarea es la siguiente:

$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

Como puede ver, cada usuario con su UID.

lista de usuarios root

en un sistema tipo Unix como Linux, normalmente solo hay un usuario root. Si hay muchos, ¿cómo enumerarlos?

para hacer esto, podemos usar este comando:

$ grep 'x:0:' /etc/passwd

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

de otra manera comprobando el archivo / etc / group:

$ grep root /etc/group

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

Además, puede comprobar si cualquier usuario puede ejecutar comandos como root comprobando el archivo /etc/sudoers:

$ cat /etc/sudoers

obtener el número total de usuarios

para obtener el número total de usuarios en Linux, puede contar las líneas en el archivo /etc/passwd utilizando el comando wc como este:

$ cut -d: -f1 /etc/passwd | wc -l

¡genial! 43 usuarios., Pero esto incluye el sistema y los usuarios regulares. ¿Qué hay de obtener el número de usuarios regulares solamente?

Fácil! Ya que sabemos desde arriba que los usuarios regulares tienen UID de 1000 o mayor, podemos usar Awk para obtenerlos:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd

Cool!

List sudo users

Los sistemas Linux tienen una utilidad llamada sudo que le permite ejecutar comandos como si fuera otro usuario que suele ser el usuario root.

esto debe manejarse con cuidado en un entorno profesional.,

además, es muy importante saber qué usuarios pueden ejecutar el comando sudo. Para ello, basta con listar los usuarios que pertenecen al grupo sudo.

$ members sudo

los Usuarios de este grupo pueden ejecutar comandos como súper usuarios.

lista de usuarios que tienen acceso SSH

SSH permite a los Usuarios acceder a equipos remotos a través de una red. Es bastante seguro y nació como un reemplazo para Telnet.

de forma predeterminada, todos los usuarios regulares pueden iniciar sesión y usar SSH., Si desea limitar esto, puede usar el archivo de configuración SSH (/etc/ssh/ssh_config) y agregar la siguiente directiva:

AllowUsers user1 user2 user3

Además, puede permitir grupos en lugar de permitir que los usuarios solo usen la directiva AllowGroups:

AllowGroups group1 group2 group3

estas directivas definen quién puede acceder al servicio. No olvide reiniciar el servicio SSH.

lista de usuarios que tienen permisos para un archivo o directorio

podemos dar permiso a más de un usuario para acceder o modificar archivos& directorios de dos maneras.,

el primer método es agregar usuarios al grupo del archivo o del directorio.

de esta manera, podemos listar los miembros del grupo usando la utilidad members como se muestra arriba.

Está bien, pero ¿qué pasa si solo queremos que este usuario tenga acceso a este archivo específico solamente (no todos los permisos del grupo)?

Aquí podemos establecer la ACL para este archivo usando el comando setfacl como este:

$ setfacl -m u:newuser:rwx myfile

Aquí le damos al usuario llamado newser el permiso para el archivo llamado myfile los permisos de read & write & execute.,

Ahora, el archivo puede ser accedido o modificado por el propietario y el usuario llamado usuarionuevo. Entonces, ¿cómo enumerarlos?

Podemos listarlos usando el comando getfacl así:

$ getfacl myfile

Este comando listará a todos los usuarios que tienen permisos para el archivo con sus permisos correspondientes.

List locked (disabled) users

en Linux, como medida de seguridad, podemos bloquear usuarios. Esto como precaución si se sospecha que el Usuario está haciendo las cosas mal, y no desea eliminar por completo al usuario y simplemente bloquearlo para la investigación.,

para bloquear un usuario, puede usar el siguiente comando:

$ usermod -L myuser

ahora el usuario llamado myuser ya no podrá iniciar sesión ni usar el sistema.

para listar todos los usuarios bloqueados del sistema, simplemente use el siguiente comando:

$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

Esto imprimirá todos los usuarios bloqueados, incluidos los usuarios del sistema. ¿Qué pasa con la lista de usuarios regulares solamente?

Como vimos anteriormente, usando Awk, podemos bloquear usuarios regulares como este:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

¡muy fácil!,

Listing remote users (LDAP)

bien, ahora puede enumerar todos los usuarios del sistema (Usuarios locales), pero ¿qué pasa con los usuarios remotos o los usuarios LDAP? Bueno, podemos usar una herramienta como ldapsearch, pero ¿hay alguna otra manera?

afortunadamente sí! Puede enumerar los usuarios remotos locales & con un comando llamado getent

$ getent passwd

Este comando enumera los usuarios del sistema local y los usuarios de LDAP o NIS o cualquier otro usuario de red.

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

Además, el comando getent puede listar cuentas de grupo de la siguiente manera:

$ getent group

puede consultar la página de manual del comando para conocer las otras bases de datos en las que 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 cómo administrarlos de diferentes maneras.

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

espero que encuentres útil el tutorial. Sigue regresando.,

Fundador de LikeGeeks. Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable del mantenimiento, la seguridad y la solución de problemas de los servidores Linux para múltiples clientes en todo el mundo. Me encanta escribir scripts de shell y Python para automatizar mi trabajo.

Deja una respuesta

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