Jak rekurencyjnie zmienić udostępnianie / uprawnienia do folderu w Mac OS X.

53

Czy są jakieś narzędzia lub skrypty Mac OS X, które pozwalają mi rekurencyjnie zmieniać właściwości udostępniania / uprawnień plików i podfolderów w folderze? Na przykład, aby każdy lub określony użytkownik mógł czytać i pisać, tylko do odczytu lub tylko do pisania.

puri
źródło

Odpowiedzi:

73

Spróbuj wykonać polecenie chmod. Na przykład, jeśli masz nazwę katalogu mydir, następujące polecenie włączy rekursywnie odczyt / zapis dla tego katalogu.

$ chmod -R +rw mydir

Po więcej informacji:

$ man chmod
Hai Vu
źródło
18
Dobra odpowiedź, zły przykład. Dodając dostęp do odczytu i / lub zapisu do folderów, musisz również dodać dostęp do wykonania („x”, aka search), w przeciwnym razie r / w są raczej bezużyteczne. Z drugiej strony zazwyczaj nie chcesz dodawać wykonania do plików. Dokonując zmiany rekurencyjnej, operujesz na wielu plikach i folderach. Odpowiedzią jest użycie funkcji „smart execute” (duże X) chmod: chmod -R +rwX mydirdoda wykonanie tylko wtedy, gdy ma to sens.
Gordon Davisson
Gordon: Świetna obserwacja. Jednak katalog zwykle ma włączoną funkcję x, chyba że użytkownik zrobi coś dziwnego, aby ją wyłączyć.
Hai Vu
1
Zależy od początkowych uprawnień. Na przykład, jeśli spojrzysz na domyślny folder domowy Maca, zobaczysz większość folderów (Pulpit, Dokumenty, Biblioteka itp.), Że właściciel ma pełny (rwx) dostęp do wszystkiego, ale do grupy i innych nie mają dostępu (brak odczytu, zapisu lub wykonania). Jeśli dodajesz do odczytu lub zapisu dla grupy lub innych w jednym z tych folderów, musisz również dodać opcję wykonania.
Gordon Davisson
1
Nie działa dla mnie, dotyczy tylko folderu głównego, a nie podfolderów.
delphirules,
29

Wybierz folder główny, z którym chcesz pracować, i otwórz Inspektora (CMD-i lub kliknij prawym przyciskiem myszy i „Pokaż informacje”). W dolnym panelu możesz zarządzać uprawnieniami.

Dodaj i usuń uprawnienia do listy tam. Aby zastosować te same uprawnienia rekurencyjnie do każdego podfolderu, kliknij trybik i wybierz „Zastosuj do zamkniętych elementów ...”

Uwaga: zauważyłem, że „Zastosuj do zamkniętych przedmiotów ...” jest wyszarzone, gdy mała ikona kłódki w prawym dolnym rogu okna jest zablokowana. W takim przypadku po prostu kliknij blokadę, aby ją odblokować, wprowadzając dane uwierzytelniające, a następnie spróbuj ponownie za pomocą opcji „Zastosuj do zamkniętych elementów ...”

gregsabo
źródło
Mimo że ogólnie jest użyteczny, nie osiągnie tego, o co prosi. Zastępuje uprawnienia w podkatalogach, zamiast np. Dodawać użytkownika do wszystkich, bez względu na to, jakie były wcześniej uprawnienia.
Daniel Beck
@DanielBeck jesteś w błędzie, stosuje wszystkie elementy uprawnień, chmod i chown to jest właściwy sposób na „mac”
Rob
właśnie wypróbowałem tę odpowiedź (w folderze testowym) i nie działała ona poprawnie: ponieważ folder jest zazwyczaj „wykonywalny”, ten bit został również ustawiony na wszystkich załączonych plikach, co jest nieprawidłowe. Chciałem tylko zmienić użytkownika i grupę.
przepływ
12

Chcesz użyć poleceń chmodi chown.

Jeśli dobrze pamiętam, możesz zmienić uprawnienia w następujący sposób:

chmod -R +a "joshhunt allow read" /some/file/or/folder/
chmod -R +a "Guest deny read" /some/other/folder/
chmod -R +a "Guest deny write" /some/other/folder/

Aby uzyskać więcej informacji na temat tych poleceń, wyszukaj odpowiednie strony podręcznika w terminalu:

man chmod
man chown
Josh Hunt
źródło
1
Najlepszy sposób na określenie uprawnień dla konkretnego użytkownika
megalucio,