Androide

Cómo listar grupos en Linux

Ubuntu | 10.- Gestión de usuarios y grupos | 3.- Comandos

Ubuntu | 10.- Gestión de usuarios y grupos | 3.- Comandos

Tabla de contenido:

Anonim

En Linux, un grupo es una colección de usuarios. El objetivo principal de los grupos es definir un conjunto de privilegios como leer, escribir o ejecutar permisos para un recurso dado que se puede compartir entre los usuarios dentro del grupo. Se pueden agregar usuarios a un grupo existente para utilizar los privilegios que otorga.

Este tutorial explica cómo mostrar todos los grupos de los que es miembro un usuario. También explicaremos cómo enumerar todos los miembros de un grupo.

Grupos de Linux

Hay dos tipos de grupos a los que puede pertenecer un usuario:

  • Grupo primario o de inicio de sesión: es el grupo asignado a los archivos creados por el usuario. Por lo general, el nombre del grupo primario es el mismo que el nombre del usuario. Cada usuario debe pertenecer exactamente a un grupo primario.

    Grupo secundario o suplementario: se utiliza para otorgar ciertos privilegios a un conjunto de usuarios. Un usuario puede ser miembro de cero o más grupos secundarios.

Listar todos los grupos de los que un usuario es miembro

Hay varias formas de averiguar los grupos a los que pertenece un usuario.

El grupo del usuario principal se almacena en el /etc/passwd y los grupos suplementarios, si los hay, se enumeran en el /etc/group .

Una forma de encontrar los grupos de usuarios es enumerar el contenido de esos archivos usando cat , less o grep . Otra opción más fácil es usar un comando cuyo propósito es proporcionar información sobre los usuarios y grupos del sistema.

Usando el comando de groups

El comando más memorable para enumerar todos los grupos de los que es miembro un usuario es el comando de groups . Cuando se ejecuta sin un argumento, el comando imprimirá una lista de todos los grupos a los que pertenece el usuario actualmente conectado:

groups

El primer grupo es el grupo primario.

john adm cdrom sudo dip plugdev lpadmin sambashare

Para obtener una lista de todos los grupos a los que pertenece un usuario específico, proporcione el nombre de usuario al comando de groups como argumento:

groups linuxize

Igual que antes, el primer grupo es el grupo primario.

linuxize: linuxize sudo

Usando el comando id

El comando id imprime información sobre el usuario especificado y sus grupos. Si se omite el nombre de usuario, muestra información para el usuario actual.

Por ejemplo, para obtener información sobre el usuario de linuxize , escriba:

id linuxize

El comando mostrará el nombre de usuario ( uid ), el grupo primario del usuario ( gid ) y los grupos secundarios ( groups ) del usuario

uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize), 27(sudo)

Para imprimir solo los nombres sin las ID de usuario y grupo, use la opción -n . La opción -g imprimirá solo el grupo primario y -G todos los grupos.

El siguiente comando imprimirá los nombres de los grupos a los que pertenece el usuario actual:

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

Listar todos los miembros de un grupo

Para enumerar todos los miembros de un grupo, use el getent group seguido del nombre del grupo.

Por ejemplo, para averiguar los miembros de un grupo con el nombre de developers , usaría el siguiente comando:

getent group developers

Si el grupo existe, el comando imprimirá el grupo y todos sus miembros:

developers:x:126:frank, mary

Si no hay salida, eso significa que el grupo no existe.

Listar todos los grupos

Para ver todos los grupos presentes en el sistema, simplemente abra el /etc/group . Cada línea en este archivo representa información para un grupo.

less /etc/group

Otra opción es usar el comando getent que muestra las entradas de las bases de datos configuradas en el archivo /etc/nsswitch.conf , incluida la base de datos de group que podemos usar para consultar una lista de todos los grupos.

Para obtener una lista de todos los grupos, escriba el siguiente comando:

getent group

El resultado es el mismo que cuando se muestra el contenido del /etc/group . Si está utilizando LDAP para la autenticación de usuarios, el getent mostrará todos los grupos tanto del /etc/group como de la base de datos LDAP.

También puede usar awk o cut para imprimir solo el primer campo que contiene el nombre del grupo:

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

getent group | cut -d: -f1

Conclusión

En este tutorial, aprendió cómo encontrar los grupos de los que es miembro un usuario. Se aplican los mismos comandos para cualquier distribución de Linux, incluidos Ubuntu, CentOS, RHEL, Debian y Linux Mint.

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

terminal