Potrzebuję plików utworzonych przez apache2, aby 002
domyślnie mieć umask , tj. Grupę rw.
Próbowałem umieścić umask 002
/ etc / apache2 / envvars i chociaż ten skrypt jest wykonywany jako część apache start up ( apache2ctl graceful
), umask nie działa. Przypuszczalnie gdzieś w dalszej fazie procesu uruchamiania (np. Kiedy użytkownik jest obniżony z wersji root
na www-data
), jest coś lepszego.
Przeczytałem posty o Fedorze i jeden sugerujący włożenie umask, /etc/init.d/apache2
ale żaden z nich nie dotyczy / działa w Debianie (Squeeze).
Możesz pomóc?
apache-2.2
umask
artfulrobot
źródło
źródło
drush cc all
jako mój użytkownik, ponieważ występuje błąd na wszystkich plikach pamięci podręcznej utworzonych z danych www.Odpowiedzi:
Aby upewnić się, że ustawienie umask obowiązuje, skorzystaj z prostego testu i nie używaj do tego innych aplikacji internetowych. Może się zdarzyć, że te aplikacje zmienią prawa niezależnie od ustawienia umask Apache.
Prosty testowy skrypt PHP:
Uważaj, aby użytkownik www-data miał dostęp do zapisu w folderze, w którym zainstalowałeś ten prosty plik testowy.
Aby uruchomić nowy umask, sprawdź, czy plik / etc / apache2 / envvars będzie używany w pliku początkowym Apache /etc/init.d/apache2:
Ustaw swój umask w / etc / apache2 / envvars:
Uruchom ponownie Apache:
Sprawdź różnicę:
źródło
Jeśli prowadzisz wiele witryn, możesz ustawić domyślne uprawnienia grupy za pomocą list kontroli dostępu (ACL) dla katalogu w następujący sposób:
Ustaw
setid
flagę, aby wymusić na wszystkich nowych plikach dziedziczenie grupy z katalogu:Dodaj nowe pliki
rw
do uprawnień grupy, np. abywww-data
można było zapisywać do plików SFTP wysyłanych przez użytkownika przesyłającego:Potwierdź, że ACL wygląda tak:
Utwórz plik, aby potwierdzić, że zadziałał:
źródło
setfacl --default --modify group:rwx wordpress
brakuje dwukropka. Powinno byćsetfacl --default --modify group::rwx wordpress
(Dla Debian Stretch korzystającego z systemd - Dzięki womble!)
Wstaw
UMask=0002
plik systemowej jednostki serwisowej Apache2, załaduj ponownie jednostkę serwisową, a następnie uruchom ponownie Apache2.źródło