En Linux, un grupo es una colección de usuarios. El propósito principal de los grupos es definir un conjunto de privilegios como permiso de lectura, escritura o ejecución para un recurso determinado que se puede compartir entre los usuarios dentro del grupo. Los usuarios se pueden agregar a un grupo existente para utilizar los privilegios que otorga.
Este tutorial explica cómo mostrar todos los grupos de los que un usuario es miembro. También explicaremos cómo listar a todos los miembros de un grupo.
Grupos Linux #
Hay dos tipos de grupos a los que un usuario puede pertenecer:
-
Grupo principal o de inicio de sesión – es el grupo que se asigna a los archivos creados por el usuario. Normalmente, el nombre del grupo principal es el mismo que el nombre del usuario. Cada usuario debe pertenecer exactamente a un grupo principal.
-
Grupo secundario o complementario - utilizado para otorgar ciertos privilegios a un conjunto de usuarios. Un usuario puede ser miembro de cero o más grupos secundarios.
Lista de 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 complementarios, si los hay, se enumeran en el /etc/group
archivo.
Una forma de encontrar los grupos de usuarios es listar el contenido de esos archivos usando cat
, less
o grep
. Otra opción más sencilla es usar un comando cuyo propósito es proporcionar información sobre los usuarios y grupos del sistema.
Usando los groups
comando #
El comando más memorable para enumerar todos los grupos de los que un usuario es miembro es groups
dominio. 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 principal.
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 a los groups
comando como argumento:
groups linuxize
Igual que antes, el primer grupo es el grupo principal.
linuxize : linuxize sudo
Usando el id
comando #
El id
El comando 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 linuxize
escribirías:
id linuxize
El comando mostrará el ID de usuario (uid
), el grupo principal del usuario (gid
), y los grupos secundarios del usuario (groups
)
uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize),27(sudo)
Para imprimir solo los nombres en lugar de los números, use -n
opción. Opción -g
imprimirá solo el grupo principal y -G
todos los grupos.
El siguiente comando imprimirá los nombres de los grupos de los que el usuario actual es miembro:
id -nG
john adm cdrom sudo dip plugdev lpadmin sambashare
Lista de todos los miembros de un grupo #
Para enumerar todos los miembros de un grupo, use el getent group
comando seguido del nombre del grupo.
Por ejemplo, para averiguar los miembros de un grupo con el nombre 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, significa que el grupo no existe.
Lista de todos los grupos #
Para ver todos los grupos presentes en el sistema, simplemente abra el /etc/group
expediente. Cada línea en este archivo representa información para un grupo.
less /etc/group
Otra opción es usar el getent
comando que muestra las entradas de las bases de datos configuradas en /etc/nsswitch.conf
archivo que incluye el group
base de datos 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
La salida es la misma que cuando se muestra el contenido de /etc/group
expediente. Si está utilizando LDAP para la autenticación de usuario, el getent
mostrará todos los grupos de ambos /etc/group
archivo y base de datos LDAP.
También puedes 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. 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.