Mam katalog o nazwie data
. Następnie uruchamiam skrypt pod identyfikatorem użytkownika „robot”. robot zapisuje do data
katalogu i aktualizuje pliki w środku. Pomysł jest data
otwarty zarówno dla mnie, jak i dla robota do aktualizacji.
Więc skonfigurowałem uprawnienia i grupę właścicieli w ten sposób
drwxrwxr-x 2 me robot-grp 4096 Jun 11 20:50 data
gdzie zarówno ja, jak i robot należy do „robota-grp”. Zmieniam uprawnienia i grupę właścicieli rekurencyjnie jak katalog nadrzędny.
Regularnie przesyłam nowe pliki do data
katalogu przy użyciu rsync
. Niestety, przesłane nowe pliki nie dziedziczą uprawnień katalogu nadrzędnego, jak mam nadzieję. Zamiast tego wygląda to tak
-rw-r--r-- 1 me users 6 Jun 11 20:50 new-file.txt
Gdy robot próbuje zaktualizować new-file.txt
, kończy się niepowodzeniem z powodu braku uprawnień do plików.
Nie jestem pewien, czy ustawienie umask pomaga. W zasadzie nowe pliki tak naprawdę nie podążają za nim.
$ umask -S
u=rwx,g=rx,o=rx
Często denerwuje mnie pozwolenie na plik Unix. Czy w ogóle mam odpowiedni plan? Używam Debian Lenny.
źródło
sudo setfacl -Rm g:users:rwX,d:g:users:rwX /var/www/logs_or_something
. Miał problem z testami PHPUnit. Po utworzeniu plików dziennika z uruchomionych testów użytkownik Apachewww-data
nie mógł ich zapisać / odczytać.setfacl
strony człowieka ,-b
lub--remove-all
usuwa rozszerzone ACL.setfacl -Rm g:users:rwX,d:g:users:rwX data/
na końcu/etc/fstab
?defaults
nadefaults,acl
.setfacl
to polecenie, które powinieneś uruchomić z terminala.data/
należy zastąpić ścieżką do katalogu, który chcesz zmienić.Oznaczenie katalogu setgid (
g+s
) spowoduje, że nowe pliki odziedziczą własność grupy w katalogu, ale-g
opcja rsync spróbuje to zastąpić.źródło
Inne odpowiedzi mają zastosowanie w ogólnym przypadku, ale jak wspominasz, że rsync jest źródłem problemu, może być konieczne dostrojenie jego wywołania.
Na początek popularna
-a
flaga określa uprawnienia do kopiowania rsync; użyj-r
istead of-a
lub add-no-p
(dla braku synchronizacji uprawnień) i-no-g
(dla braku synchronizacji grupowej). Ponadto rsync obsługuje--chmod
flagę do zmiany uprawnień do nowo tworzonych plików.źródło
Twój umask jest niewłaściwy dla wymaganych uprawnień. Chcesz umask 002. Obecnie masz umask 022. Ponadto komentarz na temat ustawiania katalogu setgid jest poprawny, ale nie jestem pewien, czy własność grupy plików jest czymś, co chcesz zmienić, czy nie.
Uprawnienia do plików uniksowych są w rzeczywistości bardzo prostym modelem. Uważam, że listy ACL są całkowicie mylące. :-)
źródło