Przygotowuję się do wdrożenia witryny Drupal 7 i nie mogę znaleźć żadnej dokumentacji na temat tego, jakie powinny być zalecane zalecane dla plików i katalogów uprawnienia dotyczące bezpieczeństwa.
Konkretnie default/files/
(także podkatalogi?) settings.php
, .htaccess
I coś jeszcze I powinien być świadomy.
Odpowiedzi:
Twój serwer internetowy powinien być w stanie odczytać wszystkie pliki, ale nie może do nich pisać. Jeśli witryna wymaga przesyłania plików, należy zezwolić serwerowi na zapis tylko w tym jednym folderze.
Więcej informacji o tym, jak to skonfigurować, a także o niektórych rzeczach, które mogą się zdarzyć, jeśli tego nie zrobisz, jest dostępnych w dokumentach Drupal .
źródło
Ta strona z drupalem, jak wiele innych, jest bardzo długa i myląca. Ale zawiera ten post Jasona, który trafił w sedno:
źródło
Moją praktyką związaną z tworzeniem nowej witryny Drupal na serwerze jest posiadanie użytkownika, który jest częścią grupy serwerów WWW (zazwyczaj Apache) i posiadanie przez niego wszystkich plików Drupal. W systemie Ubuntu są to polecenia umożliwiające skonfigurowanie:
Kiedy już skonfiguruję, zaloguję się jako ten użytkownik i zainstaluję Drupal na / var / www / example / docroot lub podobnym, a następnie ręcznie utworzę katalog plików i skopiuję plik settings.php. Ponieważ logujemy się jako nasz przykładowy użytkownik przed kopiowaniem w Drupal, nasza własność i uprawnienia do plików powinny być automatycznie skonfigurowane we wszystkich podstawowych plikach i skryptach Drupal (w tym .htaccess).
Teraz skonfigurujmy katalog plików.
Następnie skonfigurujemy uprawnienia, aby serwer sieciowy zawsze mógł zapisywać do dowolnego pliku znajdującego się w tym katalogu. Robimy to za pomocą 2775 w naszym poleceniu chmod. 2 oznacza, że identyfikator grupy zostanie zachowany dla wszystkich nowych plików utworzonych w tym katalogu. Oznacza to, że www - data zawsze będzie grupą na dowolnych plikach, zapewniając w ten sposób, że serwer WWW i użytkownik zawsze będą mieć uprawnienia do zapisu do wszystkich nowych plików umieszczonych w tym katalogu. Pierwsze 7 oznacza, że właściciel (przykład) może R (odczyt) W (zapis) i X (wykonać) dowolne pliki tutaj. Druga 7 oznacza, że grupa (www-data) może również RW i X dowolne pliki w tym katalogu. Wreszcie 5 oznacza, że inni użytkownicy mogą R i X plików, ale nie mogą pisać.
Jeśli w tym katalogu są jakieś pliki, upewnij się, że serwer WWW ma na nich uprawnienia do zapisu.
Teraz Drupal jest gotowy do instalacji. Po zakończeniu BARDZO ważne jest, aby wrócić do settings.php i upewnić się, że wszyscy użytkownicy mają tylko uprawnienia do odczytu.
Otóż to! Ta konfiguracja pozwala uniknąć sytuacji, w których użytkownik będący właścicielem katalogu lub serwer WWW nie może zapisywać / zmieniać / usuwać plików w katalogu plików.
źródło
Serwer plików powinien zapisywać folder plików Drupal. Najbezpieczniejszym sposobem na to jest zmiana grupy i umożliwienie jej zapisywania w grupie, w następujący sposób:
Pomijając folder przesyłania plików, najbezpieczniejszym jest chmod 644 dla wszystkich plików, 755 dla katalogów.
Można to zrobić w następujący sposób (po uruchomieniu w folderze witryny Drupal,
.
jest to dla bieżącej ścieżki):Pamiętaj, że będziesz musiał ustawić
chmod g+w
ponownie po uruchomieniu powyższego polecenia, ponieważ zresetują one chmod na wszystkich plikach i folderach.źródło
chgrp -R www-data sites/*/files
ichmod -R g+w sites/*/files
pozbywam się błędów strony statusu.Jakakolwiek rada dla „chmod blah” lub „chown X” nie ma znaczenia bez wiedzy: jaki domyślny użytkownik: grupa znajduje się w plikach i jaki użytkownik i grupy działa jako twój serwer WWW.
Drupal Docs, z którymi inni się powiązali, są dość dobre w tym temacie, ale jednym z zasobów jest moduł Security Review Module, który pomaga upewnić się, że wszystko zostało ustawione poprawnie.
źródło
Odpowiem, biorąc pod uwagę przypadek, w którym pliki są tworzone na serwerze za pomocą FTP, przy użyciu poświadczeń innych niż te, pod którymi działa serwer WWW (zwykle Apache działa jak nikt / nikt). Oznacza to, że użytkownik, który jest właścicielem plików utworzonych ręcznie przed uruchomieniem instalatora Drupal (który obejmuje również pliki przesłane na serwer z archiwum Drupal), nie jest użytkownikiem używanym do uruchomienia serwera WWW (ani nazwa użytkownika, ani grupa nie są zgodne) . Ten scenariusz dotyczy również przypadku, gdy pliki te są tworzone przy użyciu protokołu SSH.
default/files
katalog) musi być (dla użytkownika przypisanego do procesów serwera WWW, który jest następnie użytkownikiem przypisanym do skryptów PHP działających na tym serwerze):default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>
)źródło
Zalecane uprawnienia do plików / katalogów:
Zalecane prawo własności do pliku / katalogu:
Oto zmienne, które kontrolują domyślne uprawnienia katalogu / pliku dla nowych elementów:
Oto skrypt do ustawiania uprawnień: fix-permissions.sh
Czytaj więcej:
Oto skrypt, którego używam do naprawy uprawnień na zdalnym hoście dla katalogów publicznych / prywatnych:
Uwaga: powyższy kod będzie próbował pobrać grupę Apache i ustawić ją na
GET_HTTP_GROUP
zmienną.źródło
Ten skrypt powłoki znajduje się na dole tej strony: https://www.drupal.org/node/244924
Uruchamiam go od czasu do czasu, aby upewnić się, że moje uprawnienia są skonfigurowane poprawnie.
źródło
Również jeśli używasz fastcgi, php działa jako użytkownik i będzie miał dostęp do wszystkich plików, do których użytkownik ma dostęp, chyba że celowo spróbujesz tego uniknąć.
źródło
Pomogło mi to z problemami związanymi z uprawnieniami OSX. Znalazłem go w https://www.drupal.org/node/244924#comment-3741738 przez użytkownika protoplazmy. Byłem jak on, który ma problemy po migracji.
źródło
Istnieje moduł o nazwie Przegląd bezpieczeństwa, który sprawdza, czy witryna jest bezpieczna, czy nie. Znalazłem również bardzo dobry link do ustawiania uprawnień do witryny.
źródło