WordPress Permissions – How To Set Up Proper Filesystems And Ownerships
About The Author
Benjamin jest założycielem i głównym programistą Gambit. Jest twórcą Page Builder Sandwich i Stackable – Ultimate Gutenberg Blocks. Możesz znaleźć …Więcej oBenjamin↬
- 12 min read
- WordPress,Serwery,Bezpieczeństwo,Techniki (WP)
- Zapisane do czytania w trybie offline
- Share on Twitter, LinkedIn
Gdy ludzie mówią o bezpieczeństwie WordPress, uprawnienia do plików i własności są zazwyczaj ostatnią rzeczą na ich umysłach. Instalowanie wtyczek bezpieczeństwa jest dobrą praktyką i koniecznością dla każdej witryny WordPress. Jeśli jednak uprawnienia do systemu plików nie są skonfigurowane prawidłowo, większość środków bezpieczeństwa może być łatwo ominięta przez intruzów.
Uprawnienia i własność są dość ważne w instalacjach WordPress. Ich prawidłowe skonfigurowanie na serwerze internetowym powinno być pierwszą rzeczą, którą robisz po zainstalowaniu WordPressa. Posiadanie niewłaściwego zestawu uprawnień może spowodować fatalne błędy, które zatrzymają twoją witrynę martwą. Nieprawidłowe uprawnienia mogą również skompromitować twoją witrynę i uczynić ją podatną na ataki.
Dalsze czytanie na SmashingMag:
- What To Do When Your Website Goes Down
- How To Keep Your Coding Workflow Organized
- How to find out why your website stopped working
- 9 Steps To A Happy Relationship With Your Hosting Provider
Oprócz kwestii bezpieczeństwa, wiele innych problemów może wynikać z posiadania niewłaściwego zestawu uprawnień i własności. Czy kiedykolwiek napotkał pusty biały ekran, gdy próbuje załadować swoją stronę internetową po raz pierwszy? Albo czy kiedykolwiek otrzymałeś komunikat o błędzie podczas próby załadowania obrazów w programie do przesyłania multimediów? Poprawianie uprawnień i własności plików i folderów często naprawia tego typu problemy.
W tym artykule nauczymy Cię wszystkiego o uprawnieniach i własności systemu plików WordPress: czym są, dlaczego są ważne i jak je skonfigurować. Poznasz kilka podstawowych zasad, których przestrzegam, aby mój system plików pozostał nienaruszony. Omówimy również dwie najczęstsze konfiguracje serwera WordPress. Wyjaśnimy, czym się różnią i, co ważniejsze, jak ustawić odpowiednie uprawnienia i własność dla każdej z nich.
Terminal Vs. Klient FTP
Podczas tego artykułu, będziemy używać terminala do zmiany uprawnień i własności. Dlaczego zamiast tego nie użyć klienta FTP? Powodem jest to, że FTP jest nieco ograniczony dla naszych potrzeb. FTP może być używany do przesyłania plików i zmiany uprawnień do plików i folderów, ale nie może być używany do zmiany ustawień własności.
Aby wykonać polecenia wymienione w tym artykule, będziesz musiał być zalogowany do swojego serwera za pomocą polecenia SSH
. Jeśli nie jesteś zaznajomiony z terminalem i poleceniem SSH
, możesz się o nich dowiedzieć w artykule „Wprowadzenie do poleceń systemu Linux.”
Users And Groups
Przed wszystkim musimy szybko omówić, czym są użytkownicy i grupy, ponieważ idą one w parze podczas definiowania uprawnień.
Praktycznie rzecz ujmując, użytkownik jest kontem, które ma dostęp do komputera, a grupa jest identyfikatorem pewnego zestawu użytkowników. Oznacza to, że za każdym razem, gdy przesyłasz pliki za pomocą FTP, używasz konta użytkownika na swoim serwerze. I w zależności od tego, jak Twój host skonfigurował Twoje konto, Ty (użytkownik) możesz należeć do jednej lub więcej grup. Użytkownicy i grupy są jak użytkownicy i role w WordPress. Oba są koncepcyjnie takie same, z wyjątkiem tego, że pierwszy jest używany na serwerze.
Użytkownicy i grupy są ważne, ponieważ pomagają zidentyfikować uprawnienia dla wszystkich naszych plików i folderów. Właściciele pliku zazwyczaj mają pełne uprawnienia do niego; inni użytkownicy, którzy należą do tej samej grupy, mają mniejsze uprawnienia do niego; podczas gdy wszyscy inni mogą nie mieć żadnych uprawnień do niego. Te przywileje są tym, co nazywamy uprawnieniami.
Czym są uprawnienia do plików?
Uprawnienia dyktują, co użytkownicy mogą zrobić z plikiem. Uprawnienie jest reprezentowane przez zestaw liczb, takich jak 644
lub 777
, określanych jako tryb uprawnień. Jeśli używałeś wtyczek w WordPress wcześniej, to najprawdopodobniej zostałeś poproszony przez niektóre z nich o zmianę uprawnień do pliku lub katalogu, ponieważ wtyczka nie może pisać do niego. Zmieniając uprawnienia pliku, pozwalasz serwerowi WWW uzyskać dostęp do tego pliku lub folderu.
Pomyśl o trybie uprawnień jako zestawie oświadczeń „kto może robić co”, w którym każda cyfra odpowiada części „kto” oświadczenia:
- Pierwsza cyfra. Co może zrobić użytkownik konta, które jest właścicielem pliku
- Druga cyfra. Co mogą zrobić inne konta użytkowników w grupie właściciela
- Trzecia cyfra. Co mogą zrobić konta użytkowników wszystkich pozostałych (w tym odwiedzających witrynę)
Następnie, liczba odpowiada części „co” wypowiedzi i jest sumą kombinacji dowolnych z tych cyfr:
-
4
Odczytać plik, lub odczytać nazwy plików w folderze -
2
Napisać lub zmodyfikować plik, lub zmodyfikować zawartość folderu -
1
Wykonać lub uruchomić plik, lub uzyskać dostęp do plików w folderze
Cyfry te są przywilejami, które są przypisane do „kto” w trybie uprawnień. Zauważ na powyższej liście, że przywileje oznaczają coś innego dla plików i folderów.
Używanie właściwego trybu uprawnień jest dość ważne. Aby lepiej to zobrazować, pomyśl ponownie o użytkownikach i rolach w WordPressie. W witrynie WordPress współpracownicy i administratorzy mają różne zestawy możliwości. Współtwórcy mogą tworzyć nowe posty na blogu, ale nie mogą dodawać wtyczek. Administratorzy, z drugiej strony, mogą dodawać wtyczki, a także tworzyć posty na blogu. Administratorzy mogą nawet zmieniać wygląd strony, jeśli chcą. Wyraźna linia oddziela to, co mogą robić użytkownicy w różnych rolach. Tak samo jest z trybami uprawnień, z tą różnicą, że zamiast zajmować się postami na blogu i opcjami motywu, zajmujemy się plikami i folderami na serwerze.
Zmiana trybów uprawnień
Klienci FTP zwykle udostępniają interfejs, w którym można wygodnie zmienić tryb uprawnień plików i folderów. Oto zrzut ekranu interfejsu w moim kliencie FTP:
Przykład interfejsu trybu uprawnień.
Jeśli masz dostęp do terminala swojego serwera, możesz również użyć polecenia chmod
do zmiany trybu uprawnień pliku lub folderu:
sudo chmod 644 <file>
Aby zmienić tryby uprawnień wszystkich plików lub folderów, użyj polecenia chmod
w połączeniu z poleceniem find
. Na przykład możesz użyć tego, aby zmienić wszystkie pliki na 644
:
sudo find . -type f -exec chmod 644 {} +
Albo użyj tego, aby zmienić wszystkie foldery na 755
:
sudo find . -type d -exec chmod 755 {} +
Refer to „Changing File Permissions in the WordPress Codex” for a guide to changing permission modes.
Różnica między 644 a 777
Przyjrzyjrzyjmy się niektórym trybom uprawnień i ich wpływowi na naszą witrynę.
Co oznaczałby skrypt PHP z trybem uprawnień 644
? Podążając za powyższym wyjaśnieniem, jak działają tryby uprawnień, możemy rozszyfrować, co ten tryb pozwala użytkownikom robić z naszym skryptem:
- Uprawnienia właściciela to „odczyt” (4) + „zapis” (2) =
6
- Uprawnienia grupy właściciela to „odczyt” (4) =
4
- Uprawnienia wszystkich innych to „odczyt” (4) =
4
W prostym języku oznacza to, że:
- jeśli jesteśmy właścicielami skryptu, możemy go czytać i modyfikować;
- wszyscy inni mogą go tylko czytać.
Jak widzimy, 644
jest dobrym trybem uprawnień dla naszego skryptu PHP. Możemy wprowadzać w nim zmiany, a nasz serwer WWW może go czytać.
Przyjrzyjrzyjmy się teraz folderom. Co by było, gdybyśmy posiadali folder, który miałby tryb uprawnień 777
? Ten tryb uprawnień może być podzielony w następujący sposób:
- Uprawnienia właściciela to „odczyt” (4) + „zapis” (2) + „wykonaj” (1) =
7
- Uprawnienia grupy właściciela to „odczyt” (4) + „zapis” (2) + „wykonaj” (1) =
7
. - Przywileje wszystkich innych to „read” (4) + „write” (2) + „execute” (1) =
7
To oznacza, że
- każdy może uzyskać listę nazw plików w naszym folderze;
- każdy może tworzyć, modyfikować i usuwać dowolny plik w naszym folderze;
- każdy może uzyskać dostęp do plików w naszym folderze.
Jest oczywiste, że 777
jest złym trybem uprawnień dla czegokolwiek na naszej witrynie WordPress, ponieważ każdy odwiedzający mógłby dodawać pliki do naszego katalogu, a nawet usuwać skrypty. Co gorsza, każdy byłby w stanie umieścić złośliwy kod i skompromitować naszą stronę.
Konfiguracje serwera WordPress
Teraz wiemy o uprawnieniach i jak je odczytać. Ale przed przystąpieniem do zmiany wszystkich naszych uprawnień, musimy zrozumieć, jak nasz serwer jest skonfigurowany. Ponieważ uprawnienia dotyczą kont użytkowników i grup, musimy wiedzieć, jak działa nasza witryna WordPress.
Jest tam wiele różnych konfiguracji serwera. Różne konfiguracje potrzebują różnych zestawów trybów uprawnień, aby WordPress działał poprawnie i bezpiecznie. Porozmawiamy tylko o dwóch najbardziej powszechnych konfiguracjach i odpowiednich dla nich uprawnieniach:
- Standardowa konfiguracja serwera:
- Masz konto użytkownika.
- Twój serwer WWW działa jako inne konto użytkownika.
- Konfiguracja serwera współdzielonego lub konfiguracja
suEXEC
:- Masz konto użytkownika.
- Inne osoby korzystające z serwera mają konta użytkowników i mogą współdzielić tę samą grupę z Twoim kontem użytkownika.
- Twój serwer WWW działa jako właściciel Twoich plików WordPress.
Główna różnica między tymi dwoma polega na tym, jak działa serwer WWW.
Permissions For A Standard WordPress Server Configuration
Standardowe konfiguracje WordPressa wymagają nieco więcej pracy niż konfiguracje serwera współdzielonego, ponieważ serwer WWW nie ma związku z naszym kontem użytkownika.
Własności plików i folderów dla WordPress
Po pierwsze, musimy dostosować własności plików i folderów naszych plików WordPress. Musimy się upewnić, że:
- że twoje konto użytkownika jest właścicielem wszystkich plików i folderów WordPressa,
- że twoje konto użytkownika i konto użytkownika serwera WWW należą do tej samej grupy.
Aby dowiedzieć się, do jakich grup należy twoje konto użytkownika, możesz użyć tego polecenia w terminalu swojego serwera:
groups
Aby dowiedzieć się, do jakich grup należy twój serwer WWW, możesz tymczasowo wstawić ten fragment PHP do jednego ze skryptów WordPressa:
echo exec( 'groups' );
Jeśli twój użytkownik i serwer WWW nie należą do tej samej grupy, możesz użyć następującego polecenia w terminalu, aby dodać swojego użytkownika do jednej z grup twojego serwera WWW:
sudo usermod -a -G <a-common-group-name> myuser
Na koniec, aby upewnić się, że wszystko w naszym folderze WordPress należy do naszego konta użytkownika i ma grupę współdzieloną, którą właśnie dodaliśmy, wykonaj to polecenie w swoim folderze WordPress:
sudo find . -exec chown myuser:a-common-group-name {} +
Permissions for WordPress
Wszystkie nasze pliki i foldery powinny mieć teraz prawidłową własność. Teraz nadszedł czas, aby dostosować tryby uprawnień. Aby uprościć sprawę, będziesz musiał zapamiętać tylko następujące rzeczy:
- Wszystkie pliki powinny być
664
. - Wszystkie foldery powinny być
775
. -
wp-config.php
powinny być660
.
Oto, co próbujemy osiągnąć za pomocą tego zestawu trybów uprawnień:
- Nasze konto użytkownika może czytać i modyfikować nasze pliki.
- WordPress (za pośrednictwem naszego serwera WWW) może czytać i modyfikować nasze skrypty.
- WordPress może tworzyć, modyfikować lub usuwać pliki i foldery.
- Inni ludzie nie mogą zobaczyć naszych poświadczeń bazy danych w
wp-config.php
.
Możesz pomyśleć, że pozwolenie WordPressowi na pełne uprawnienia z naszymi folderami nie jest bezpieczne. Nie martw się – robimy to, ponieważ WordPress potrzebuje pewnych funkcji do tworzenia i modyfikowania plików. WordPress pozwala nam wgrywać i usuwać motywy i wtyczki, a nawet edytować skrypty i style z zaplecza administracyjnego. Bez tego typu uprawnień musielibyśmy ręcznie przesyłać motywy i wtyczki za każdym razem za pomocą FTP.
Możesz użyć swojego klienta FTP, aby zmienić tryby uprawnień, lub możesz użyć następujących poleceń w swoim katalogu WordPress, aby szybko dostosować uprawnienia wszystkich plików i folderów:
sudo find . -type f -exec chmod 664 {} +sudo find . -type d -exec chmod 775 {} +sudo chmod 660 wp-config.php
Zauważ, że niektóre serwery internetowe są bardziej rygorystyczne niż inne. Jeśli twój jest ścisły, to ustawienie twojego wp-config.php
na 660
może zatrzymać twoją stronę od pracy. W tym przypadku, po prostu zostaw to jako 664
.
Permissions For A Shared Server Configuration Or SuEXEC Configuration
Permissions for shared server configurations are easier to implement. Nie będziemy się rozwodzić nad własnością, ponieważ serwer WWW działa jako właściciel naszych plików i folderów. Ponieważ nasze konto użytkownika i serwer WWW mają takie same uprawnienia (obaj są właścicielami), możemy od razu przejść do modyfikowania trybów uprawnień:
- Wszystkie pliki powinny być
644
. - Wszystkie foldery powinny być
755
. -
wp-config.php
powinny być600
.
Podobnie do poprzedniego zestawu trybów uprawnień, te rozkładają się w następujący sposób:
- Nasze konto użytkownika może czytać i modyfikować nasze pliki.
- WordPress (poprzez nasz serwer WWW i jako właściciel konta) może czytać i modyfikować nasze skrypty.
- WordPress może tworzyć, modyfikować lub usuwać pliki lub foldery.
- Inne osoby nie mogą zobaczyć naszych danych uwierzytelniających bazy danych w
wp-config.php
.
Ponownie, możesz użyć klienta FTP, aby zmienić tryby uprawnień, lub możesz użyć następujących poleceń w swoim katalogu WordPress, aby szybko dostosować uprawnienia wszystkich swoich plików i folderów:
sudo find . -type f -exec chmod 644 {} +sudo find . -type d -exec chmod 755 {} +sudo chmod 600 wp-config.php
Podobnie do standardowej konfiguracji serwera WordPress, Twój serwer może być bardziej rygorystyczny niż inne i może nie pozwolić, aby wp-config.php
było 600
. W tym przypadku możesz dostosować go do bardziej pobłażliwego 640
; jeśli to nadal nie działa, to użyj 644
.
Zawsze postępuj zgodnie z tymi wytycznymi, a twoje pliki WordPress powinny być bezpieczne przed intruzami.
Common Pitfalls
Powszechnym błędem popełnianym przez ludzi jest ustawienie folderu uploads
na 777
. Niektórzy robią to, ponieważ dostają błąd podczas próby załadowania obrazu do swojej witryny, a 777
szybko naprawia ten problem. Ale nigdy nie dawaj nieograniczonego dostępu wszystkim, w przeciwnym razie sprawisz, że serwer WWW będzie podatny na ataki. Jeśli postępujesz zgodnie z wytycznymi zawartymi w tym artykule, to nie powinieneś mieć żadnych problemów z przesyłaniem plików do swojej witryny.
Czasami jednak, wtyczka zażąda, aby ustawić plik na 777
. Na tych okazjach, można tymczasowo ustawić go na 777
, ale upewnij się, aby ustawić go z powrotem do oryginalnego trybu uprawnień, kiedy jesteś done.
Wniosek
Dowiedzieliśmy się teraz o właściwych uprawnień i własności plików witryny WordPress. Dowiedzieliśmy się również, aby uniknąć trybu uprawnień 777
ze względu na to, jak zagraża serwerowi WWW.