GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo enumerar los miembros de un grupo en Linux

Todos los usuarios de un sistema Linux deben ser miembros de al menos un grupo. Este grupo se conoce como grupo primario. Si un usuario no tiene un grupo principal, no puede iniciar sesión. Además del grupo principal, los usuarios también pueden ser miembros de grupos adicionales. La configuración del grupo principal se almacena en "/etc/passwd file" . El nombre del grupo principal se especifica en el cuarto campo de este archivo. La configuración de otros grupos (secundarios) se almacena en "/etc/group" expediente. Este tutorial explica diferentes formas de encontrar y enumerar todos los grupos y enumerar los miembros de un grupo en sistemas operativos Linux y similares a Unix.

Lista de todos los grupos en Linux

Antes de listar todos los usuarios que pertenecen a un grupo, busquemos primero la lista de grupos disponibles usando "compgen" dominio. Compensión está integrado en BASH para manipular las funciones de finalización programables.

Para enumerar todos los grupos disponibles en un sistema Linux, ejecute "compgen" comando con -g opción como la siguiente:

$ compgen -g

Salida de muestra:

root
daemon
bin
sys
adm
tty
disk
lp
mail
news
uucp
man
proxy
.
.
.
nova
rdma
libvirt
libvirt-qemu
libvirt-dnsmasq
cockpit-ws
cockpit-wsinstance
libvirtdbus
root
nogroup

Enumere todos los grupos en Linux usando el comando compgen

También puede obtener la lista de todos los grupos usando "getent" comando:

$ getent group

Salida de muestra:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:
root:x:0:
nogroup:x:65534:

Enumere todos los grupos en Linux usando el comando getent

El primer campo en el archivo "/etc/group" es el nombre del grupo. Entonces, podemos usar "awk" o "cortar" comandos para imprimir solo el primer campo que contiene el nombre del grupo como se muestra a continuación:

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

Si desea ver los grupos página por página, use "más" o "menos" comando como a continuación:

$ more /etc/group 
$ less /etc/group 

Ahora, revisemos los miembros de un grupo.

Lista de los miembros de un Grupo en Linux

Hay algunas formas de encontrar a los miembros del grupo en Linux. Los métodos que usamos aquí para identificar a los miembros de un grupo se dan a continuación:

  1. usando el archivo "/etc/group",
  2. usando el comando "getent",
  3. usando el comando "groupmems",
  4. usando el comando "miembros",
  5. usando el comando "tapa".

1. Enumere los miembros de un grupo usando el archivo /etc/group

Cuando se crea un grupo, la información del grupo se almacena en el "/etc/group" expediente. Echemos un vistazo al contenido de este archivo usando "cat" comando:

$ cat /etc/group

Salida de muestra:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,sk
tty:x:5:syslog
disk:x:6:sk
lp:x:7:
mail:x:8:
news:x:9:
.
.
.
systemd-coredump:x:999:
nova:x:134:
rdma:x:135:
libvirt:x:136:sk,libvirtdbus
libvirt-qemu:x:64055:libvirt-qemu
libvirt-dnsmasq:x:137:
cockpit-ws:x:138:
cockpit-wsinstance:x:139:
libvirtdbus:x:998:

Ver información de grupos de Linux

Como mencioné anteriormente, el primer campo en "/etc/group" está reservado para el nombre del grupo. Como puede ver en el resultado anterior, un sistema Linux puede contener varios grupos.

Para ver los miembros de un grupo específico en una máquina Linux, use "grep" comando para filtrar los detalles del grupo del archivo "/etc/group" como se muestra a continuación:

$ grep '^sudo' /etc/group

O,

$ grep -w sudo /etc/group

Los comandos anteriores muestran los usuarios que pertenecen al grupo llamado "sudo" .

sudo:x:27:sk

Enumere los miembros de un grupo en Linux usando el comando grep

Como puede ver en el resultado anterior, el grupo "sudo" contiene solo un miembro llamado "sk".

