Uprawnienia Chmod to cyfrowe oznaczenia w systemach Linux/Unix określające, kto może odczytywać, zapisywać i uruchamiać pliki oraz foldery na serwerze. Odpowiednie ustawienie tych praw (np. 755 dla katalogów czy 644 dla plików) chroni Twoją stronę internetową przed nieautoryzowanym dostępem i atakami hakerskimi. W tym poradniku wyjaśniamy, jak działają poszczególne tryby oraz jak krok po kroku zmienić je za pomocą klienta FTP, menedżera plików w hostingu lub terminala SSH.

Najważniejsze informacje

  • Podział na trzy grupy: Uprawnienia Chmod określają prawa dostępu dla właściciela pliku (User), grupy użytkowników (Group) oraz wszystkich pozostałych osób (Others). Każda z tych grup posiada niezależnie zdefiniowany poziom dostępu.
  • Logika liczbowa: Wartości numeryczne (np. 755) powstają z sumowania wag trzech podstawowych akcji: odczytu (wartość 4), zapisu (wartość 2) oraz wykonania (wartość 1).
  • Zagrożenie ze strony 777: Nadanie uprawnień 777 oznacza, że absolutnie każdy użytkownik serwera może modyfikować, usuwać lub uruchamiać dany plik, co jest krytycznym błędem bezpieczeństwa.
  • Zalecane standardy: Dla większości systemów CMS, takich jak WordPress, standardem bezpieczeństwa są uprawnienia 755 dla katalogów oraz 644 dla plików, co zapewnia stabilne i bezpieczne środowisko pracy.

Co to jest Chmod i jak działają uprawnienia plików w systemie Linux?

Systemy operacyjne z rodziny Linux, na których opiera się zdecydowana większość serwerów hostingowych na świecie, zostały zaprojektowane jako środowiska wieloużytkownikowe. Oznacza to, że na jednym serwerze może istnieć wiele kont, a procesy systemowe (takie jak serwer WWW Apache czy Nginx) działają jako odrębni użytkownicy. Aby zapobiec sytuacji, w której jeden użytkownik modyfikuje lub podgląda pliki należące do innego, wprowadzono system uprawnień. Narzędziem służącym do ich modyfikacji jest polecenie chmod (skrót od change mode).

Każdy plik i katalog na serwerze opisany jest przez zestaw uprawnień podzielonych na trzy grupy użytkowników:

  • Właściciel (User / Owner) – zazwyczaj jest to twórca pliku lub konto FTP, przez które plik został wgrany na serwer.
  • Grupa (Group) – zbiór użytkowników serwera, którzy dzielą wspólne uprawnienia (np. programiści pracujący nad jednym projektem).
  • Inni (Others / Public) – wszyscy pozostali użytkownicy systemu oraz, co najważniejsze, anonimowi odwiedzający Twoją stronę www (reprezentowani przez proces serwera WWW).

Dla każdej z tych trzech grup możemy przydzielić trzy rodzaje praw dostępu:

  • Odczyt (Read - r): pozwala na przeglądanie zawartości pliku lub listowanie zawartości katalogu.
  • Zapis (Write - w): umożliwia edycję, modyfikację, tworzenie nowych plików w katalogu oraz ich usuwanie.
  • Wykonanie (Execute - x): pozwala na uruchamianie pliku jako programu/skryptu lub na wejście do wnętrza katalogu (wykonanie operacji przejścia).

Jak obliczać uprawnienia Chmod? Matematyka kryjąca się za cyframi

W systemach Linux uprawnienia reprezentowane są na dwa sposoby: symboliczny (np. -rwxr-xr-x) oraz numeryczny (np. 755). Zrozumienie zapisu numerycznego jest kluczowe, ponieważ to właśnie nim najczęściej posługujemy się podczas konfiguracji hostingu. Każdemu prawu przypisana jest konkretna wartość liczbowa oparta na systemie ósemkowym:

  • Odczyt (r) = 4
  • Zapis (w) = 2
  • Wykonanie (x) = 1
  • Brak uprawnień (-) = 0

