2013-05-02 16:34:01 +0000 2013-05-02 16:34:01 +0000
62
62

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

Próbuję uruchomić tę komendę w terminalu:

sudo chown -R yourid:yourgroup local

Jednak nie mam pojęcia, czym jest moje ID i moja grupa, ani gdzie je znaleźć. Jakieś pomysły?

Odpowiedzi (6)

65
65
65
2013-05-02 16:49:08 +0000

W systemie OS X grupa podstawowa to zawsze staff, chyba że użytkownik lub menedżer katalogu użytkownika ją zmienił.

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


Dla celów chmod na twoim komputerze, możesz używać albo numerycznego identyfikatora użytkownika (np. 501), albo nazwy konta (np. danielbeck). Ta ostatnia różni się od nazwy użytkownika, którą zwykle widzisz w UI (np. Daniel Beck).

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

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

  • Uruchom whoami w Terminalu - więc chown -R $(whoami):staff powinno wystarczyć. Możesz również uzyskać swoją główną grupę za pomocą groups $(whoami) | cut -d' ' -f1.

  • Otwórz System Preferences “ Users & Groups, odblokuj panel, jeśli to konieczne, kliknij prawym przyciskiem myszy nazwę użytkownika (pojedynczy wpis na liście w sekcji Current User), i wybierz Advanced Options…. Jest to pole Account Name (Nazwa konta) w nowo otwartym oknie dialogowym. To okno dialogowe pokazuje również Twoją główną grupę.

  • Uruchom id w Terminalu, aby uzyskać bardziej szczegółowe dane wyjściowe. Będzie to zawierało twój numeryczny identyfikator użytkownika. Wyświetli także listę wszystkich grup, których jesteś członkiem, nie tylko twoją grupę podstawową. Pierwsza grupa jest grupą podstawową.

42
42
42
2013-11-27 01:56:17 +0000

Użyj komendy id z terminala. Wyświetli ono twój uid i grupy, do których należysz. Na przykład, tutaj jest moje wyjście 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)
16
16
16
2016-08-03 09:47:16 +0000

To pokaże twój identyfikator użytkownika.

$ id -u
502

To pokaże nazwy twoich grup. Nazwy grup znajdują się wewnątrz nawiasów.

$ 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)
4
4
4
2013-05-02 16:42:49 +0000

w Terminalu, przejdź do ~/Documents i uruchom ls -la. Twoja nazwa użytkownika i grupa będą wyświetlone obok każdego z plików/katalogów.

Powinno to wyglądać tak:

drwxr-xr-x 2 username usergroup 4096 Oct 17 2012 Templates
4
4
4
2019-05-14 03:44:29 +0000

Komentowałbym tylko gdybym mógł. Nie mam wystarczającej karmy na tej stronie.

Nie mam pojęcia, dlaczego ktoś obniżył ocenę @callaginn, ponieważ porusza on ważny punkt.

Następujące metody są ważne (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 id po więcej opcji.

Aby odpowiedzieć na to konkretne pytanie, gdybym pisał skrypt, który działałby w każdym środowisku, nie zakładałbym, że domyślna grupa staff jest w użyciu, a zamiast tego zrobiłbym następujące rzeczy, gdybym pisał skrypt, który mógłby być uruchomiony dla dowolnego użytkownika (niezależnie od tego, czy zmodyfikował swój system, czy nie):

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

Zawsze lepiej jest być agnostykiem 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 flaga chown powinna być używana z najwyższą pewnością. Możesz naprawdę zepsuć swój system (Chociaż warto zauważyć, że Apple sprawił, że jest to trudne do zrobienia, odkąd zaimplementowali -R).

Rozważ, na przykład, jeśli miałbyś System Integrity Protection zamiast chown -R 755 /var jako root z wyłączonym chown -R 755 /var/www, wierzę, że byłbyś w to zamieszany. Nie mogę ci powiedzieć, co by się najpierw zepsuło, ale zepsułoby się najpierw na systemie Darwina, ale uwierz mi na słowo, że nie byłoby to ładne.

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

2
2
2
2019-05-06 15:55:00 +0000

Jeszcze krótsza metoda na znalezienie grupy pierwotnej:

id -gn