Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔐 Prawidłowe uprawnienia plików i folderów WordPress: pełny przegląd 755 i 644

🔐 Prawidłowe uprawnienia plików i folderów WordPress: pełny przegląd 755 i 644

Przenieśli Państwo stronę na hosting i wtyczki przestały się instalować. Albo pliki multimedialne nie ładują się przez panel administracyjny. Albo aktualizacja rdzenia kończy się błędem „Could not create directory". Brzmi znajomo?

Przyczyna prawie zawsze jest jedna: nieprawidłowe uprawnienia do plików i folderów. Serwer lokalny (OpenServer, MAMP) działa w imieniu bieżącego użytkownika Windows/macOS i wybacza wszystko. Produkcyjny hosting na Linuxie, nie. Każdy plik i katalog ma właściciela oraz trzy poziomy uprawnień i jeśli serwer WWW nie może zapisać danych w odpowiednim folderze, strona psuje się po cichu lub wyświetla niezrozumiały błąd.

Poniżej wyjaśniamy, czym naprawdę są 755 i 644, jak ustawić je raz dla całej strony przez FileZilla oraz które pliki wymagają szczególnego podejścia.

💡 Szybki przegląd:

  • Co oznaczają liczby 755 i 644 oraz dlaczego 777 to dziura w zabezpieczeniach
  • Jak masowo ustawić uprawnienia przez FileZilla w 2 krokach: najpierw foldery, potem pliki
  • Jakie uprawnienia są potrzebne dla wp-config.php,.htaccess i folderu wp-content
  • Jak zrobić to samo przez SSH jedną komendą w 5 sekund

Co oznaczają uprawnienia i dlaczego 777 to katastrofa

Każdy plik i folder na serwerze Linux przechowuje trzy zestawy uprawnień: dla właściciela, dla grupy i dla wszystkich pozostałych. Liczba to suma bitów: 4 (odczyt) + 2 (zapis) + 1 (wykonanie dla folderów = wejście do środka).

755 dla folderów oznacza: właściciel może wszystko (7), grupa i pozostali, czytać i wchodzić (5). Folder jest dostępny dla serwera WWW do skanowania, tworzenia w nim plików i podfolderów, ale nikt postronny nie może go usunąć ani zmienić nazwy.

644 dla plików: właściciel czyta i zapisuje (6), pozostali tylko czytają (4). Pliki PHP są wykonywane przez interpreter, a nie przez system, więc bit wykonania nie jest im potrzebny.

777 (właściciel+grupa+inni = wszystko) to otwarte drzwi. Każdy proces na serwerze, w tym skrypty sąsiednich stron na hostingu współdzielonym, może czytać, modyfikować i usuwać Państwa pliki. Według danych WPScan za 2025 nieprawidłowe uprawnienia należą do pięciu najczęstszych wektorów włamań na WordPress na hostingach współdzielonych. Nigdy nie należy ustawiać 777; jeśli wtyczka lub motyw wymaga takich uprawnień, jest to czerwona flaga.

Jakie uprawnienia WordPress uznaje za prawidłowe

Oficjalna dokumentacja WordPress definiuje zalecane uprawnienia następująco:

Zasób

Uprawnienia

Dlaczego

Foldery (wszystkie poziomy zagnieżdżenia)

755

Serwer WWW musi wchodzić i tworzyć pliki wewnątrz

Pliki.php,.js,.css i pliki multimedialne

644

Odczyt dla wszystkich, zapis tylko dla właściciela

wp-config.php

600 lub 440

Zawiera hasła do bazy danych, odczyt tylko dla właściciela

.htaccess

644

Odczytywany przez Apache, ale nie powinien być dostępny z zewnątrz

Na większości hostingów właściciel systemu plików pokrywa się z użytkownikiem, od którego działa PHP (konfiguracja suPHP/FastCGI + suEXEC). W takiej konfiguracji uprawnienia 755/644 są wystarczające: WordPress może zapisywać dane w wp-content/uploads, aktualizować rdzeń i wtyczki, instalować motywy bez eskalacji do 777.

