Jak zrozumieć uprawnienia plików w systemie Linux i skutecznie używać polecenia Chmod 777
Jeśli jesteś nowy w Linuksie, prawdopodobnie kiedyś bawiłeś się poleceniem chmod, prawdopodobnie w przypływie desperacji lub ciekawości. Być może ktoś mimochodem wspomniał o „chmod 777” dla folderu lub pliku, żeby to zadziałało, i jakimś cudem tak się stało. Ale co to właściwie oznacza? Dlaczego niektóre uprawnienia zdają się otwierać wszystko, a inne są znacznie bardziej restrykcyjne? Zrozumienie, jak Linux obsługuje uprawnienia plików, jest niezbędne, jeśli chcesz uniknąć narażenia się na ataki lub zablokowania dostępu.
Wiedza o tym, jak bezpiecznie ustawiać uprawnienia i kiedy uniknąć koszmaru 777, może oszczędzić Ci bólu głowy w przyszłości. Co więcej, chodzi tu o znacznie więcej subtelności niż tylko narzucanie 777 na wszystko – zwłaszcza że uprawnienia w Linuksie działają na podstawie kombinacji klas użytkowników i poziomów uprawnień. Ten przewodnik omówi podstawy działania uprawnień w Linuksie, znaczenie symboli uprawnień i prawidłowe korzystanie z polecenia chmod. Celem jest wyjaśnienie pewnych kwestii – i być może zapobiegnięcie kilku przypadkowym zagrożeniom bezpieczeństwa.
Jak działają uprawnienia plików w systemie Linux
W systemie Linux każdy plik lub katalog należy do konkretnego użytkownika (właściciela) i grupy. Przyglądając się bliżej uprawnieniom, zauważysz, że istnieją ustalone reguły dla trzech różnych klas użytkowników: Właściciela, Grupy i Innych (czyli gości).Można je zobaczyć w interfejsie graficznym — kliknij prawym przyciskiem myszy folder, przejdź do Właściwości i zajrzyj do sekcji Uprawnienia. Jednak w terminalu echo uprawnień wygląda następująco: drwxr-xr-x lub podobnie. Pierwsza litera wskazuje, czy jest to katalog (d), czy plik (-), a pozostałe pokazują uprawnienia podzielone na trzy zestawy, po jednym dla każdej klasy użytkownika.
Właściciel zazwyczaj ma pełną kontrolę i może zmieniać uprawnienia. Grupa i Inni mają bardziej ograniczony dostęp, chyba że zmienisz ustawienia. Taka konfiguracja pomaga zachować bezpieczeństwo systemu, jeśli uprawnienia zostaną ustawione rozsądnie. W przeciwnym razie pliki mogą zostać udostępnione każdemu — czasem celowo, a czasem przypadkowo.
Zrozumienie klas użytkowników
Plik należy do określonego właściciela i grupy, co można sprawdzić poleceniem ls -l. Uprawnienia dla każdej kategorii to ciąg symboli, taki jak rwxr-xr–. Składają się z trzech części: odczyt (r), zapis (w) i wykonanie (x).Jeśli zamiast symbolu zobaczysz myślnik, uprawnienie nie jest przyznane. To dość proste — ale magia tkwi w sposobie ich połączenia i ich praktycznym znaczeniu.
Poziomy uprawnień
Istnieją trzy główne typy dostępu, jakie można przypisać plikom lub katalogom:
- Czytaj : Możesz zajrzeć do zawartości. W przypadku katalogów oznacza to wylistowanie plików w nich zawartych.
- Zapis : Możesz zmienić zawartość pliku lub dodać/usunąć pliki z katalogu.
- Wykonaj : Możesz uruchamiać skrypty lub programy. Bez wykonania jest to w zasadzie jak próba uruchomienia samochodu bez kluczyka – nie da się go uruchomić.
Mieszanie i dopasowywanie tych uprawnień dla każdej klasy użytkownika pozwala dokładnie określić, co może zrobić każdy użytkownik. Właśnie tu pojawiają się ikony i liczby. I tak, to właśnie ta część, w której wszystko staje się zarówno mylące, jak i potężne.
Wyjaśnienie symboli i liczb uprawnień
Uprawnienia mogą być wyświetlane jako symbole lub liczby. Symbole są przydatne do szybkiego przeglądania, używane w poleceniach takich jak ls -l. Liczby łatwiej jest ustawiać w skryptach lub poleceniach, gdy zrozumie się ich logikę.
Symbole uprawnień
Szczegółowe uprawnienia można wyświetlić, wpisując ls -l. Na przykład katalog może wyglądać tak: drwxr-xr-x. Po zdekodowaniu:
- d oznacza katalog.
- rwx = właściciel może czytać, zapisywać, wykonywać.
- rx = grupa może czytać i wykonywać, ale nie zapisywać.
- rx = inni mogą czytać i wykonywać polecenia, ale nie zapisywać.
Każdy triplet (rwx) reprezentuje uprawnienia dla każdej klasy, w tej kolejności.
Uprawnienia numeryczne
Metoda numeryczna sumuje uprawnienia: odczyt (4), zapis (2), wykonywanie (1).Dla każdej klasy użytkownika sumuje się przypisane uprawnienia, co daje liczbę od 0 do 7. Na przykład 644 oznacza:
- 6 — właściciel: odczyt (4) + zapis (2) = pełny dostęp minus wykonywanie.
- 4 — grupa: tylko do odczytu.
- 4 — inne: tylko do odczytu.
Łatwo to zapamiętać, gdy już opanujesz dodawanie kodów. Chcesz, żeby każdy miał pełny dostęp? 777. Ale uwaga – to w zasadzie oznacza, że każdy może zrobić wszystko, w tym złośliwe oprogramowanie.
Uprawnienie 777 — Dlaczego warto się dwa razy zastanowić
Ten poziom uprawnień może wydawać się kuszący, ponieważ jest szybki i łatwy.` chmod 777 nazwa_pliku ` i bum — każdy może czytać, zapisywać i wykonywać. Ale to katastrofa, która czeka, aby się wydarzyć, jeśli się tego nie sprawdzi. Na serwerach, stronach internetowych lub w środowiskach współdzielonych otwiera to furtkę dla złośliwych użytkowników lub przypadkowych uszkodzeń. Nie wiem, dlaczego czasami działa, a innym razem nie — prawdopodobnie dlatego, że później przeszkadzają problemy z uprawnieniami lub ustawieniami zabezpieczeń.
Większość administratorów systemów i użytkowników dbających o bezpieczeństwo unika 777 jak ognia. Zamiast tego preferują coś w rodzaju ` chmod 755`, co pozwala kontrolować, kto i co może robić, ale jednocześnie zapewnia bezpieczeństwo systemu. Na przykład: Ty, jako właściciel, masz pełne uprawnienia, podczas gdy wszyscy inni mogą tylko odczytywać i uruchamiać pliki — ale nie mogą ich modyfikować. To jest bezpieczniejsze, a Linux został zaprojektowany z myślą o tym podejściu.
Zmiana uprawnień jest dość prosta, wystarczy użyć komendy chmod. Najprostsze polecenie wygląda tak:
chmod 755 /path/to/your/file
Zastąp `/ścieżka/do/twojego/pliku` rzeczywistą ścieżką lub nazwą pliku. Pamiętaj, że tylko root lub właściciel pliku (lub użytkownicy z uprawnieniami sudo) mogą zmieniać uprawnienia na tym poziomie.
To trochę dziwne, ale w niektórych konfiguracjach, jeśli uruchamiasz chmod 777i wydaje się, że to nie działa, sprawdź uprawnienia lub czy jakiś proces lub ustawienia zabezpieczeń nie blokują tego. W niektórych systemach może być konieczne użycie sudo : sudo chmod 777 filename. Oczywiście, Linux czasami musi to utrudniać bardziej niż to konieczne.
Powiązane artykuły
Czy ten artykuł był pomocny?