GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo enumerar usuarios y grupos en Linux

En Linux, como administrador del sistema, a menudo desea tener una lista completa de todos los usuarios y todos los grupos en su host.

Es muy importante por motivos de seguridad asegurarse de que tiene la cantidad correcta de usuarios y que no se olvidó de eliminar algunos.

Hay varias formas de listar usuarios y grupos en Linux .

Primero, puede leer la contraseña y el archivo de grupo en su sistema, con comandos de corte para extraer información útil.

Una forma más efectiva es usar el comando getent que se basa en el cambio de servicio de nombres, una instalación basada en Unix para definir bases de datos personalizadas en su host.

Así es como puede listar usuarios y grupos en Linux .

Lista de usuarios en Linux

Para listar usuarios en Linux, debe ejecutar el comando "cat" en el archivo "/etc/passwd". Al ejecutar este comando, se le presentará la lista de usuarios actualmente disponibles en su sistema.

Alternativamente, puede usar el comando "menos" o "más" para navegar dentro de la lista de nombres de usuario.

$ cat /etc/passwd

$ less /etc/passwd

$ more /etc/passwd

Se le presentará una lista de usuarios actualmente disponibles en su sistema.

Nota:no significa que los usuarios estén conectados ¡ahora mismo!

Pero, ¿qué significan las columnas del archivo passwd significa siquiera?

Como nota al margen rápida, una "x" en la columna de la contraseña significa que la contraseña está encriptada y se encuentra en el archivo /etc/shadow.

Ahora que sabe cómo enumerar usuarios en su host Linux, veamos cómo puede aislar efectivamente una lista de nombres de usuario.

Lista de nombres de usuario usando el archivo /etc/passwd

Como probablemente haya notado, el /etc/passwd El archivo está formado por líneas separadas por dos puntos.

a – Lista de nombres de usuario usando corte

Para enumerar los nombres de usuario en Linux, use el comando "gato" y conéctelo al comando "cortar" para aislar los nombres de usuario disponibles en la primera columna de su archivo.

Para lograrlo, ejecute el siguiente comando

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

Primero, está imprimiendo una lista de todos los registros en el archivo passwd. A continuación, esos resultados se canalizan (usando canalizaciones y redirección de Linux) al comando de corte.

El comando de corte define un separador personalizado (con la opción d) que es igual al carácter de dos puntos.

Finalmente, estamos aislando el primer campo de los resultados que estamos obteniendo. En este caso, esto es igual a los nombres de usuario definidos por nuestro esquema en las columnas passwd.

b – Lista de nombres de usuario usando awk

Para enumerar los nombres de usuario en Linux, también puede usar el comando "cat" conectado con el comando "awk" que es similar al comando "cut" que hemos visto antes.

Como recordatorio, el comando awk (o mawk) es un intérprete del lenguaje de programación AWK.

AWK es un lenguaje de programación diseñado para facilitar la extracción y manipulación de datos para flujos de datos.

Es ampliamente utilizado en sistemas basados ​​en Unix cuando las estructuras de texto son bastante complicadas y no se pueden separar con un solo comando.

Para listar nombres de usuario en Linux usando el intérprete awk, ejecute el siguiente comando

$ cat /etc/passwd | awk -F: '{print $1}'

Lista de usuarios en Linux usando getent

La forma más fácil de enumerar usuarios en Linux es usar el comando "getent" con el argumento "passwd" y especificar un usuario opcional que desea incluir en su sistema.

getent passwd <optional_user>

Como recordatorio, el comando getent recupera entradas de las bases de datos de cambio de servicio de nombres .

Name Service Switch es una utilidad de Unix que recupera entradas de un conjunto de fuentes de datos diferentes, como archivos, LDAP, un servidor DNS o un servicio de información de red .

La lista de todas las fuentes de datos disponibles se puede leer en nsswitch.conf archivo ubicado en /etc.

En nuestro caso, se puede usar para listar usuarios y grupos fácilmente en nuestro host Linux.

Para listar usuarios usando la función getent, ejecute el siguiente comando

$ getent passwd

a – Lista de nombres de usuario con getent

De manera similar a la sección anterior, es posible enumerar solo nombres de usuario al interactuar con el comando getent.