Aby obliczyć cyfrę dla danej grupy, po prostu sumujemy wartości przyznanych jej uprawnień. Przykładowo, jeśli właściciel ma mieć pełne prawa (odczyt, zapis i wykonanie), sumujemy: 4 + 2 + 1 = 7. Jeśli grupa ma mieć tylko prawo do odczytu i wykonania, sumujemy: 4 + 0 + 1 = 5. Jeśli pozostali użytkownicy nie mają mieć żadnych praw, ich wartość wynosi 0.

Łącząc te trzy cyfry w jeden ciąg (Właściciel-Grupa-Inni), otrzymujemy pełne oznaczenie Chmod. Przykładowo, zapis 755 oznacza pełne prawa dla właściciela (7) oraz prawa do odczytu i wykonania dla grupy (5) oraz innych (5).

Szczegółowe omówienie najpopularniejszych uprawnień: 777, 755, 600, 775

W poniższej tabeli zestawiono cztery najpopularniejsze konfiguracje uprawnień Chmod wraz z ich dokładnym przeznaczeniem oraz poziomem bezpieczeństwa, jaki gwarantują na Twoim serwerze. Pomoże Ci to szybko ocenić, który zestaw praw będzie optymalny dla konkretnego pliku lub katalogu w strukturze Twojej witryny.

Kod Chmod Właściciel (User) Grupa (Group) Inni (Others) Zastosowanie i bezpieczeństwo
777 Odczyt, Zapis, Wykonanie (7) Odczyt, Zapis, Wykonanie (7) Odczyt, Zapis, Wykonanie (7) Krytycznie niebezpieczne. Pełny dostęp dla każdego. Stosować wyłącznie tymczasowo w celach diagnostycznych.
755 Odczyt, Zapis, Wykonanie (7) Odczyt, Wykonanie (5) Odczyt, Wykonanie (5) Standard dla katalogów na serwerze. Bezpieczne i zalecane dla folderów CMS (np. WordPress).
775 Odczyt, Zapis, Wykonanie (7) Odczyt, Zapis, Wykonanie (7) Odczyt, Wykonanie (5) Używane w środowiskach deweloperskich, gdzie grupa programistów musi wspólnie edytować pliki w katalogach.
600 Odczyt, Zapis (6) Brak uprawnień (0) Brak uprawnień (0) Bardzo wysokie bezpieczeństwo. Idealne dla poufnych plików konfiguracyjnych (np. zawierających hasła do baz danych).

Uprawnienia 777 – dlaczego są niebezpieczne?

Uprawnienia 777 oznaczają całkowity brak kontroli nad plikiem lub katalogiem. Każdy proces na serwerze, w tym złośliwy skrypt uruchomiony przez innego użytkownika na tym samym serwerze współdzielonym, może bez przeszkód nadpisać, zmodyfikować lub usunąć taki element. Hakerzy aktywnie skanują serwery w poszukiwaniu katalogów z prawami 777, aby wgrać do nich tzw. webshell (złośliwy skrypt dający pełny dostęp do konta). Z tego powodu żaden profesjonalny administrator nie pozwala na stałe utrzymywanie takich uprawnień.

Ważne ostrzeżenie! Nigdy nie pozostawiaj uprawnień 777 na serwerze produkcyjnym. Jeżeli jakaś wtyczka lub skrypt wymaga tymczasowego zapisu, po zakończeniu operacji instalacji lub aktualizacji natychmiast przywróć bezpieczne uprawnienia (np. 755 dla katalogu lub 644 dla pliku). Pozostawienie otwartego dostępu 777 to najczęstsza przyczyna infekcji witryn złośliwym oprogramowaniem typu malware.

Uprawnienia 755 – standard dla katalogów

