40 votes

Comprendre le groupe d'utilisateurs "personnel

On sait que tous les utilisateurs sont membres du groupe "staff". Si vous configurez un utilisateur standard et créez un fichier quelconque, une liste de ce fichier dans le terminal avec "ls -la" montre que le groupe d'utilisateurs est "staff".

La commande dscacheutil permet d'obtenir des informations sur les groupes. Par exemple : -

dscacheutil -q group -a name admin

Cette fonction renvoie des informations sur le groupe d'administrateurs, y compris tous ses membres.

Cependant, lorsque je consulte le groupe "staff", je m'attends à ce que les utilisateurs standard soient membres du groupe, mais ce n'est pas le cas.

dscacheutil -q group -a name staff

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

Si tous les utilisateurs standard sont membres du groupe du personnel, pourquoi n'apparaissent-ils pas ici ?

Existe-t-il une autre commande permettant d'afficher les membres réels du groupe du personnel ?

16voto

sgelliott Points 785

Il n'y a qu'une seule façon fiable d'obtenir tous les membres d'un groupe sous OS X et la réponse de 2DD8847 couvre ce point. Pour ce qui est du "pourquoi", je ne peux pas donner d'explication logique. Tout ce que je peux vous dire, c'est ce qui différencie les résultats.

Ces approches ne permettent pas d'inclure les utilisateurs qui ne sont membres du groupe que par l'intermédiaire de PrimaryGroupID. Une façon de voir les choses est que ces utilisateurs non répertoriés n'ont pas été officiellement ajoutés au groupe du personnel. Ils ont juste reçu un PrimaryGroupID qui correspond au gid du staff. Par conséquent, ils ne sont pas officiellement listés avec certaines commandes. Je sais, c'est absurde.

DES RÉSULTATS INCOMPLETS :

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

RÉSULTATS COMPLETS :

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

Tout ce que je peux vous dire, c'est que si vous ne recherchez pas les membres d'un groupe par leur PrimaryGroupID (au lieu de lister les membres d'un groupe), vous n'obtiendrez pas de résultats complets. Cela s'explique par les bizarreries d'Unix. Il y en a beaucoup.

J'espère que cela vous aidera !

Source

4voto

Dewi Morgan Points 297

Que voulez-vous faire exactement ?

Cette commande permet de dresser la liste de tous les utilisateurs du groupe du personnel :

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

Source

Explication : Le groupe de personnel a pour PrimaryGroupID la valeur 20.

0voto

Motti Shneor Points 504

Pourquoi tout le monde ici s'en tient à ces encombrantes dscl et dscacheutil des commandes ?

Pourquoi ne pas utiliser la méthode beaucoup plus simple id (et sa commande encore plus simple group commande ami) ?

id - Gn <user> 

vous donnera ce que vous voulez pour tous les utilisateurs de Mac, y compris les utilisateurs de Mac 50x "normaux".

eg.

> id -Gn 501     staff everyone localaccounts
_appserverusr admin _appserveradm _lpadmin com.apple.sharepoint.group.2 com.apple.sharepoint.group.1 _appstore
_lpoperator _developer _analyticsusers com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh com.apple.access_remote_ae

ou, si vous voulez les identifiants des groupes à la place :

> id -G myusername
20 12 61 79 80 81 98 702 701 33 100 204 250 395 398 399 400

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X