Zajrzałem tutaj, ale nie znalazłem żadnych szczegółów na temat najlepszych uprawnień do plików. Przyjrzałem się również niektórym pytaniom formularza WordPress tutaj, ale każdy, kto sugeruje 777, oczywiście potrzebuje lekcji bezpieczeństwa.
Krótko mówiąc, moje pytanie brzmi: Jakie uprawnienia powinienem mieć w następujących przypadkach:
- folder główny przechowujący całą zawartość WordPress
- wp-admin
- wp-content
- wp-obejmuje
a następnie wszystkie pliki w każdym z tych folderów?
Odpowiedzi:
Podczas instalacji WP możesz (serwer internetowy) potrzebować dostępu do zapisu plików. Dlatego prawa dostępu mogą wymagać utraty.
Po instalacji powinieneś zaostrzyć prawa dostępu , zgodnie z Hardening WordPress wszystkie pliki z wyjątkiem wp-content powinny być zapisywane tylko przez twoje konto użytkownika. wp-content musi być także zapisywalny przez www-data .
Być może chcesz później zmienić zawartość wp-content. W takim przypadku możesz
su
,Cokolwiek robisz, upewnij się, że pliki mają uprawnienia rw do danych www .
źródło
www-data
??? To naprawdę brzmi zupełnie nie jest bezpieczne.Udzielenie użytkownikowi pełnego dostępu do wszystkich plików wp
www-data
(czyli w tym przypadku użytkownika serwera WWW) może być niebezpieczne. Raczej NIE rób tego:Może być jednak użyteczny w momencie instalacji lub aktualizacji WordPressa i jego wtyczek. Ale kiedy skończysz, nie jest już dobrym pomysłem przechowywanie plików wp będących własnością serwera WWW.
Zasadniczo pozwala serwerowi WWW na umieszczenie lub zastąpienie dowolnego pliku w witrynie. Oznacza to, że istnieje możliwość przejęcia witryny, jeśli komuś uda się użyć serwera WWW (lub luki bezpieczeństwa w skrypcie .php) do umieszczenia niektórych plików w witrynie.
Aby chronić swoją witrynę przed takim atakiem, wykonaj następujące czynności:
Źródło i dodatkowe informacje: http://codex.wordpress.org/Hardening_WordPress
źródło
Dla tych, którzy mają folder główny Wordpress w swoim folderze domowym:
** Ubuntu / apache
KREDYT Przyznanie uprawnień do zapisu grupie danych www
Chcesz zadzwonić do
usermod
użytkownika. To by było:** Zakładając, że
www-data
grupa istniejeSprawdź, czy użytkownik jest w
www-data
grupie:groups yourUserName
Powinieneś dostać coś takiego:
** youUserGroupName jest zwykle podobna do twojej nazwy użytkownika
Rekurencyjnie zmieniaj własność grupy folderu wp-content, zachowując własność użytkownika
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
Zmień katalog na youWebSiteFolder / wp-content /
cd youWebSiteFolder/wp-content
Rekurencyjnie zmieniaj uprawnienia grupowe folderów i podfolderów, aby włączyć uprawnienia do zapisu:
find . -type d -exec chmod -R 775 {} \;
** zmieniono tryb `/ home / yourUserName / youWebSiteFolder / wp-content / 'z 0755 (rwxr-xr-x) na 0775 (rwxrwxr-x)
Rekurencyjnie zmieniaj uprawnienia grupowe plików i podplików, aby włączyć uprawnienia do zapisu:
find . -type f -exec chmod -R 664 {} \;
Wynik powinien wyglądać mniej więcej tak:
Równoważny:
chmod -R ug + rw foldername
Uprawnienia będą wynosić 664 dla plików lub 775 dla katalogów.
Ps, jeśli ktoś napotka błąd
'could not create directory'
podczas aktualizacji wtyczki, wykonaj:server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
gdy jesteś w katalogu głównym swojej domeny.
Zakładając:
wp-config.php
mapoświadczenia FTP na LocalHost
define('FS_METHOD','direct');
źródło
Najlepiej przeczytać dokumentację Wordpress na tym https://wordpress.org/support/article/changing-file-permissions/
źródło
Ustawiam uprawnienia na:
W moim przypadku stworzyłem określonego użytkownika dla WordPress, który różni się od domyślnego użytkownika apache, który uniemożliwia dostęp z sieci do plików należących do tego użytkownika.
Następnie daje użytkownikowi apache do obsługi folderu przesyłania i na końcu ustawia wystarczająco bezpieczne uprawnienia do plików i folderów.
EDYTOWANE
Jeśli używasz W3C Total Cache, powinieneś również wykonać następujące czynności:
To zadziała!
EDYTOWANE
Po pewnym czasie tworzenia witryn WordPress zalecam różne uprawnienia do plików w zależności od środowiska:
W produkcji nie dałbym dostępu użytkownikom do modyfikowania systemu plików, pozwolę im tylko na przesyłanie zasobów i dostęp do niektórych wtyczek określonych folderów do wykonywania kopii zapasowych itp. Ale zarządzanie projektami w Git i używanie kluczy wdrażania na serwer, to nie jest dobre wtyczki aktualizacji na etapie testowania ani produkcji. Zostawiam tutaj ustawienia pliku produkcyjnego:
www-data: www-data = użytkownik i grupa apache lub nginx
Inscenizacja będzie miała takie same uprawnienia produkcyjne, jak powinna być jej klon.
Wreszcie środowisko programistyczne będzie miało dostęp do aktualizacji wtyczek, tłumaczeń, wszystkiego ...
www-data: www-data = użytkownik apache lub nginx i zgrupuj swojego użytkownika: root-group = bieżący użytkownik i grupa główna
Te uprawnienia umożliwią dostęp do tworzenia w folderze
themes
iyour-plugin
folderze bez pytania o pozwolenie. Reszta treści będzie własnością użytkownika Apache lub Nginx, aby umożliwić WP zarządzanie systemem plików.Przed utworzeniem repozytorium git najpierw uruchom następujące polecenia:
źródło
Prawidłowe uprawnienia do pliku to 644 Prawidłowe uprawnienia do folderu to 755
Aby zmienić uprawnienia, użyj terminala i następujących poleceń.
755 dla folderów i 644 dla plików.
źródło
Myślę, że poniższe zasady są zalecane dla domyślnej witryny wordpress:
W przypadku folderów wewnątrz treści wp ustaw uprawnienia 0755:
Wtyczki chmod -R 0755
przesyła chmod -R 0755
Aktualizacja chmod -R 0755
Pozwól użytkownikowi apache być właścicielem powyższych katalogów wp-content:
przesłane apache
Chown upgrade apache
Chown wtyczki Apache
źródło
To zależy od wtyczek, których planujesz używać, ponieważ niektóre wtyczki zmieniają główny dokument WordPress. ale ogólnie polecam coś takiego w katalogu wordpress.
Spowoduje to przypisanie „root” (lub cokolwiek, którego używasz) jako użytkownika w każdym pojedynczym pliku / folderze, R oznacza rekurencyjny, więc po prostu nie zatrzymuje się w folderze „html”. jeśli nie użyłeś R, to dotyczy to tylko katalogu „html”.
Spowoduje to ustawienie właściciela / grupy „wp-content” na „www-data”, co pozwoli serwerowi internetowemu na zainstalowanie wtyczek poprzez panel administracyjny.
Spowoduje to ustawienie uprawnień dla każdego pojedynczego pliku w folderze „html” (w tym plików w podkatalogach) na 644, dzięki czemu osoby zewnętrzne nie będą mogły wykonać żadnego pliku, zmodyfikować żadnego pliku, grupa nie może wykonać żadnego pliku, zmodyfikować dowolny plik i tylko użytkownik może modyfikować / czytać pliki, ale nawet użytkownik nie może wykonać żadnego pliku. Jest to ważne, ponieważ zapobiega jakiemukolwiek wykonaniu w folderze „html”, również ponieważ właścicielem folderu html i wszystkich innych folderów oprócz folderu wp-content są „root” (lub użytkownik), dane www mogą „ t zmodyfikować dowolny plik poza folderem wp-content, więc nawet jeśli na serwerze WWW występuje jakakolwiek luka, a jeśli ktoś nieautoryzowany uzyskał dostęp do witryny, nie może usunąć strony głównej z wyjątkiem wtyczek.
Ograniczy to dostęp do pliku „wp-config.php” do użytkownika / grupy z tymi uprawnieniami rw-r -----.
A jeśli wtyczka lub aktualizacja narzeka, że nie może się zaktualizować, to uzyskaj dostęp do SSH i użyj tego polecenia, i udziel tymczasowe pozwolenie na „www-data” (serwer WWW) w celu aktualizacji / instalacji za pośrednictwem panelu administracyjnego, a następnie przywróć powrót do „root” lub użytkownika po zakończeniu.
I w Nginx (ta sama procedura dla apache), aby chronić folder wp-admin przed nieautoryzowanym dostępem i sondowaniem. apache2-utils jest wymagany do szyfrowania hasła, nawet jeśli masz zainstalowany nginx, pomiń c, jeśli planujesz dodać więcej użytkowników do tego samego pliku.
Teraz odwiedź tę lokalizację
Użyj tych kodów, aby zabezpieczyć folder „wp-admin” hasłem, teraz poprosi o hasło / nazwę użytkownika, jeśli spróbujesz uzyskać dostęp do „wp-admin”. Uwaga, tutaj używasz pliku „.htpasswd”, który zawiera zaszyfrowane hasło.
Teraz uruchom ponownie nginx.
źródło
Polecenia:
Gdzie użytkownik ftp to użytkownik, którego używasz do przesyłania plików
źródło
$(whoami)
zamiastftp-user
. Domyślnie twój bieżący użytkownik ( nie root ) jest użytkownikiem FTP, jeśli używasz własnego serwera (lokalny, vps, itp.)Aby absolutnie upewnić się, że witryna jest bezpieczna i korzystasz z odpowiednich uprawnień do swoich folderów, użyj wtyczki bezpieczeństwa takiej jak te:
https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
https://en-ca.wordpress.org/plugins/wordfence/
Wtyczki te skanują instalację Wordpress i powiadamiają o potencjalnych problemach. Ostrzegają one również przed niebezpiecznymi uprawnieniami do folderów. Oprócz tego wtyczki te zalecają, jakie uprawnienia należy przypisać do folderów.
źródło
źródło
Nie mogę powiedzieć, czy jest to poprawne, ale używam obrazu Bitnami w Google Compute App Engine. Mam problemy z wtyczkami i migracją, a po dalszych problemach z uprawnieniami chmod'ing znalazłem te trzy linie, które rozwiązały wszystkie moje problemy. Nie jestem pewien, czy to właściwy sposób, ale działało dla mnie.
źródło
W systemie OS X użyj tego polecenia:
źródło
Zdefiniuj w pliku wp_config.
chown - zmienia własność plików / katalogów. To znaczy. właściciel pliku / katalogu zmienia się na podany, ale nie modyfikuje uprawnień.
źródło
Na podstawie wszystkich odczytów i udręki na moich stronach i po zhakowaniu wymyśliłem powyższą listę, która zawiera uprawnienia do wtyczki bezpieczeństwa dla Wordpress o nazwie Wordfence. (Nie związany z tym)
W naszym przykładzie katalog główny dokumentu wordpress to /var/www/html/example.com/public_html
Otwórz uprawnienia, aby dane www mogły zapisywać do katalogu głównego dokumentu w następujący sposób:
Teraz z pulpitu nawigacyjnego w Twojej witrynie, jako administrator, możesz przeprowadzać aktualizacje.
Bezpieczna witryna po zakończeniu aktualizacji, wykonując następujące kroki:
Powyższe polecenie zmienia uprawnienia do wszystkiego w instalacji wordpress dla użytkownika FTP wordpress.
Powyższe polecenie zapewnia, że wtyczka bezpieczeństwa Wordfence ma dostęp do swoich dzienników. Katalog uploads jest również zapisywalny przez www-data.
Powyższe polecenie zapewnia również, że wtyczka bezpieczeństwa wymagała dostępu do odczytu i zapisu w celu prawidłowego działania.
Uprawnienia do katalogów i plików
Ustaw uprawnienia dla wp-config.php na 640, aby tylko wp-użytkownik mógł czytać ten plik i nikt inny. Uprawnienia 440 nie działały dla mnie z powyższą własnością pliku.
Automatyczne aktualizacje Wordpress przy użyciu SSH działały poprawnie z PHP5, ale zepsuły się z PHP7.0 z powodu problemów z pakietem php7.0-ssh2 z Ubuntu 16.04 i nie mogłem znaleźć sposobu, aby zainstalować odpowiednią wersję i sprawić, by działała. Na szczęście bardzo niezawodna wtyczka o nazwie ssh-sftp-updater-support (darmowa) umożliwia automatyczne aktualizacje przy użyciu SFTP bez potrzeby korzystania z libssh2. Tak więc powyższe uprawnienia nigdy nie muszą być poluzowane, z wyjątkiem rzadkich przypadków w razie potrzeby.
źródło