2. Ver los miembros de un grupo usando el comando "getent"

El "gegente" El comando muestra entradas de bases de datos admitidas por las bibliotecas de cambio de servicio de nombres, que están configuradas en "/etc/nsswitch.conf" archivo.

Para encontrar los miembros de un grupo dado en Linux usando el comando "getent", ejecute:

$ getent group sudo

Este comando muestra los miembros del grupo "sudo".

Encuentre los miembros de un grupo en Linux usando el comando getent

Una ventaja notable del comando getent es que no solo enumera los usuarios locales, sino también todos los usuarios en todos los backends de base de datos de usuario configurados, por ejemplo, LDAP, en un sistema determinado.

3. Imprimir usuarios en un grupo usando el comando "groupmems"

Los "grupos" El comando permite a un usuario administrar su propia lista de miembros del grupo sin privilegios de superusuario. Es parte del paquete shadow utils.

Para imprimir los miembros de un grupo usando el comando "groupmems", ejecute:

$ sudo groupmems -g sudo -l

Imprime los miembros de un grupo usando el comando groupmems en Linux

Este comando tiene dos inconvenientes. Solo trata con grupos en el archivo "/etc/group", pero no con los que están en LDAP u otras bases de datos de usuarios. También requiere privilegios de superusuario cuando intenta abrir "/etc/gshadow" archivo.

4. Mostrar miembros del grupo usando el comando "miembros"

Como dice explícitamente el nombre, los comandos de "miembros" básicamente muestran los miembros de un grupo en Linux. El comando "miembros" no está disponible de forma predeterminada en la mayoría de las distribuciones de Linux. Debe instalarlo usando el administrador de paquetes de su distribución. Por ejemplo, en sistemas basados ​​en Debian, puede instalarlo usando el comando:

$ sudo apt install members

Una vez instalado, puede mostrar los miembros de un grupo determinado en Linux usando el comando "miembros" como se muestra a continuación:

$ members sudo

Mostrar miembros del grupo usando el comando de miembros en Linux

De forma predeterminada, el comando "miembros" muestra todos los usuarios. Usa -p o -s para mostrar solo los miembros de un grupo principal o un grupo secundario.

5. Enumere todos los usuarios que pertenecen a un grupo usando el comando "libuser-lid"

El "libuser-lid" comando utilizado para mostrar información sobre los grupos que contienen el nombre de usuario o los usuarios contenidos en el nombre del grupo.

El comando "libuser-lid" tampoco está disponible de forma predeterminada en muchas distribuciones de Linux. El "liberista" proporciona este comando, por lo que debe instalarlo utilizando el administrador de paquetes de su distribución. Por ejemplo, en Debian, Ubuntu, instale el paquete "libuser" usando el comando:

$ sudo apt install libuser

Para enumerar todos los usuarios de un grupo, ejecute:

$ sudo libuser-lid -g sudo

Tenga en cuenta que este comando requiere superusuario privilegios para ejecutar.

Salida de muestra:

 sk(uid=1000)

Enumere todos los usuarios en un grupo en Linux usando el comando libuser-lid

Para obtener más detalles, consulte las páginas del manual del comando respectivo.

Eso es todo por ahora. Estos son algunos métodos diferentes para encontrar la lista de usuarios en un grupo en Linux. Espero que esto ayude.

Lectura relacionada:

  • Cómo averiguar a qué grupos pertenece un usuario en Linux
  • Cómo enumerar todos los usuarios en Linux


Linux
  1. Cómo llegó Linux al mainframe

  2. Cómo enumerar las dependencias de un paquete en Linux

  3. Listar miembros de un grupo en Linux

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

  5. ¿Cómo veo a los miembros de un grupo?

Cómo enumerar los paquetes instalados en Linux

Cómo enumerar particiones de disco en Linux

Cómo listar usuarios en Linux

Cómo encontrar la lista de repositorios instalados en Linux

Cómo enumerar discos en Linux

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