Czy mogę mieć listę nazw grup „System” i ich odpowiednich identyfikatorów?

16

Wiem, że istnieją nazwy grup, takie jak „Personel” i „Administrator”, ale czy są to jedyne? Podejrzewam, że użytkownik root powinien być również przypisany do grupy. Użycie polecenia dscacheutil -q usermówi mi „root” - 0. A jeśli konto użytkownika jest administratorem, to czy nie jest to zarówno w grupie „Administrator”, jak i „Personel”?

Po uruchomieniu polecenia ls -la /Usersotrzymuję następujące dane wyjściowe:

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
Cegła
źródło

Odpowiedzi:

22

Polecenie dscacheutil -q groupwyświetli wszystkie grupy z ich nazwami, numerami ID i listą członków. Ostrzegam, kiedy mówię, że wygeneruje wszystkie grupy, mam na myśli wszystkie grupy, w tym wbudowane systemy, których śmiertelnicy nigdy nie mieli zobaczyć. Mówię tylko: nie przejmuj się, istnieje tyle grup dla systemu dla jednego użytkownika.

rootponieważ superużytkownik jest sam w grupie i niejawnie jest członkiem każdej innej grupy. Każde konto użytkownika może być członkiem wielu grup. W moim systemie jedynym członkiem staffjest root; wszyscy administratorzy są w admingrupie. wheeljest inną nazwą grupy, którą często widzisz dla niektórych plików systemowych; jest to popularna nazwa grupy w systemach Linux, którą można przypisywać do plików, aby umożliwić administratorom edycję ich bez użycia hasła sudo.

Należy również zauważyć, że Mac OS X obsługuje listy kontroli dostępu, które zapewniają bardziej szczegółową kontrolę uprawnień do plików niż tradycyjne uprawnienia Unix; IIRC na +liście uprawnień do pliku wskazuje, że istnieją takie rozszerzone uprawnienia związane z plikiem.

popiół
źródło
14

Alternatywne metody notowania groupsi ich gid:

Lista posortowana według nazwy grupy:

dscl . list /Groups PrimaryGroupID

Lista posortowana według grupy gid:

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

Lista grup z członkami:

dscl . list /Groups GroupMembership

Uwaga: dscacheutilani dscllista członków grupy, staffoprócz root. Służy dsmemberutildo potwierdzania, że ​​członek należy do grupy staff.

Przykład użytkownika z identyfikatorem UID 501:

dsmemberutil checkmembership -u 501 -g 20
fd0
źródło
1
Wow, fajna kompilacja przydatnych poleceń!
Yongwei Wu