Posso ter uma lista de nomes de grupos "Sistema" e seus respectivos gid (s)?

14

Sei que existem nomes de grupos como "Equipe" e "Administrador", mas esses são os únicos? Eu suspeito que o usuário root também deve ser atribuído em um grupo. O uso do comando dscacheutil -q userme diz o gid do root - 0. E se uma conta de usuário é um administrador, ela não está nos grupos "Admin" e "Staff"?

Ao executar o comando ls -la /Users, recebo a seguinte saída:

Nicholass-MacBook:~ Ee$ ls -la /Users
total 32
drwxr-xr-x  12 root     admin    408 Nov  3 15:11 .
drwxr-xr-x@ 35 root     wheel   1258 Oct 29 20:21 ..
-rw-r--r--@  1 root     admin  12292 Oct 27 09:02 .DS_Store
-rw-r--r--   1 root     wheel      0 Aug 25 16:58 .localized
drwxrwx---   5 root     admin    170 Nov  3 08:00 Deleted Users
drwxr-xr-x+ 21 Ee       staff    714 Nov  3 08:06 Ee
drwx------+ 84 root     admin   2856 Oct 26 06:49 Ee (Deleted)
drwxr-xr-x+ 11 EeJ      staff    374 Nov  3 15:07 EeJ
drwxr-xr-x+ 14 900      admin    476 Oct 24  2012 Ee******** (Deleted)
drwxr-xr-x   3 root     admin    102 Oct 27 06:50 Old Ee (frm Snow Leopard)
drwxr-xr-x+ 11 ParAcnt  staff    374 Nov  3 15:11 ParAcnt
drwxrwxrwt   6 root     wheel    204 Nov  1 18:18 Shared
Tijolo
fonte

Respostas:

21

O comando dscacheutil -q groupproduzirá todos os grupos com seus nomes, números de identificação e lista de membros. Esteja avisado, quando digo que produzirá todos os grupos, quero dizer todos os grupos, incluindo o sistema interno que os mortais nunca foram feitos para ver. Só estou dizendo: não surte, existem tantos grupos para um sistema de usuário único.

rootcomo o superusuário está em um grupo por si só e também implicitamente como membro de qualquer outro grupo. Qualquer conta de usuário pode ser membro de vários grupos. No meu sistema, o único membro de staffé root; os administradores estão todos no admingrupo. wheelé outro nome de grupo que você verá frequentemente para alguns arquivos do sistema; é um nome de grupo popular nos sistemas Linux para atribuir aos arquivos, para que os administradores possam editá-los sem usar sua senha sudo.

Também deve ser observado que o Mac OS X suporta listas de controle de acesso que fornecem controle mais granular sobre as permissões de arquivo do que as permissões tradicionais do Unix; IIRC +na lista de permissões de arquivo indica que existem permissões estendidas associadas ao arquivo.

cinza
fonte
13

Métodos alternativos para listagem groupse seus gid:

Lista classificada pelo nome do grupo:

dscl . list /Groups PrimaryGroupID

Lista ordenada por grupo gid:

dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2

Listar grupos com membros:

dscl . list /Groups GroupMembership

Nota: dscacheutilnem dsclliste os membros do grupo staffque não sejam root. Use dsmemberutilpara confirmar que um membro pertence ao grupo staff.

Exemplo de um usuário com o uid 501:

dsmemberutil checkmembership -u 501 -g 20
fd0
fonte
1
Uau, uma boa compilação de comandos úteis!
Yongwei Wu