To pytanie ma już odpowiedź tutaj:
Mam folder, w którym nowe podfoldery i pliki zostaną utworzone automatycznie za pomocą skryptu.
Chcę zachować rekursywnie uprawnienia użytkownika i grupy dla wszystkich nowych folderów i plików umieszczonych w katalogu nadrzędnym. Wiem, że wiąże się to z lepkim ustawieniem, ale nie mogę znaleźć polecenia, które pokazuje dokładnie to, czego potrzebuję.
Oto co dotychczas zrobiłem:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
Następnie chcę, aby uprawnienia 660 były rekurencyjnie ustawione na dowolne foldery i pliki w nich umieszczone /path/to/parent
.
Jednak wszystko, co do tej pory próbowałem, zawiodło. Czy ktoś może pomóc?
W rzeczywistości ósemkowa flaga 660 prawdopodobnie nawet nie jest poprawna. Uprawnienia, których chcę, to:
- Katalogi umieszczone pod
/path/to/parent
są eXecutable przez użytkowników z uprawnieniami - pliki są odczytywane / zapisywane przez użytkownika i członków grupy
- Pliki i foldery w
/path/to/parent
NIE są czytelne na całym świecie
Korzystam z systemu Ubuntu 10.0.4 LTS.
Czy ktoś może pomóc?
źródło
o+w
to dobry wybór? Czy zmiany nie powinny ograniczać się dou
ig
? W przeciwnym razie, po co próbować zachować bezpieczeństwo katalogu i podkatalogów?Bity uprawnień, których szukasz, to 0770 i 0660.
rw-
uprawnienia →110
binarne →6
ósemkoweWłasność grupy mogą być dziedziczone przez nowych plików i folderów utworzonych w folderze / ścieżka / do / rodzica przez ustawienie bitu setgid używając
chmod g+s
tak:Teraz do wszystkich nowych plików i folderów utworzonych w / path / to / parent zostanie przypisana ta sama grupa, która jest ustawiona na / path / to / parent.
Uprawnienia do plików POSIX nie są dziedziczone; są one podawane przez proces tworzenia i łączone z jego bieżącą wartością umask.
Aby to osiągnąć , możesz jednak użyć list ACL POSIX . Ustaw domyślną listę ACL w katalogu:
Będzie to
setfacl
miało zastosowanie do katalogu / path / to / parent,-m
odating-d
efault ACLs - te, które zostaną zastosowane do nowo utworzonych elementów. (Wielkie literyX
oznaczają, że+x
bit otrzymają tylko katalogi ).(W razie potrzeby możesz dodać
u:someuser:rwX
lubg:someuser:rwX
- najlepiej grupę - do list ACL.)Uwaga: W starszych systemach korzystających z ext3 / ext4 trzeba było zamontować system plików z
acl
opcją, w przeciwnym razie zignorowałby wszystkie listy ACL i uniemożliwiłby ustawienie nowych.Aby ustawić to na stałe, użyj
tune2fs -o acl <device>
lub edytuj/etc/fstab
.źródło
unzip
?Myślę, że nadmiernie komplikujesz ten problem. Jeśli katalog najwyższego poziomu nie jest dostępny dla innych, inni nie będą mogli tworzyć plików w drzewie. Grupowy dostęp do zapisu nie jest wymagany, jeśli tylko apache wykonuje zapis.
Te kroki powinny zrobić, co chcesz (zamień katalog w poleceniach na katalog, którego chcesz użyć):
umask 027
do domyślnego skryptu apache/etc/default/apache
. Uniemożliwi to innym dostęp do jakichkolwiek plików lub katalogów tworzonych przez apache.chown www-data:www-data directory
w katalogu, do którego apache ma mieć możliwość zapisu.chmod 750 directory
w katalogu, do którego apache ma mieć możliwość zapisu.Zezwolenie apache'owi na zapis do katalogu otwiera możliwość wstrzykiwania wszelkiego rodzaju złośliwego oprogramowania do obsługiwanej zawartości. Monitoruj odpowiednio zawartość tego drzewa katalogów.
źródło