Los grupos de Linux son una colección de usuarios. Están destinados a proporcionar privilegios fácilmente a un grupo de usuarios. En este tutorial, veremos varias formas de enumerar todos los grupos en Linux.
2 formas de listar todos los grupos en Linux
- /etc/archivo de grupo
- comando getent
1. /etc/archivo de grupo
El archivo /etc/group contiene todos los grupos locales. Entonces, podemos abrir este archivo y ver todos los grupos.
root@localhost:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: ...
Si está buscando un grupo específico, use el comando grep para filtrarlo.
root@localhost:~# cat /etc/group | grep sudo sudo:x:27:journaldev,test root@localhost:~#
2. comando getent
getente de Linux el comando obtiene entradas de bases de datos admitidas por las bibliotecas del cambio de servicio de nombres. Podemos usarlo para obtener toda la información de los grupos de la base de datos del grupo.
root@localhost:~# getent group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog tty:x:5: ...
Veamos algunos ejemplos más de listados de todos los grupos en Linux.
Listar todos los nombres de grupos de Linux
Podemos usar el comando de corte para imprimir solo los nombres de los grupos. Esto es útil cuando buscamos la presencia de un nombre de grupo específico en un script de shell.
root@localhost:~# cut -d: -f1 /etc/group root daemon bin sys adm tty ...
También podemos usar el comando cortar con el comando getent.
root@localhost:~# getent group | cut -d: -f1 root daemon bin sys adm tty disk ...
El comando de corte divide cada línea usando el delimitador de dos puntos (:). Luego, el primer campo, que es el nombre del grupo, se selecciona con la opción -f1.
Lista de todos los nombres de grupos en orden alfabético
La salida de los comandos anteriores se puede pasar al comando sort para imprimir la salida en orden de clasificación natural.
root@localhost:~# getent group | cut -d: -f1 | sort adm audio backup bin cdrom crontab daemon ...
Recuento de todos los grupos de Linux
Si está interesado en la cantidad de grupos de Linux, use los siguientes comandos.
root@localhost:~# cat /etc/group | grep -c "" 68 root@localhost:~# getent group | grep -c "" 68 root@localhost:~#
Lista de todos los grupos de un usuario
Podemos usar el comando de grupos para obtener todos los grupos de un usuario.
root@localhost:~# groups journaldev journaldev : journaldev sudo test_users test_users_pwd root@localhost:~# root@localhost:~# groups root root : root root@localhost:~#
Lista de grupos del usuario actual
Si ejecuta el comando de grupos sin ninguna entrada del usuario, imprimirá los grupos del usuario actual.
root@localhost:~# groups root root@localhost:~# su - journaldev journaldev@localhost:~$ groups journaldev sudo test_users test_users_pwd journaldev@localhost:~$
Lista de grupos de usuarios junto con el ID de grupo
Podemos usar el comando id para imprimir la información del usuario. Este comando enumera todos los grupos junto con su ID de grupo.
root@localhost:~# id journaldev uid=1002(journaldev) gid=1003(journaldev) groups=1003(journaldev),27(sudo),1004(test_users),1007(test_users_pwd) root@localhost:~# root@localhost:~# id root uid=0(root) gid=0(root) groups=0(root) root@localhost:~#
Lista de todos los usuarios de un grupo
Podemos usar el comando getent o el archivo /etc/groups para obtener todos los usuarios que pertenecen a un grupo.
root@localhost:~# getent group sudo sudo:x:27:journaldev,test root@localhost:~# root@localhost:~# getent group sudo | cut -d: -f4 journaldev,test root@localhost:~#
Conclusión
El comando getent y el archivo /etc/group se pueden usar para obtener todos los detalles de los grupos de Linux. Podemos usarlos junto con el comando cortar y ordenar para presentar el resultado de una mejor manera.
Referencias
- página man de getent
- cortar página del comando man