Entendiendo el grupo de usuarios 'staff'

21

Se sabe que todos los usuarios son miembros del grupo 'personal'. Si configura un usuario estándar y crea cualquier archivo, una lista de ese archivo en el terminal con 'ls -la' muestra al grupo de usuarios como 'personal'.

Usando el comando dscacheutil, podemos ver información sobre grupos. Por ejemplo: -

dscacheutil -q group -a name admin

Esto devuelve información sobre el grupo de administración, incluidos todos los miembros.

Sin embargo, cuando estaba acostumbrado a mirar al grupo de "personal", esperaba ver a los usuarios estándar como miembros del grupo, pero este no es el caso: -

dscacheutil -q group -a name staff

name: staff
password: *
gid: 20
users: root

Entonces, si todos los usuarios estándar son miembros del grupo de personal, ¿por qué no aparecen aquí?

¿Hay otro comando que pueda mostrar a los miembros reales del grupo de personal?

    
pregunta TheDarkKnight 14.05.2014 - 11:39

2 respuestas

9

Solo hay una forma confiable de obtener todos los miembros de un grupo en OS X y la respuesta de 2DD8847 cubre eso. En cuanto a "por qué" no puedo ofrecer una explicación lógica. Todo lo que puedo decir es lo que diferencia los resultados.

Estos enfoques no incluyen a los usuarios que solo son miembros del grupo a través de PrimaryGroupID. Una forma de verlo es que estos usuarios que no figuran en la lista no se agregaron oficialmente al grupo de personal. Acaban de recibir un PrimaryGroupID que coincide con el gid del personal. Por lo tanto, no se enumeran oficialmente con algunos comandos. Lo sé, es absurdo.

RESULTADOS INCOMPLETOS:

dscl . -read /Groups/[groupname]
dscl . -read /Groups/[groupname] GroupMembership
dscacheutil -q group -a name [groupname]

RESULTADOS COMPLETOS:

dscl . -list /Users PrimaryGroupID | grep [gid]

Todo lo que realmente puedo decirte es que sin buscar miembros del grupo por su PrimaryGroupID (en lugar de enumerar a los miembros de un grupo) no te dará resultados completos. Ajústalo a las rarezas de Unix. Hay muchos.

Espero que ayude!

Source

    
respondido por el sgelliott 15.05.2014 - 08:46
4

¿Qué es exactamente lo que quieres lograr / hacer?

Este comando enumera a todos los usuarios en el grupo de personal:

dscl . -list /Users PrimaryGroupID | grep ' 20$'

Source

Explicación: El grupo de personal tiene el ID de grupo principal de 20.

    
respondido por el Bastian Gruber 14.05.2014 - 17:33

Lea otras preguntas en las etiquetas