GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo listar usuarios en Linux

¿Alguna vez ha querido enumerar todos los usuarios en su sistema Linux o contar la cantidad de usuarios en el sistema? Hay comandos para crear un usuario, eliminar un usuario, enumerar los usuarios registrados, pero ¿cuál es el comando para enumerar todos los usuarios en Linux?

Este tutorial le mostrará cómo listar usuarios en sistemas Linux.

Obtenga una lista de todos los usuarios usando /etc/passwd Archivo #

La información del usuario local se almacena en el /etc/passwd expediente. Cada línea de este archivo representa la información de inicio de sesión de un usuario. Para abrir el archivo, puede usar cat o less :

less /etc/passwd

Cada línea del archivo tiene siete campos delimitados por dos puntos que contienen la siguiente información:

  • Nombre de usuario.
  • Contraseña encriptada (x significa que la contraseña se almacena en el /etc/shadow archivo).
  • Número de ID de usuario (UID).
  • Número de ID de grupo (GID) del usuario.
  • Nombre completo del usuario (GECOS).
  • Directorio de inicio del usuario.
  • Shell de inicio de sesión (predeterminado en /bin/bash ).

Si desea mostrar solo el nombre de usuario, puede usar awk o cut comandos para imprimir solo el primer campo que contiene el nombre de usuario:

awk -F: '{ print $1}' /etc/passwd
cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
...
...
sshd
vagrant
jack
anne

Obtenga una lista de todos los usuarios usando el comando getent #

El getent El comando muestra las entradas de las bases de datos configuradas en /etc/nsswitch.conf archivo, incluido el passwd base de datos, que se puede utilizar para consultar una lista de todos los usuarios.

Para obtener una lista de todos los usuarios de Linux, ingrese el siguiente comando:

getent passwd

Como puede ver, la salida es la misma que cuando se muestra el contenido de /etc/passwd expediente. Si está utilizando LDAP para la autenticación de usuario, el getent mostrará todos los usuarios de Linux de ambos /etc/passwd archivo y base de datos LDAP.

También puedes usar awk o cut para imprimir solo el primer campo que contiene el nombre de usuario:

getent passwd | awk -F: '{ print $1}'
getent passwd | cut -d: -f1

Verificar si existe un usuario en el sistema Linux #

Ahora que sabemos cómo enumerar a todos los usuarios, para verificar si un usuario existe en nuestro cuadro de Linux, podemos simplemente filtrar la lista de usuarios canalizando la lista al grep comando.

Por ejemplo, para saber si un usuario con nombre jack existe en nuestro sistema Linux podemos usar el siguiente comando:

getent passwd | grep jack

Si el usuario existe, el comando anterior imprimirá la información de inicio de sesión del usuario. No hay salida que signifique que el usuario no existe.

También podemos verificar si un usuario existe sin usar el grep comando como se muestra a continuación:

getent passwd jack

Igual que antes, si el usuario existe, el comando mostrará la información de inicio de sesión del usuario.

Si desea averiguar cuántas cuentas de usuario tiene en su sistema, canalice el getent passwd salida al wc comando:

getent passwd | wc -l
33

Como puede ver en el resultado anterior, mi sistema Linux tiene 33 cuentas de usuario.

Usuarios normales y del sistema #

No existe una diferencia técnica real entre el sistema y los usuarios regulares (normales). Por lo general, los usuarios del sistema se crean al instalar el sistema operativo y los nuevos paquetes. En algunos casos, puede crear un usuario del sistema que será utilizado por algunas aplicaciones.

Los usuarios normales son los usuarios creados por el root u otro usuario con privilegios sudo. Por lo general, un usuario normal tiene un shell de inicio de sesión real y un directorio de inicio.

Cada usuario tiene una identificación de usuario numérica llamada UID. Si no se especifica al crear un nuevo usuario con useradd comando, el UID se seleccionará automáticamente desde /etc/login.defs archivo dependiendo del UID_MIN y UID_MIN valores.

Para comprobar el UID_MIN y UID_MIN valores en su sistema, puede usar el siguiente comando:

grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
UID_MIN          1000
UID_MAX         60000

Del resultado anterior, podemos ver que todos los usuarios normales deben tener un UID entre 1000 y 60000. Conocer el valor mínimo y máximo nos permite consultar una lista de todos los usuarios normales en nuestro sistema.

El siguiente comando mostrará una lista de todos los usuarios normales en nuestro sistema Linux:

getent passwd {1000..60000}
vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash
jack:x:1001:1001:,,,:/home/jack:/bin/bash
anne:x:1002:1002:Anne Stone,,,:/home/anne:/bin/bash
patrick:x:1003:1003:Patrick Star,,,:/home/patrick:/usr/sbin/nologin

Su sistema UID_MIN y UID_MIN los valores pueden ser diferentes, por lo que la versión más genérica del comando anterior sería:

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}

Si desea imprimir solo los nombres de usuario, simplemente canalice la salida al cut comando:

eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Conclusión #

En este tutorial, aprendió cómo listar y filtrar usuarios en su sistema Linux y cuáles son las principales diferencias entre el sistema y los usuarios normales de Linux.

Los mismos comandos se aplican a cualquier distribución de Linux, incluidos Ubuntu, CentOS, RHEL, Debian y Linux Mint.

Siéntase libre de dejar un comentario si tiene alguna pregunta.


Linux
  1. Cómo crear varias cuentas de usuario en Linux

  2. Cómo encontrar todos los usuarios de Sudo en Linux

  3. Lista de usuarios en Linux:el mejor método

  4. Cómo listar usuarios en CentOS 7

  5. 3 formas de listar usuarios en Linux

Cómo restringir el acceso SSH a ciertos usuarios en Linux

Cómo obtener la lista de cuentas de usuario de MySQL en Linux

Cómo enumerar usuarios y grupos en Linux

Cómo cambiar de usuario en Linux

Cómo enumerar todos los usuarios de un grupo en Linux

Cómo crear/agregar usuarios en Linux