Proszę sprawdzić, czy to odpowiada Państwa hostingowi: proszę wejść do panelu administracyjnego → spróbować zainstalować dowolną bezpłatną wtyczkę. Jeśli zainstalowała się bez pytania o dostęp FTP, oznacza to, że schemat 755/644 działa i uprawnienia są już prawidłowe.

Jak ustawić uprawnienia przez FileZilla: krok po kroku

FileZilla to bezpłatny klient FTP, który potrafi masowo, rekurencyjnie zmieniać uprawnienia. Proszę pobrać go z oficjalnej strony, jeśli jeszcze go Państwo nie mają.

Krok 1: łączymy się i wchodzimy do katalogu głównego WordPress

Proszę połączyć się z hostingiem przez FTP (login/hasło, te same co do konta hostingowego, port 21). Na prawym panelu proszę przejść do folderu głównego strony. Tam, gdzie znajdują się wp-config.php, wp-content, wp-admin i wp-includes.

Krok 2: ustawiamy 755 na wszystkie foldery

Proszę zaznaczyć wszystkie pliki i foldery w katalogu głównym (Ctrl+A). Prawy przycisk myszy → „Uprawnienia pliku".

Menu kontekstowe FileZilla, opcja praw dostępu do pliku

W oknie, które się otworzy, w polu „Wartość numeryczna" proszę wpisać 755. Proszę zaznaczyć checkbox „Przekieruj do podkatalogów". Przełącznik proszę ustawić w pozycji „Zastosuj tylko do katalogów". Proszę kliknąć OK.

Okno dialogowe uprawnień FileZilla, 755 dla wszystkich katalogów rekurencyjnie

FileZilla przejdzie przez każdy folder i podfolder strony i ustawi 755. Proces trwa od kilku sekund do kilku minut w zależności od rozmiaru strony.

Krok 3: ustawiamy 644 na wszystkie pliki

Ponownie proszę zaznaczyć wszystko w katalogu głównym (Ctrl+A), ponownie prawy przycisk myszy → „Uprawnienia pliku".

Teraz proszę wpisać 644. Proszę zaznaczyć „Przekieruj do podkatalogów". Przełącznik, „Zastosuj tylko do plików". OK.

Okno dialogowe uprawnień FileZilla, 644 dla wszystkich plików rekurencyjnie

Gotowe. Dwa podejścia, foldery i pliki, i cała strona jest doprowadzona do standardu.

Szybki sposób przez SSH: polecenie find

Jeśli mają Państwo dostęp SSH do serwera, tę samą operację wykonuje się dwoma poleceniami w pięć sekund:

1find /path/to/wordpress -type d -exec chmod 755 {} \;
2find /path/to/wordpress -type f -exec chmod 644 {} \;

Pierwsze przechodzi przez wszystkie foldery (-type d) i ustawia 755. Drugie, przez wszystkie pliki (-type f) i ustawia 644. Proszę zastąpić /path/to/wordpress rzeczywistą ścieżką do katalogu głównego strony (zazwyczaj /home/username/public_html).

Następnie proszę osobno wzmocnić wp-config.php:

1chmod 600 /path/to/wordpress/wp-config.php

Oraz .htaccess, jeśli go Państwo mają (serwer Apache):

1chmod 644 /path/to/wordpress/.htaccess

Jeśli strona jest na Nginx, plik .htaccess nie istnieje, ten krok proszę pominąć.

Co robić, jeśli uprawnienia ponownie się psują

Sytuacja: ustawili Państwo 755/644, wszystko działało, a po tygodniu ten sam błąd. Przyczyną najczęściej jest proces działający z innego użytkownika.

Typowi winowajcy:

  • Zadania cron hostingu. Niektóre firmy hostingowe uruchamiają skrypty konserwacyjne z konta root, a one tworzą pliki z uprawnieniami, których serwer WWW nie może potem nadpisać. Rozwiązanie: proszę poprosić pomoc techniczną o skonfigurowanie crona w imieniu Państwa użytkownika.
  • Zewnętrzna wtyczka do kopii zapasowych. Zapisuje zrzuty i archiwa w wp-content w imieniu użytkownika, na którym jest uruchomiona. Proszę sprawdzić logi wtyczki; jeśli tworzy pliki nie w imieniu właściciela strony, proszę ją zastąpić alternatywą.
  • Wtyczka buforująca. Tworzy foldery cache z nieprawidłowymi uprawnieniami. Proszę wejść w ustawienia wtyczki i znaleźć przycisk „Wyczyść cache" lub „Reset uprawnień".

