Uprawnienia do nowych plików w udostępnionym katalogu

31

Właśnie dostaliśmy nowego iMaca używającego /Users/Sharedkatalogu do przechowywania zasobów multimedialnych (zdjęć, audio, wideo), które chcemy, aby były dostępne dla wszystkich użytkowników na komputerze. Po początkowym skopiowaniu wszystkich plików, ustawiliśmy pożądane uprawnienia, a następnie rekurencyjnie zastosowaliśmy te same uprawnienia do całej zawartości katalogu. Działa to dobrze, z wyjątkiem przypadków, gdy ktoś tworzy nowy plik lub katalog, nie ma takich samych uprawnień i musimy powtórzyć cały proces uprawnień, zanim wszyscy będą mogli uzyskać do niego dostęp.

Czy istnieje sposób na ustawienie uprawnień dla wszystkich nowych plików / katalogów utworzonych w tym katalogu?

Daniel Standage
źródło
Rozszerzone atrybuty pozwolą ci ustawić niektóre bardzo liberalne uprawnienia dostępu i nakazać im rozprzestrzenianie się w katalogu i kontynuowanie robienia tego na nowych dziełach, ale przez całe życie nie mogę znaleźć instrukcji. Czy mogę to zrobić tylko na serwerach OSX za pomocą Narzędzi administratora serwera, co, jak zakładam, nie jest tutaj wykonalną opcją?
Jason Salaz
Nie. Mamy dostęp tylko do dysków z systemem operacyjnym dostarczonych z komputerem iMac.
Daniel Standage
1
Jeśli jesteś zadowolony z pracy w terminalu, może to być odpowiedź, której szukasz.
boehj

Odpowiedzi:

32

Nie można tego zrobić z tradycyjnymi uprawnieniami w stylu POSIX, ale można to zrobić z dziedziczonymi wpisami kontroli dostępu. Aby zezwolić na dostęp do odczytu i zapisu całej grupie „pracowników” do wszystkiego w / Users / Shared / reallyshared, możesz użyć:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

Ta file_inherit,directory_inheritczęść oznacza, że ​​ten wpis kontroli dostępu zostanie automatycznie dodany do nowych plików i folderów utworzonych w tym folderze, ale nie będzie automatycznie stosowany do elementów już tam znajdujących się (dlatego dodałem -Rflagę do chmod- to dotyczy go do wszystkiego, co jest obecnie w środku folder) i nie zostanie zastosowany do elementów utworzonych gdzieś indziej, a następnie przeniesionych do tego folderu (przepraszam, nie wiem jak to zrobić).

Gordon Davisson
źródło
Bardzo chciałbym znaleźć sposób, aby mieć tę pracę nawet w przypadku plików przeniesionych do wspólnego katalogu. Frustrujące jest posiadanie plików we współdzielonym katalogu, które w rzeczywistości nie są w pełni udostępniane.
radven,
To wciąż nie pozwala na zapisanie folderu, jeśli nie pozwalają na to uprawnienia posix. Tzn. Tworzę ten folder w Finderze: drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder+ na końcu oznacza, że ​​zastosowano rozszerzoną listę ACL za pomocą powyższego polecenia, ale system Windows nadal mówi, że odmówiono zgody, jeśli próbuję zapisać plik w tym folderze. Tylko chmod g+w untitled\ folderpozwala mi pisać do niego. Być może dlatego, że zainstalowałem Sambę, aby obejść nową, straszną implementację SMB OSX.
Chris Dragon,
@ChrisDragon: brzmi to tak, jakby samba nie przestrzegała prawidłowo ACL. Znalazłem tutaj sugestię , aby dodać nt acl support = nodo [Global]sekcji /etc/smb.conf, ale nie jestem pewien, czy jest to nadal aktualne w aktualnych wersjach samby.
Gordon Davisson,
4

Innym podejściem jest użycie terminalu (inaczej powłoki lub wiersza poleceń) do utworzenia / edycji (należy wykonać jako superużytkownik, patrz sudo) plik:
/etc/launchd-user.conf
dodanie linii:
umask 000
zapisz i uruchom ponownie. Nowe pliki / foldery (w tym pliki zmienione przez save as) umożliwią każdemu odczyt / zapis.

