Listado de todos los grupos a los que pertenece un usuario en macOS

Quiero saber los grupos de algún usuario.

$dscl . list /groups filtroPorUSUARIO theFindUser

¿Es esto posible (incluso si tengo que enumerar todos los grupos y luego filtrar por usuario) de una manera directa?

Respuestas (2)

Pruebe el comando dado a continuación.

id -Gn [user]

En mi Mac, la salida de id -Gn davidandersonse muestra a continuación.

staff everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer _analyticsusers com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh 2 1

El delimitador se puede cambiar de un espacio a una coma ingresando lo siguiente.

groups="$(id -Gn davidanderson)"
groups="${groups// /,}"
echo "$groups"

Aquí, la salida sería la siguiente.

staff,everyone,localaccounts,_appserverusr,admin,_appserveradm,_lpadmin,_appstore,_lpoperator,_developer,_analyticsusers,com.apple.access_ftp,com.apple.access_screensharing,com.apple.access_ssh,2,1

Estoy usando High Sierra, macOs 10.13.4 y un shell bash.

¿Hay alguna manera de agregar un delimitador entre los grupos?
¿Quieres decir que no sea un espacio? ¿Como una coma tal vez?
Gracias por su respuesta. Terminé usando idsolo. Imprimió la identificación del grupo, el nombre entre paréntesis y usó una coma como separador. Esto solo funcionaría para buscar al usuario actual. Aunque eso resolvió mi problema.
¿Alguna idea de qué API en qué Framework de MacOS proporciona esta información? Necesito esto, pero desde mi código Cocoa, y no puedo encontrar una respuesta...

Para listar todos los grupos a los que pertenece un usuario, escriba:

id [username]

[username]argumento es opcional. De forma predeterminada, se asume que el usuario ha iniciado sesión. La salida incluirá la identificación de usuario numérica uidy la lista de todos los grupos junto con su identificación de grupo gid, de la cual el usuario es miembro. El primer grupo en la salida es el grupo principal del usuario.

Para enumerar solo los nombres de los grupos, escriba:

id -Gn [username]

Para enumerar solo los números de grupo, escriba:

id -G [username]