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?
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?
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ą.
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)
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)
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.