Działa to poprzez zmianę domyślnych uprawnień do tworzenia plików dla programów, podczas gdy podejście ACL działa w zakresie reguł dostępu powiązanych z określonymi plikami i folderami.

Bez tego ulepszenia tworzone są pliki pozwalające użytkownikowi: tylko do odczytu, zapisu, grupy i inne: tylko do odczytu.

Jeśli współdzielisz wiele komputerów, musisz to zrobić dla wszystkich komputerów, które będą korzystać z udziału.

Jeśli masz istniejące pliki i foldery we wspólnym obszarze, musisz je wszystkie odczytać / zapisać dla wszystkich osób korzystających z:
sudo chmod -R og+w <shared-folder-name>

Polecenie czyta w języku angielskim jako tryb zmiany, rekurencyjnie przez wszystkie podfoldery i pliki, inne uprawnienia i uprawnienia grupowe dodają prawa zapisu, zaczynając od folderu z.

Takie podejście jest wspomniane na forach, aby współpracować z co najmniej 10.6 i nadal działa na 10.7.

Inne czynniki nadal wpływają na dostęp do treści. Na przykład uprawnienia ustawione w panelu sterowania Udostępnianie, uprawnienia do folderów domowych / listy ACL, a podczas korzystania z terminala wszelkie umask obowiązujące dla powłoki.

Wyszukaj uprawnienia do plików umask i Posixpo szczegóły na temat tych koncepcji Uniksa. W spisie katalog słów jest językiem uniksowym, który jest synonimem folderu. Spotkasz się również z terminami UID i GID: identyfikatory użytkowników i grup, które określają własność Posix działających programów (procesów). Pamiętaj, że identyfikatory UID i GID to liczby, które mogą być takie same lub różne dla danej nazwy użytkownika na różnych komputerach. Numery te są przypisywane do nazw w kontach zamówień tworzonych na danym komputerze, zwykle zaczynających się od ID 501. Sieci domowe nie mają mechanizmu harmonizującego te przypisania między komputerami. Dlatego w udziałach sieciowych plik może wydawać się należeć do różnych użytkowników, ponieważ identyfikator użytkownika do powiązania nazwy użytkownika jest określany z perspektywy dostępu do pliku przez komputer. Udostępnianie naprawdę zawsze pozwala każdemu na dostęp do plików w różnym stopniu. Innymi słowy, zezwolenie Posix na „inne” jest nieograniczonym limitem dostępu, począwszy od umożliwienia dość przewidywalnego, ale pozornie niepewnego stopnia dostępu, w zależności od identyfikatorów użytkowników przypisanych na różnych komputerach. Prowadzi to do pozornie absurdalnych zmian w doświadczeniach, w których w niektórych sieciach, na przykład konfiguracja z tylko jednym kontem użytkownika utworzonym na każdym komputerze Mac, będzie można udostępniać bez żadnych poprawek uprawnień, ponieważ wszystkie konta będą miały ten sam UID (501, nie niezależnie od nazwy kont), podczas gdy inna sieć korzystająca z wielu kont użytkowników na komputerze Mac natychmiast zauważy problemy. Dlatego niektóre grupy nigdy się z tym nie borykają, podczas gdy inne mogą widzieć problemy, które rozwijają się z czasem lub problemy, które pojawiają się / znikają spontanicznie,

To tajemnica, dlaczego Apple pozostawił tak rażącą wadę użyteczności w konfiguracji tak łatwo dostępnej funkcji udostępniania plików.

Na dyskach zewnętrznych problem ten rozwiązano za pomocą opcji „Ignoruj ​​uprawnienia do tego woluminu”. Może być podobna funkcja udostępniania plików Apple, ale gdzie to jest.

Jeśli rzucisz własną konfigurację usługi Samba, istnieją inne mechanizmy radzenia sobie z tymi problemami, ale Samba wcale nie jest łatwa w użyciu.

Drut
źródło
Plik /etc/launchd-user.conf jest przestarzały na korzyść użycia launchctl. Zobacz support.apple.com/en-us/HT201684
Jess Bowers