Uniwersalna szybka naprawa: powtórzyć procedurę z sekcji powyżej (FileZilla w 2 krokach lub dwa polecenia find). Nie rozwiąże to pierwotnej przyczyny, ale przywróci stronę do działania.

⁉️🤔 Często zadawane pytania

Co robić, jeśli po zmianie uprawnień strona padła z „białym ekranem śmierci"?

Biały ekran (WSOD) po masowej zmianie uprawnień to niezwykle rzadka sytuacja, ale możliwa. Po pierwsze: proszę włączyć WP_DEBUG w wp-config.php, dzięki temu zobaczą Państwo tekst błędu zamiast białego ekranu. Po drugie: proszę sprawdzić, czy nie ustawili Państwo 644 na foldery (foldery potrzebują bitu wykonania, czyli 5 na końcu). Proszę to poprawić jednym poleceniem find: find /path -type d -exec chmod 755 {} \;, to wystarczy w większości przypadków. Jeśli strona nie zadziała, proszę przywrócić kopię zapasową i zmieniać uprawnienia stopniowo: najpierw na wp-content, potem na katalog główny, obserwując reakcję.

Czy można ustawić uprawnienia przez wbudowany menedżer plików hostingu?

Tak, ale tylko dla pojedynczych plików i folderów. Hostingi cPanel oferują File Manager z opcją „Change Permissions" w menu kontekstowym. Jednak rekurencyjne ustawienie uprawnień na setki i tysiące plików przez interfejs WWW jest praktycznie niemożliwe; do operacji masowej proszę użyć FileZilla lub SSH.

Jakie uprawnienia powinien mieć folder wp-content/uploads?

Standardowe 755, jak wszystkie inne foldery. Jeśli wtyczka lub motyw tworzą podfoldery wewnątrz uploads i mają problemy, proszę sprawdzić właściciela procesu (powinien pokrywać się z właścicielem folderu), a nie podnosić uprawnienia do 777. Czasami problem rozwiązuje dodanie define('FS_METHOD', 'direct'); w wp-config.php.

Czy trzeba ustawiać uprawnienia na pliki wewnątrz wp-admin i wp-includes?

Tak, standardowe 644 dla plików, 755 dla folderów, tak jak dla całej reszty strony. Procedura z FileZilla (zaznaczenie wszystkiego w katalogu głównym) obsługuje je automatycznie.

Hosting wymaga 777 na jakieś foldery, czy to normalne?

Nie. Wymóg 777 to oznaka, że PHP na serwerze działa od użytkownika innego niż właściciel plików (na przykład mod_php bez suEXEC). W takiej konfiguracji WordPress nie może zapisywać danych w folderach bez „publicznego" dostępu. Opcje: zmienić hosting na taki, który używa suPHP/FastCGI (większość nowoczesnych) lub dodać define('FS_METHOD', 'direct'); w wp-config.php, w części przypadków to wystarczy.

Prawidłowe uprawnienia to fundament, a nie opcja

Ustawienie 755 na foldery i 644 na pliki zamyka najczęstszy kanał „niezrozumiałych" błędów podczas przenoszenia strony. Dwie minuty w FileZilla lub dwa polecenia w SSH oszczędzają godziny wpatrywania się w logi.

Jeśli strona jest na dobrym hostingu z suPHP/FastCGI, te uprawnienia wystarczą do wszystkiego: instalacji wtyczek, przesyłania multimediów, automatycznej aktualizacji rdzenia. Proszę nie podnosić uprawnień do 777, nawet jeśli wymaga tego instrukcja do starej wtyczki. I proszę dodać wp-config.php osobnym wpisem: chmod 600, znajduje się w nim hasło do bazy danych, dostęp osób postronnych nie jest tam potrzebny.