W systemach Unix katalogi wymagają uprawnień do wykonania (x), aby można było do nich „wejść” (wykonać operację przejścia). Ustawienie 755 gwarantuje, że właściciel (czyli Twoje konto FTP) może w pełni zarządzać katalogiem – tworzyć nowe pliki, usuwać je i edytować. Pozostali użytkownicy oraz serwer WWW mogą jedynie przeglądać zawartość katalogu i uruchamiać znajdujące się tam skrypty, ale nie mogą niczego usunąć ani zmodyfikować. To optymalny standard dla większości folderów na Twoim hostingu.

Uprawnienia 600 – maksymalna prywatność dla wrażliwych danych

Uprawienia typu 600 odcinają dostęp wszystkim poza bezpośrednim właścicielem pliku. Grupa oraz inni użytkownicy widzą ten plik jako całkowicie zablokowany (nie mogą go nawet odczytać). To idealne rozwiązanie dla plików takich jak klucze prywatne SSH, pliki z hasłami do baz danych (np. wp-config.php w WordPressie) czy pliki konfiguracyjne aplikacji, które nie powinny być widoczne dla nikogo postronnego.

Uprawnienia 775 – współpraca w grupie

To modyfikacja standardu 755, w której uprawnienia do zapisu otrzymują również członkowie grupy, do której należy plik lub katalog. Jest to niezwykle przydatne w sytuacjach, gdy nad jedną stroną internetową lub aplikacją pracuje zespół deweloperów posiadających osobne konta na serwerze, ale przypisanych do tej samej grupy systemowej. Dzięki temu mogą oni bez przeszkód edytować nawzajem swoje pliki bez konieczności ciągłej zmiany właściciela dżungli plików.

Jak krok po kroku ustawić uprawnienia plików i folderów?

Istnieje kilka sprawdzonych metod na zmianę uprawnień plików na serwerze hostingowym. Wybór zależy od Twoich umiejętności technicznych oraz narzędzi, którymi dysponujesz. Poniżej opisujemy trzy najpopularniejsze sposoby.

Metoda 1: Zmiana uprawnień przez klienta FTP (np. FileZilla)

To najprostsza metoda dla osób początkujących, które zarządzają swoją stroną za pomocą tradycyjnego klienta FTP.

  1. Uruchom program FileZilla i połącz się ze swoim serwerem FTP.
  2. W prawym oknie programu przejdź do katalogu ze swoją stroną (zazwyczaj public_html).
  3. Kliknij prawym przyciskiem myszy na plik lub katalog, którego uprawnienia chcesz zmienić, i wybierz opcję Prawa pliku... (lub File permissions...).
  4. W nowym oknie możesz zaznaczyć odpowiednie pola wyboru (odczyt, zapis, wykonanie) lub po prostu wpisać wartość numeryczną (np. 755) w polu Wartość numeryczna.
  5. Jeśli zmieniasz uprawnienia dla katalogu i chcesz, aby odnosiły się one również do wszystkich plików i podfolderów wewnątrz niego, zaznacz opcję Przejdź do podkatalogów. Możesz tam wybrać, czy zmiany mają dotyczyć tylko plików, tylko katalogów, czy obu tych elementów jednocześnie.
  6. Kliknij OK, aby zapisać zmiany.

Metoda 2: Zmiana uprawnień w panelu zarządzania hostingiem (cPanel / DirectAdmin)

Większość nowoczesnych hostingów oferuje webowy menedżer plików bezpośrednio w panelu klienta.

  1. Zaloguj się do swojego panelu hostingowego (np. cPanel lub DirectAdmin).
  2. Znajdź i uruchom narzędzie o nazwie Menedżer plików (File Manager).
  3. Przejdź do folderu zawierającego pliki Twojej strony internetowej.
  4. Zaznacz plik lub folder, kliknij na niego prawym przyciskiem myszy i wybierz opcję Change Permissions (Zmień uprawnienia) – w niektórych panelach opcja ta znajduje się na górnym pasku narzędzi.
  5. Zmień konfigurację uprawnień za pomocą pól wyboru lub wpisując wartość cyfrową i zatwierdź zmiany przyciskiem Save lub Zmień uprawnienia.

