¿Cómo enumero los grupos de los que es miembro un usuario de UNIX?

79

Con pts m groupnamepuedo enumerar los usuarios en un grupo. ¿Cómo puedo hacer lo contrario, es decir, enumerar todos los grupos de los que es miembro un usuario?

(Necesito esto para encontrar el nombre de un grupo del que conozco a un usuario miembro, pero no sé el nombre del grupo ...)

Aclaración:
esta pregunta se complica por el hecho de que no soy el administrador del sistema y de que no tengo permisos de root (ni mucho menos). En cambio, soy parte de un grupo de "moderadores" que administran una pequeña parte del sistema, para ser específicos, la rama de física del sindicato de estudiantes en el sistema informático central de mi universidad.

Dentro de nuestra sucursal, tenemos un grupo de diferentes grupos de acceso para personas que están a cargo de las cosas. En este caso, una de las dos personas responsables de algo (no importa qué) han sido reemplazadas, y estaba buscando examinar al otro usuario para averiguar qué derechos de acceso debería otorgarle.

Ahora he podido resolver el problema inmediato (el nuevo chico no puede acceder a una carpeta) examinando la carpeta para ver quién tiene acceso, y allí seleccionando el grupo de la lista. Sin embargo, puede haber más privilegios que este usuario debería tener que no conozco, por lo que la pregunta sigue siendo relevante para mí, aunque no tan grave.

Tomás Aschan
fuente

Respuestas:

105

También puedes usar el groupscomando:

[root @ ftp ~] # grupos root
root: root bin daemon sys adm rueda de disco

Si todo lo demás falla, también hay algo bueno grep:

[root @ ftp ~] # grep root / etc / group
raíz: x: 0: raíz
bin: x: 1: root, bin, daemon
daemon: x: 2: root, bin, daemon
sys: x: 3: raíz, bin, adm
adm: x: 4: root, adm, daemon
disco: x: 6: raíz
rueda: x: 10: root, admin
John T
fuente
1
grep ^root: /etc/grouppodría ser mejor.
Dennis Williamson
no, no lo es, ya que solo enumera uno de los grupos de los que la raíz es miembro, tal vez con un poco de awk, es más claro :) grep root / etc / group | awk -F: '{print $ 1}'
matthias krull
3
Examinar / etc / group suena bien, pero si su sistema está usando un directorio centralizado (NIS, LDAP, ActiveDirectory,?), No encontrará una lista completa de grupos allí. Solo las definiciones de grupos locales estarían en ese archivo.
Slartibartfast
El comando groups kczsolo me da usr, aunque sé que este usuario es miembro de un grupo llamado fkm. ¿Lo que falta?
Tomas Aschan
No estoy seguro, /etc/grouppegue su @Tomas.
John T
28
$ id [username]
asesino
fuente
" $: Command not found".
Tomas Aschan
8
El $representa el símbolo del sistema. Comience a escribir con id.
coneslayer el
Todavía no me da mucho:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan
muestra uid = gid = groups = así que lo tercero que obtengo es la lista de grupos a los que pertenece un usuario.
MKJ
6

Lo encontré, mucho después, ¡pero lo hice! =)

Tal como

$>pts m [group name]

enumera todos los miembros de un grupo,

$>pts m [user name]

enumera todos los grupos de los que es miembro un usuario. Era demasiado simple: P

Tomás Aschan
fuente
3
pts no es un comando estándar.
user2284570
1
@ usuario2284570: Quizás no. Pero se dijo claramente en la pregunta (lo primero, de hecho, y con el resaltado de sintaxis) que se trata de ptsesta pregunta.
Tomas Aschan