Jak znaleźć mój identyfikator użytkownika i grupę w Mac OS X?

59

Próbuję uruchomić ten kompand w terminalu:

sudo chown -R yourid:yourgroup local

Nie mam jednak pojęcia, jaki jest mój identyfikator i moja grupa ani gdzie je znaleźć. Jakieś pomysły?

Starkers
źródło

Odpowiedzi:

61

W OS X twoja podstawowa grupa jest zawsze, staffchyba że ty lub twój menedżer katalogów użytkowników to zmieniłeś.

Jaka jest podstawowa grupa ? Podstawowa grupa użytkownika jest domyślnie właścicielem wszystkich plików utworzonych przez tego użytkownika.


Do celów chmodkomputera możesz użyć numerycznego ID użytkownika (np. 501) lub nazwy konta (np danielbeck.). Ta ostatnia różni się od nazwy użytkownika, którą zwykle widzisz w interfejsie użytkownika (np. Daniel Beck ).

Możesz określić nazwę swojego konta, korzystając z jednego z poniższych sposobów:

  • Jest to nazwa twojego katalogu domowego (chyba że go dostosowałeś) w tytule Findera lub pasku bocznym

  • Uruchom whoamiw terminalu - tak chown -R $(whoami):staffpowinno wystarczyć. Możesz także zdobyć swoją grupę podstawową groups $(whoami) | cut -d' ' -f1.

  • Otwórz Preferencje systemowe »Użytkownicy i grupy , odblokować panel, jeśli jest to konieczne, kliknij prawym przyciskiem myszy nazwę użytkownika (pojedynczy wpis na liście w bieżący użytkownik sekcji) i wybierz Opcje zaawansowane ... . To pole Nazwa konta w nowo otwartym oknie dialogowym. To okno dialogowe pokazuje również twoją podstawową grupę.

  • Uruchom idw terminalu, aby uzyskać bardziej szczegółowe dane wyjściowe. Obejmuje to numeryczny identyfikator użytkownika. Spowoduje to także wyświetlenie wszystkich grup, do których należysz, a nie tylko Twojej grupy podstawowej. Pierwsza grupa jest podstawowa.

Daniel Beck
źródło
3
Zamiast używać whoamimożesz używać idw oneliner, który jest kompatybilny z powłokami POSIX i csh. chown -R `id -u`:`id -g` FOLDER
fd0
Jeśli używasz uwierzytelniania LDAP, twoja nazwa użytkownika niekoniecznie będzie staff. W każdym razie nie w mojej pracy Mac OS X.
Sridhar Sarnobat
1
@ Sridhar-Sarnobat Zajmuję się tym w drugiej połowie pierwszego zdania mojej odpowiedzi.
Daniel Beck
42

Użyj idpolecenia z terminala. Wyświetli Twój identyfikator użytkownika i grupy, do których należysz. Na przykład, oto moje dane wyjściowe pokazujące mój identyfikator użytkownika (534), identyfikator grupy (20) i grupy, do których należę (również 20).

uid=534(galuga) gid=20(staff) groups=20(staff)
galuga
źródło
15

Spowoduje to wyświetlenie Twojego identyfikatora użytkownika.

$ id -u
502

Spowoduje to wyświetlenie nazw grup. Nazwy grup znajdują się w nawiasach.

$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
Gabriel Wu
źródło
4

w Terminalu idź ~/Documentsi biegnij ls -la. Twoja nazwa użytkownika i grupa zostaną wymienione obok każdego pliku / katalogu.

To powinno wyglądać tak:

drwxr-xr-x  2 username usergroup  4096 Oct 17  2012 Templates
Miah
źródło
super łatwe i jednoznaczne, dzięki za wskazówkę.
teradyl
3

Komentowałbym tylko, gdybym mógł. Nie mam wystarczająco dużo karmy na tej stronie.

Nie mam pojęcia, dlaczego ktoś przegłosował @callaginn, ponieważ porusza słuszną kwestię.

Poprawne są następujące metody (i prawdopodobnie najlepsze opcje dla skryptów powłoki):

id -u  # returns UID

id -un # returns username

id -g  # returns primary (a.k.a. effictive) GID

id -gn # returns primary Group Name

Zobacz man idwięcej opcji.

Aby odpowiedzieć na to konkretne pytanie, gdybym pisał skrypt, który działałby w dowolnym środowisku, nie zakładałbym, że grupa domyślna staffjest używana, a zamiast tego zrobiłbym następujące, gdybym pisał skrypt, który można uruchomić dla dowolnego użytkownika (niezależnie od tego, czy zmodyfikowali swój system):

chown "$(id -un):$(id -gn)" some_file

Zawsze lepiej jest być niezależnym od platformy, gdy tylko jest to możliwe (jeśli nie jest to zbyt duży kompromis czasowy), ponieważ później zaciągniesz mniej długu technicznego.

Należy pamiętać, że chown„s -Rflagi powinny być stosowane ze szczególną ufnością. Naprawdę możesz zepsuć swój system (chociaż warto zauważyć, że Apple utrudniło to, odkąd go wdrożono System Integrity Protection).

Rozważmy na przykład, gdybyś chown -R 755 /varzamiast chown -R 755 /var/wwwrootować z System Integrity Protectionniepełnosprawnym, uważam, że byłbyś w stanie to zrobić. Nie mogę ci powiedzieć, co by się zepsuło jako pierwsze, ale to by się zepsuło jako pierwsze w systemie Darwina, ale proszę, uwierz mi na słowo, że nie byłoby ładnie.

Mam nadzieję, że ktoś uzna to za pomocne.

Robert J.
źródło
2

Jeszcze krótsza metoda znalezienia grupy podstawowej:

id -gn
Callaginn
źródło