Chmody to uprawnienia które określają role dostępu do plików i folderów. Każdy plik zapisany na dysku należy do jakiegoś użytkownika, użytkownik zaś może należeć do grupy użytkowników.

Stosowanie chmodów, umożliwia ograniczenie praw do zapisu i odczytu poszczególnych plików pomiędzy użytkownikami i różnymi aplikacjami. Nawet jeśli jesteś posiadaczem hostingu dedykowanego lub serwera dedykowanego, system plików na serwerze podzielony jest na uprawnienia - rozdzielone przez system.

W infrastrukturze hostit.pl, wszystkie pliki na serwerze wysłane przez FTP lub utworzone przez Twoje skrypty, mają uprawnienia twojego użytkownika (login do panelu klienta) oraz należą do tej samej grupy.

Serwer HTTP działa na odrębnym użytkowniku, dzięki temu - czas jego działania oraz wykorzystana pamięć nie jest liczona do Twoich parametrów bezpieczeństwa. Stwarza to jednak potrzebę uwzględnienia serwera HTTP w dostępie do plików.

Chmody mogą zostać zmienione przez nasz system jeżeli, zostanie rozpoznane za zbyt "rozwiązłe", czyli umożliwiające dostęp do Twoich plików wszystkim. Zmiana chmodów może także nastąpić poprzez działanie Twoich skryptów, czy też przez Ciebie samego za pomocą klienta FTP.

Błędnie nadane chmody mogą spowodować np. brak możliwości zmiany zawartości pliku, odmowę utworzenia folderu czy też pojawienie się błędu 403 przy próbie wyświetlenia pliku w oknie przeglądarki (brak uprawnień odczytu dla Serwera HTTP).

W tym samouczku chcieliśmy zaprezentować metodę zarządzania uprawnieniami plików za pomocą popularnych klientów FTP.

Tabela Chmod

Uprawnienia do pliku prezentowane są za pomocą liczby składającej się z 3 lub 4 cyfr. Jeżeli chmod prezentowany jest za pomocą czterech cyfr (w naszym przypadku) interesują nas tylko 3 ostatnie, np x640 lub 640:

  • x - bit specjalny; jeżeli występuje ignorujemy
  • 6 - pierwsza cyfra - uprawnienia dla użytkownika
  • 4 - druga cyfra - uprawnienia dla grupy
  • 0 - trzecia cyfra - uprawnienia dla pozostałych (np. serwera HTTP)

Jeżeli nie nadasz odpowiednich uprawnień dla pozostałych, serwer HTTP nie będzie mógł wyświetlić poprawnie zawartości tych plików lub wylistować zawartości danego katalogu. Nadanie zbyt szerokich uprawnień może doprowadzić do uszkodzenia lub wycieku Twoich danych w przypadku włamania na serwer.

Zachowanie odpowiednich uprawnień jest priorytetowe. Zalecane chmody zaprezentowaliśmy na końcu tabeli.

Odkodowanie każdej z cyfr (tabela nie dot. bitu specjalnego czyli pierwszej cyfry w przypadku chmodów liczących 4 znaki) pomoże Ci poniższa tabela:

Wartość Plik Folder
0 - -
1 Uruchomienie
Uruchomienie aplikacji z poziomu shella - nie dotyczy uruchamiania aplikacji z poziomu przeglądarki
Wejście
Zgoda na wejście do folderu.
2 Zapis
Dopisanie zawartości do pliku
Tworzenie
Tworzenie nowych plików i folderów
3 Uruchomienie + Zapis Wejście do folderu + Zapis
4 Odczyt
Odczytanie zawartości pliku
Listowanie
Wylistowanie zawartości folderu
5 Uruchomienie + Odczyt Wylistowanie + Wejście
6 Uruchomienie + Zapis Wylistowanie + Tworzenie
7 Uruchomienie + Zapis + Odczyt Wejście + Wylistowanie + Tworzenie

Przykłady uprawnień:

  • 600 Tylko właściciel ma prawo do odczytu i zapisu.
  • 777 Wszyscy mają pełne prawa (niezalecane).

Chmod - zalecane uprawnienia

Postaraj się aby pliki z danymi wrażliwymi (np. plik konfiguracyjny), które nie są wywoływane bezpośrednio przez przeglądarkę posiadał jak najniższe uprawnienia.

  • dla plików, które muszą być dostępne z przeglądarki zalecamy 0644
  • dla plików z danymi wrażliwymi (zwierającymi hasła) np. configuraion.php, wp-config.php itp. zalecamy 640
  • dla folderów z których chcemy aby był dostęp z przeglądarki (czyli w większości przypadków) proponujemy 751
  • dla folderów z danymi, do których niema dostępu bezpośrednio z poziomu przeglądarki proponujemy 750
  • dla folderów do których dokonujemy uploadu z poziomu skryptu (np. Wordpress folder wp-content/uploads/ 755)

Zmiana chmodów jest łatwa i można ją zmienić za pomocą klienta FTP. Poniżej przedstawiam jak zrobić to za pomocą Total Commandera i FileZilla.

Zmiana Chmod za pomocą TOTAL COMMANDER

Po nawiązaniu połączenia FTP klikamy w plik/katalog któremu chcemy zmienić uprawnienia chmod zaznaczając go tak jak na obrazku.

Total Commander
Total Commander
Total Commander
Następnie z Menu wybieramy Plik – Zmień Atrybuty
Total Commander
Pojawi nam się okno Zmiany atrybutów gdzie możemy wybrać odpowiednie uprawnienia dla Właściciela, Grupy i Świata.

Zmiana Chmod za pomocą FileZilla

Po nawiązaniu połączenia FTP klikamy w plik/katalog, któremu chcemy zmienić uprawnienia chmod zaznaczając go następnie prawym przyciskiem myszy wywołujemy listę komend i wybieramy Prawa Pliku.

FileZilla
FileZilla

Po kliknięciu w Prawa pliku pojawi się nowe okno Zmień atrybuty pliku gdzie mamy możliwość nadania uprawnień Właściciela, Grupowych i Publicznych – wybieramy odpowiednio i zapisujemy wybierając Ok.

FileZilla
FileZilla