Sé que existe el archivo /etc/group
que lista todos los grupos de usuarios.
Me gustaría saber si hay un comando simple para listar todos los nombres de los grupos de usuarios a pesar de analizar el archivo legible /etc/group
. Estoy dispuesto a crear una página web de administrador que liste las cuentas de Linux' nombres de grupos.
Para listar todos los grupos locales que tienen usuarios asignados, utilice este comando:
cut -d: -f1 /etc/group | sort
Para más información Grupos Unix, comando de corte, comando de ordenación
Si quieres que el sistema conozca todos los grupos, te recomiendo que utilices getent
en lugar de analizar /etc/group
. En los sistemas en red, los grupos no sólo pueden leerse del fichero /etc/group
sino que también se obtienen a través de LDAP o Páginas Amarillas, es decir, la lista de grupos conocidos proviene del fichero de grupos local más los grupos recibidos a través de LDAP o YP.
El comando getent group
le dará una lista de todos los grupos en el mismo formato que utiliza el fichero /etc/group
.
Si sólo quieres los nombres de los grupos, getent group | cut -d: -f1
hará el trabajo (igual que arriba).
En Linux, macOS y Unix para mostrar los grupos a los que perteneces, utiliza:
id -Gn
que equivale a la utilidad groups
que ha quedado obsoleta en Unix (según el manual de Unix).
En macOS y Unix, se sugiere el comando id -p
para una interacción normal.
Explicación de los parámetros:
-G
,--groups
- imprime todos los ID de grupo
-n
,--name
- imprimir un nombre en lugar de un número, para-ugG
-p
- Hacer que la salida sea legible para los humanos.