Para lograrlo, puede ejecutar alternativamente el comando cut o el comando awk de la siguiente manera.

$ getent passwd | cut -d: -f1

O con AWK

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

Lista de usuarios conectados en su host Linux

Como se mencionó anteriormente, inspeccionar el archivo passwd, ya sea con less o con getent, no proporcionarle una lista de todos los usuarios conectados en su host.

Para lograr eso, vas a usar el comando who.

$ who

Como puede ver, se le proporciona una lista de usuarios actualmente conectados en su host junto con el shell que están usando y cuándo se conectaron.

Alternativamente, puede usar el comando de usuarios para lograr el mismo resultado con menos detalles.

$ users
devconnected john

¡Muy práctico!

Ahora que hemos visto cómo podemos enumerar usuarios en un host Linux, veamos cómo podemos aplicar el mismo conocimiento para enumerar grupos en su sistema.

Lista de grupos en Linux usando el archivo /etc/group

Para enumerar grupos en Linux, debe ejecutar el comando "cat" en el archivo "/etc/group". Al ejecutar este comando, se le presentará la lista de grupos disponibles en su sistema.

Use uno de los siguientes comandos para listar grupos en su sistema.

$ cat /etc/group

$ less /etc/group

$ more /etc/group

Pero, ¿qué representan las columnas del archivo de grupo?

Tomemos una línea completa en el archivo de grupo para inspeccionarlo.

Como puede ver, de manera similar al archivo passwd, las entradas están separadas por dos puntos. Son bastante fáciles de entender.

Nota:el campo de contraseña no se usa la mayor parte del tiempo, está reservado para crear grupos privilegiados en su sistema.

Lista de nombres de grupos usando /etc/group

Como puede ver, la inspección de /etc/group le brinda una lista completa y a veces demasiado detallada de todos los grupos en su sistema.

Sin embargo, a veces desea aislar los nombres de grupo en su archivo de grupo.

Para lograrlo, puede usar el comando cortar o el comando AWK.

$ cat /etc/group | cut -d: -f1
$ cat /etc/group | awk -F: '{print $1}'

Por supuesto, puede optar por aislar un grupo si desea ver qué usuarios pertenecen al grupo al que se dirige.

$ cat /etc/group | grep <group>

Lista de grupos usando getent

Nuevamente, puede optar por listar grupos en Linux usando el comando getent.

$ getent <database> <key>

Aquí, estamos interesados ​​en la base de datos de "grupo".

Si elige no proporcionar una clave, se le proporcionará el archivo de grupo completo.

$ getent group

De manera similar a la base de datos passwd, puede optar por "apuntar" a un grupo específico proporcionando una clave para la función getent.

$ getent group sudo

Lista de grupos para el usuario actual

Los comandos de grupos se utilizan para obtener una lista de grupos en los que se encuentra un usuario específico.

$ groups <username>

Si se proporciona sin argumentos, devolverá los grupos para el usuario que lanzó el comando.

Para probar que proporciona los grupos para el usuario que lanzó el comando, intente ejecutar el comando con privilegios sudo.

$ sudo groups

El resultado es... ¡raíz! Porque el comando se ejecuta como raíz y la raíz solo pertenece a un grupo que es el grupo raíz.

Conclusión

En este tutorial, aprendió cómo puede enumerar usuarios y grupos en cualquier sistema basado en Linux.

Aprendiste más sobre archivos de configuración específicos como contraseña y grupo , así como el comando getent para las instalaciones de cambio de servicio de nombres.

Nuevamente, si está interesado en la administración del sistema Linux, tenemos toneladas de tutoriales sobre el tema en nuestra categoría de Administración del sistema Linux.

Haga clic en la imagen de abajo para comprobarlos.


Linux
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. Cómo administrar los permisos de Linux para usuarios, grupos y otros

  3. Cómo trabajar con usuarios y grupos en Linux

  4. ¿Cómo enumerar todos los usuarios en un grupo de Linux?

  5. ¿Cómo puedo enumerar todos los usuarios bloqueados en Linux?

Cómo instalar y usar el comando fd en Linux

Cómo enumerar discos en Linux

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

Cómo enumerar solo directorios en Linux

Cómo crear y administrar nuevos usuarios en Linux

¿Cómo enumerar todos los grupos en Linux?