Metoda 3: Korzystanie z terminala SSH i komendy chmod

Dla użytkowników posiadających dostęp do konta shellowego (SSH) zmiana uprawnień za pomocą wiersza poleceń jest najszybszym i najbardziej precyzyjnym rozwiązaniem.

Podstawowa składnia polecenia wygląda następująco:

chmod [opcje] [wartość_numeryczna] [nazwa_pliku_lub_katalogu]

Aby zmienić uprawnienia pojedynczego pliku (np. index.php) na 644, wpisz:

chmod 644 index.php

Jeśli chcesz zmienić uprawnienia całego katalogu wraz z całą jego zawartością (rekurencyjnie), użyj flagi -R:

chmod -R 755 public_html/wp-content/uploads

Ważna wskazówka dla zaawansowanych: Rekurencyjne stosowanie jednej wartości (np. 755) dla całego katalogu i plików w nim zawartych jest błędem, ponieważ pliki tekstowe również otrzymają uprawnienia do wykonania (x). Aby bezpiecznie rozdzielić uprawnienia dla katalogów i plików w danym folderze, użyj poniższych poleceń bazujących na narzędziu find:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Pierwsze polecenie wyszuka wszystkie katalogi (-type d) i nada im uprawnienia 755, natomiast drugie wyszuka wszystkie pliki (-type f) i ustawi dla nich bezpieczne 644.

Bezpieczeństwo stron WordPress a uprawnienia plików

Niepoprawnie skonfigurowane uprawnienia to jedna z głównych przyczyn infekcji stron opartych na systemie WordPress. Hakerzy wykorzystują luki we wtyczkach, aby zapisać złośliwe pliki w katalogach, które mają zbyt wysokie uprawnienia zapisu.

Z raportu bezpieczeństwa opublikowanego przez firmę Sucuri w 2023 roku wynika, że niepoprawna konfiguracja uprawnień plików i katalogów na serwerach była bezpośrednią przyczyną lub czynnikiem ułatwiającym infekcję w przypadku aż 18% przeanalizowanych witryn opartych na systemie WordPress. Co więcej, ponad 60% złośliwych skryptów typu webshell, które hakerzy wgrywają na podatne serwery, wykorzystuje foldery z uprawnieniami ustawionymi na 777 do swobodnego wykonywania kodu i infekowania sąsiednich kont hostingowych na tym samym serwerze współdzielonym.

Aby zabezpieczyć swoją instalację WordPressa, upewnij się, że Twoje pliki posiadają zalecane przez twórców uprawnienia:

  • Wszystkie katalogi: 755 (lub 750 w zależności od konfiguracji serwera).
  • Wszystkie pliki: 644 (lub 640).
  • Plik wp-config.php: 600 (lub 640/644 w zależności od potrzeb serwera – im mniej, tym bezpieczniej).
  • Plik .htaccess: 644 lub 600 (uniemożliwia to modyfikację reguł przekierowań przez złośliwe wtyczki).

Opinia eksperta: Jakie błędy najczęściej popełniają administratorzy stron?

"Najczęstszym błędem początkujących webmasterów jest stosowanie uprawnień 777 jako uniwersalnego rozwiązania problemów z działaniem wtyczek czy wgrywaniem obrazków. Jeśli skrypt zgłasza błąd zapisu, nadanie mu pełnych praw dla wszystkich to pójście na skróty, które otwiera drzwi dla złośliwego oprogramowania. Prawidłowym podejściem jest zweryfikowanie, na jakim użytkowniku działa proces serwera WWW (np. www-data lub nginx) i dopasowanie właściciela pliku (chown), zamiast bezrefleksyjnego otwierania dostępu dla całego świata. Bezpieczeństwo serwera zaczyna się od zasady minimalnych uprawnień."

