groups
Muestra a qué grupos pertenece un usuario.
Imprime los grupos de una cuenta: primero el grupo principal y después los suplementarios, que son los que dan acceso a archivos y servicios. Lo usas para confirmar si a alguien se le agregó un grupo (sudo, docker, www-data) o para revisar tu propia sesión después de un usermod. Solo muestra información: no cambia nada.
groups [opciones] [USUARIO]...Despiece
5 ejemplosVer los grupos de tu usuario
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | groups | Comando | El comando que imprime los grupos. Sin argumentos, usa tu propia cuenta. |
Imprime tu grupo principal y luego los suplementarios, por ejemplo ana sudo docker. El primero es tu grupo principal, el que aparece en ls -l en los archivos que creas; los demás te dan permisos extra.
Ver los grupos de otra persona
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | groups | Comando | El comando que imprime los grupos. |
| 2 | ana | Argumento | La cuenta que quieres revisar. Si no existe, groups avisa groups: 'ana': no such user. |
Cuando le pasas un nombre, groups imprime la cuenta y luego dos puntos: ana : sudo ana. El primer grupo de la lista es siempre el principal y los que siguen son los suplementarios, que son los que dan acceso a archivos de otros grupos.
Ver los grupos de root
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | groups | Comando | El comando que imprime los grupos. |
| 2 | root | Argumento | La cuenta de administrador. |
root : root. root casi no necesita grupos: el sistema le permite leer y modificar prácticamente todo, sin importar a qué grupos pertenezca.
Ver una cuenta de servicio
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | groups | Comando | El comando que imprime los grupos. |
| 2 | nobody | Argumento | La cuenta sin privilegios que usan algunos servicios. |
nobody : nogroup. nobody y nogroup existen para que un programa sirva archivos sin necesitar permisos, como Nginx con contenido estático. Es un buen ejemplo de cuenta de servicio: shell /usr/sbin/nologin y un solo grupo.
Verlos ordenados, uno por línea
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | groups | Comando | Imprime los grupos separados por espacios. |
| 2 | | | Operador | Pipe: manda lo que sale de un comando al siguiente. |
| 3 | tr | Comando | Sustituye caracteres. |
| 4 | ' ' | Valor | Los espacios que trae la salida. |
| 5 | '\n' | Valor | El salto de línea por el que los va a cambiar. |
| 6 | | | Operador | Otra vez el pipe. |
| 7 | sort | Comando | Ordena las líneas de la entrada. |
Cada grupo sale en su propia línea y ordenado, más fácil de leer y de comparar entre cuentas. Ojo: el truco solo funciona con tus propios grupos; si le pones un nombre, la primera línea queda como ana : y hay que quitarla a mano.
Fallas comunes
| Falla | Remedio |
|---|---|
| Pasar un nombre de grupo en vez de un usuario: groups sudo. | groups recibe usuarios, no grupos, así que responde groups: 'sudo': no such user. Para ver si un grupo existe y quién lo usa, usa getent group sudo; para ver tus grupos con número, id. |
| Esperar ver los grupos con los que corre un programa. | groups responde por usuarios, no por procesos. Para ver con qué usuario y grupo está corriendo algo, usa ps -o pid,user,group -C nombre o revisa las líneas Groups de /proc/PID/status. |
| Suponer que el grupo principal es el último de la lista. | El grupo principal va primero y los suplementarios después, siempre. Por eso el primero de la lista es el que ves como propietario en ls -l, y ese no se cambia con usermod -aG sino con usermod -g. |
| Usar la salida de groups dentro de un script sin limpiar. | La salida de groups es texto con espacios, pensada para leerse a ojo. En scripts es mejor usar campos separados: id -gn para el grupo principal, id -Gn para los suplementarios, o getent group para un grupo concreto. |
Preguntas frecuentes
- ¿Cómo veo a qué grupos pertenezco?
- Escribe groups y listo: imprime tu grupo principal y luego los suplementarios. Para verlos con número y nombre, y también tu UID, usa id. El grupo principal es el primero de la lista.
- ¿Cómo veo los grupos de otro usuario?
- Con groups seguido del nombre: groups ana. Si le agregas el nombre, la salida empieza con la cuenta y dos puntos (ana : sudo ana). Si el usuario no existe, avisa groups: 'ana': no such user.
- ¿Cuál es la diferencia entre groups e id?
- id muestra los grupos con su número y además el UID: uid=1000(ana) gid=1000(ana) grupos=1000(ana),27(sudo). groups solo imprime los nombres de los grupos, en texto plano y sin el usuario al inicio, que es más cómodo de leer.
- ¿Cuál es la diferencia entre el grupo principal y los suplementarios?
- El principal se define al crear la cuenta y es el que aparece como propietario en ls -l. Los suplementarios se agregan después con usermod -aG o con adduser y dan acceso a archivos de esos grupos. groups siempre imprime el principal primero.
- ¿Por qué groups no me deja cambiar nada?
- Porque solo lee e imprime; no modifica nada y no tiene opciones que cambien su comportamiento. Para cambiar los grupos de una cuenta se usa usermod: sudo usermod -aG docker USUARIO. Para ver los grupos que existen en el sistema, cat /etc/group.