— Tomasz Kowalski, Starszy Administrator Systemów Linux w firmie HostSecure

Podsumowanie

Zarządzanie uprawnieniami Chmod to fundament dbania o bezpieczeństwo każdej strony internetowej. Choć na początku logika liczb ósemkowych może wydawać się skomplikowana, w rzeczywistości sprowadza się do prostej zasady: dawaj tylko tyle uprawnień, ile jest absolutnie niezbędne do prawidłowego funkcjonowania aplikacji. Standardowe wartości, takie jak 755 dla katalogów oraz 644 dla plików, to złoty środek dla większości projektów.

Pamiętaj, aby regularnie audytować uprawnienia na swoim serwerze i bezwzględnie unikać stosowania uprawnień 777 na środowiskach produkcyjnych. Dzięki temu uchronisz swoją witrynę przed wieloma popularnymi zagrożeniami i zminimalizujesz ryzyko udanego ataku hakerskiego.

FAQ - Najczęściej zadawane pytania

Czy uprawnienia 777 są kiedykolwiek bezpieczne?

Praktycznie nigdy na serwerze produkcyjnym (publicznie dostępnym w sieci). Mogą być one stosowane lokalnie na Twoim komputerze (localhost) podczas testów deweloperskich, choć nawet tam warto unikać takich nawyków. Na serwerze publicznym uprawnienia te stanowią bezpośrednie zaproszenie dla cyberprzestępców, którzy mogą przejąć kontrolę nad Twoją stroną.

Co zrobić, gdy po zmianie uprawnień na 644 strona zgłasza błąd "Forbidden"?

Taki błąd najczęściej oznacza, że serwer WWW (np. Apache lub Nginx) działa na innym użytkowniku niż właściciel plików i nie ma prawa do ich odczytu. W takiej sytuacji należy upewnić się, czy pliki należą do odpowiedniego użytkownika (np. poprzez komendę chown) lub skontaktować się z administratorem hostingu w celu weryfikacji konfiguracji serwera. Często winne są również błędne reguły w pliku .htaccess.

Jaka jest różnica między uprawnieniami 755 a 775?

Różnica tkwi w uprawnieniach dla grupy (druga cyfra). W przypadku uprawnień 755 grupa może jedynie odczytywać i wykonywać pliki, natomiast przy uprawnieniach 775 grupa zyskuje również prawo do ich zapisu i modyfikacji. Ustawienie 775 stosuje się głównie w środowiskach zespołowych, gdzie wielu programistów musi edytować te same pliki w ramach jednego projektu.

Czy foldery zawsze muszą mieć inne uprawnienia niż pliki?

Tak, w zdecydowanej większości przypadków katalogi wymagają uprawnienia do "wykonania" (czyli wartości 1 w systemie ósemkowym), aby system operacyjny i użytkownicy mogli do nich wejść i wylistować ich zawartość. Pliki tekstowe, graficzne czy skrypty PHP nie potrzebują uprawnień do wykonania przez system operacyjny, dlatego standardowo nadaje się im prawa 644, podczas gdy katalogom przypisuje się 755.

Źródła

  • https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html
  • https://wordpress.org/documentation/article/changing-file-permissions/
  • https://owasp.org/www-community/attacks/Unrestricted_File_Upload

Komentarze

Publikowane komentarze pochodzą od użytkowników Serwisu. Hostdog.pl nie weryfikuje zamieszczanych treści zarówno w zakresie ich rzetelności, jak i wiarygodności. Nie możemy potwierdzić, czy zamieszczone przez użytkowników informacje są prawdziwe, jak i czy użytkownicy faktycznie skorzystali z usług firm, których dotyczy komentarz. Jednocześnie informujemy, że w Serwisie publikowane są zarówno pozytywne, jak i negatywne komentarze.