Polecenie chmod w systemie Linux z przykładami

Podczas pracy z plikami i katalogami w systemie Linux polecenie chmod jest niezbędnym narzędziem w Twoim arsenale. Jako akronim od „Change Mode”, polecenie chmod zostało zaprojektowane, aby pomóc użytkownikom systemu Linux dostosować uprawnienia plików lub katalogów. To polecenie, pełne wszechstronności, jest kluczowe w bezpiecznym i wydajnym zarządzaniu plikami. Zanurzmy się w zawiłościach polecenia chmod i odkryjmy, jak można je wykorzystać w praktyce.

Zrozumienie polecenia chmod w systemie Linux

Co to jest polecenie chmod?

Polecenie chmod to narzędzie wiersza poleceń systemu Linux służące do modyfikowania trybu systemu plików. Ten tryb określa typy uprawnień, jakie użytkownicy i grupy mają do plików i katalogów. Te uprawnienia określają, kto może czytać, zapisywać i wykonywać określone pliki.

Dlaczego warto używać polecenia chmod?

W systemie Linux pliki i katalogi są współdzielonymi zasobami. Aby chronić te zasoby, należy zarządzać uprawnieniami dostępu. Polecenie chmod umożliwia kontrolowanie tych uprawnień i zapewnienie bezpieczeństwa systemu. Niezależnie od tego, czy jesteś administratorem systemu chroniącym poufne dane, czy deweloperem konfigurującym projekt, zrozumienie polecenia chmod jest konieczne.

Zrozumienie składni polecenia chmod

Polecenie chmod ma następującą składnię:

chmod [OPTIONS] MODE[,MODE]... FILE...

OPCJE mogą być opcjonalnymi parametrami zapewniającymi dodatkową funkcjonalność, TRYB określa uprawnienia, które należy ustawić, a PLIK to plik lub katalog, którego uprawnienia zostaną zmienione. chmod ma dwie podstawowe metody definiowania uprawnień: tryb numeryczny i tryb symboliczny.

Różne opcje polecenia chmod

Polecenie chmod bez żadnych opcji

Domyślnie, bez żadnych opcji, chmod zmienia uprawnienia pliku na tryb określony przez użytkownika.

chmod 755 filename

Powyższe polecenie modyfikuje uprawnienia „nazwa pliku” tak, że właściciel ma uprawnienia do odczytu, zapisu i wykonywania (7), a grupa i inne osoby mają uprawnienia do odczytu i wykonywania (5).

Polecenie chmod z opcjami

Z poleceniem chmod można zastosować kilka opcji w celu rozszerzenia jego funkcjonalności:

  • -R lub –recursive: Rekurencyjnie zmienia pliki i katalogi.
  • -f lub –silent lub –quiet: pomija większość komunikatów o błędach.
  • -v lub –verbose: Wyświetla diagnostykę dla każdego przetworzonego pliku.
  • –reference=RFILE: Ustawia uprawnienia odpowiadające uprawnieniom RFILE.

Zrozumienie uprawnień do plików za pomocą chmod

Trzy znaki oznaczają uprawnienia w systemie Linux:

  • r (odczyt): Uprawnienie do odczytu zawartości pliku.
  • w (zapis): Zezwolenie na modyfikację lub usunięcie pliku.
  • x (wykonanie): Zezwolenie na wykonanie pliku.

Na przykład plik z uprawnieniami rwx dla użytkownika oznacza, że ​​użytkownik może czytać, zapisywać i wykonywać plik.

Tryby numeryczne i symboliczne w chmod

Istnieją dwa sposoby zmiany uprawnień za pomocą polecenia chmod:

  • Tryb numeryczny: Ten tryb używa liczb do reprezentowania uprawnień. Odczyt to 4, zapis to 2, a wykonanie to 1. Liczby te są dodawane do siebie, aby ustawić uprawnienia. Na przykład, aby przyznać użytkownikowi uprawnienia do odczytu, zapisu i wykonania (7), należy użyć polecenia:
chmod 700 filename
  • Tryb numeryczny: Ten tryb używa liczb do reprezentowania uprawnień. Odczyt to 4, zapis to 2, a wykonanie to 1. Liczby te są dodawane do siebie, aby ustawić uprawnienia. Na przykład, aby przyznać użytkownikowi uprawnienia do odczytu, zapisu i wykonania (7), należy użyć polecenia:
chmod u+x filename

Typowe przykłady poleceń chmod

Rozumiejąc, jak działają uprawnienia i polecenie chmod, przeanalizujmy kilka praktycznych przykładów.

Przykład 1: Zmiana uprawnień w trybie numerycznym

chmod 755 filename

To polecenie zmienia uprawnienia „nazwa pliku”, tak że:

  • Użytkownik (właściciel) ma uprawnienia do odczytu (4), zapisu (2) i wykonywania (1) – łącznie 7.
  • Grupa i inne osoby mają uprawnienia do odczytu (4) i wykonania (1), łącznie 5.

Innymi słowy, właściciel ma pełny dostęp, podczas gdy członkowie grupy i inne osoby mogą czytać i wykonywać plik, ale nie mogą go modyfikować.

Przykład 2: Zmiana uprawnień w trybie symbolicznym

chmod u+x filename

To polecenie dodaje uprawnienia do wykonywania dla użytkownika do „nazwy pliku”. Oto zestawienie:

  • u: reprezentuje użytkownika.
  • +: Oznacza, że ​​dodawane jest uprawnienie.
  • x: oznacza pozwolenie na wykonanie.

Podsumowując, to polecenie mówi systemowi: „Dodaj (+) uprawnienia do wykonywania (x) dla użytkownika (u) dla tego pliku („nazwa pliku”)”.

Przykład 3: Usuwanie uprawnień

chmod go-w filename

To polecenie usuwa uprawnienia do zapisu dla grupy i innych osób z „nazwy pliku”. Szczegółowo:

  • idź: Oznacza grupę i innych.
  • -: Oznacza, że ​​uprawnienie zostanie usunięte.
  • w: Reprezentuje uprawnienia do zapisu.

Dlatego to polecenie usuwa uprawnienia do zapisu grupie i innym użytkownikom, zwiększając bezpieczeństwo pliku.

Przykład 4: Ustawianie wszystkich uprawnień

chmod ugo+rwx filename

To polecenie nadaje wszystkie uprawnienia wszystkim użytkownikom dla „nazwy pliku”. Podział jest następujący:

  • ugo: Reprezentuje użytkownika, grupę i inne osoby.
  • +: Oznacza, że ​​uprawnienia są dodawane.
  • rwx: oznacza uprawnienia do odczytu, zapisu i wykonywania.

Polecenie to faktycznie otwiera „filename” dla wszystkich, ale należy je stosować ostrożnie, mając na uwadze kwestie bezpieczeństwa.

Przykład 5: Użycie chmod z opcją -R

chmod -R 755 directoryname

To polecenie rekurencyjnie zmienia uprawnienia wszystkich plików i katalogów w „directoryname”.

  • -R: oznacza „rekurencyjny” i jest używane, gdy chcemy zmienić uprawnienia do wszystkich plików i katalogów w katalogu.

W tym przypadku to polecenie przyznaje pełne uprawnienia właścicielowi oraz uprawnienia do odczytu i wykonywania dla grupy i innych dla „nazwa_katalogu” oraz wszystkich jego zagnieżdżonych plików i katalogów.

Przykład 6: Zmiana uprawnień grupy

chmod g-wx filename

To polecenie usuwa uprawnienia do zapisu i wykonywania z grupy „nazwa pliku”. Oto wyjaśnienie:

  • g: oznacza grupę.
  • -: Wskazuje, że uprawnienia są usuwane.
  • wx: Reprezentuje uprawnienia do zapisu i wykonywania.

W rezultacie członkowie grupy powiązani z plikiem „filename” nie będą już mogli go modyfikować ani wykonywać.

Przykład 7: Zmiana wielu uprawnień

chmod u=rwx,g=rx,o=r filename

To polecenie ustawia różne uprawnienia dla różnych typów użytkowników. Oto, co robi:

  • u=rwx: Ustawia uprawnienia użytkownika do odczytu, zapisu i wykonywania.
  • g=rx: Ustawia uprawnienia grupy do odczytu i wykonywania.
  • o=r: Ustawia uprawnienia drugiej osoby na tylko do odczytu.

Umożliwia to szczegółową kontrolę poziomów dostępu dla różnych typów użytkowników.

Przykład 8: Kopiowanie uprawnień

chmod --reference=filename1 filename2

To polecenie kopiuje uprawnienia z „nazwa pliku 1” do „nazwa pliku 2”.

  • –reference=nazwa pliku1: Wskazuje, że „nazwa pliku1” jest plikiem referencyjnym, z którego zostaną skopiowane uprawnienia.

Polecenie to jest wygodne, gdy chcesz szybko zastosować te same uprawnienia do wielu plików.

Przykład 9: Zmiana uprawnień przy użyciu lepkiego bitu

chmod 1757 directoryname

To polecenie ustawia bit trwały (1) i uprawnienia (757) dla „nazwa_katalogu”.

  • Bit trwały (1) zapewnia, że ​​tylko właściciel pliku, właściciel katalogu lub użytkownik root może usuwać pliki lub zmieniać ich nazwy.
  • 757: Ustawia uprawnienia użytkownika do odczytu, zapisu i wykonywania (7) oraz uprawnienia grupy i innych osób do odczytu, zapisu i bitu trwałego (5, 7).

Jest to szczególnie przydatne w przypadku katalogów współdzielonych przez wielu użytkowników, np. /tmp, aby uniemożliwić użytkownikom wzajemne usuwanie plików lub zmianę ich nazw.

Przykład 10: Używanie polecenia chmod z poleceniem Znajdź

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

Polecenie to wyszukuje wszystkie zwykłe pliki w bieżącym katalogu i jego podkatalogach, a następnie zmienia ich uprawnienia na 644 (odczyt i zapis dla właściciela oraz odczyt dla grupy i pozostałych).

  • znajdź . -type f: Znajduje wszystkie pliki w bieżącym katalogu i podkatalogach.
  • -exec chmod 644 {} \;: Zmienia uprawnienia każdego znalezionego pliku.

To polecenie jest przydatne, gdy chcesz zmienić uprawnienia do wielu plików w oparciu o określone kryteria.

Zaawansowane przykłady poleceń chmod

Jak każde polecenie Linuxa, chmod ma kilka sztuczek, które mogą jeszcze bardziej ułatwić ci życie. Przyjrzyjmy się tym zaawansowanym przykładom.

Zaawansowany przykład 1: Rekurencyjna zmiana uprawnień

chmod -R 755 directoryname

To polecenie zmienia rekurencyjnie uprawnienia do katalogu i całej jego zawartości. Oto, co robi:

  • -R: To jest opcja rekurencyjna. Stosuje zmianę do katalogów i plików w tych katalogach.
  • 755: Ustawia uprawnienia użytkownika do odczytu, zapisu i wykonywania (7) oraz uprawnienia grupy i innych osób do odczytu i wykonywania (5).

Jest to szczególnie przydatne, gdy chcesz zmienić uprawnienia do katalogu oraz wszystkich znajdujących się w nim plików i podkatalogów.

Zaawansowany przykład 2: Ustawianie bitów Setuid, Setgid i Sticky Bits

chmod 4755 filename
chmod 2755 directoryname
chmod 1755 directoryname

Te polecenia ustawiają bity setuid, setgid i sticky dla pliku lub katalogu:

  • Bit setuid (4): Po ustawieniu go w pliku użytkownicy mogą wykonywać plik z uprawnieniami właściciela pliku.
  • Bit setgid (2): Gdy jest ustawiony na katalog, powoduje, że nowe pliki i podkatalogi utworzone w nim dziedziczą jego grupę, a nie podstawową grupę tworzącego użytkownika.
  • Bit sticky (1): Chroni usuwanie plików wewnątrz katalogu. Gdy jest ustawiony, pliki mogą być usuwane tylko przez ich właściciela, właściciela katalogu lub użytkownika root.

Zaawansowany przykład 3: Zmiana uprawnień tylko do katalogów

find /path -type d -exec chmod 755 {} \;

To polecenie zmienia uprawnienia tylko do katalogów w podanej ścieżce, pozostawiając pliki bez zmian:

  • find /path -type d: Znajduje wszystkie katalogi pod podaną ścieżką.
  • -exec chmod 755 {} \;: Zmienia uprawnienia każdego znalezionego katalogu.

To polecenie jest przydatne, gdy chcesz zmienić uprawnienia tylko do katalogów, a nie do plików.

Zaawansowany przykład 4: Zmiana uprawnień tylko do plików

find /path -type f -exec chmod 644 {} \;

To polecenie zmienia uprawnienia tylko do plików znajdujących się w podanej ścieżce, pozostawiając katalogi bez zmian:

  • find /path -type f: Znajduje wszystkie pliki w podanej ścieżce.
  • -exec chmod 644 {} \;: Zmienia uprawnienia każdego znalezionego pliku.

To polecenie jest przydatne, gdy chcesz zmienić uprawnienia tylko plików, a nie katalogów.

Zaawansowany przykład 5: Tworzenie skryptu wykonywalnego przez każdego

chmod +x scriptname

To polecenie dodaje uprawnienia do wykonywania użytkownikowi, grupie i innym osobom dla „nazwy skryptu”:

  • +x: Dodaje uprawnienia do wykonywania.

Jest to częsta operacja, gdy tworzysz nowy skrypt i chcesz, aby był wykonywalny.

Wniosek

Polecenie chmod jest niezbędnym narzędziem w systemie Linux do zarządzania uprawnieniami do plików. Od podstawowego użycia po bardziej zaawansowane techniki, takie jak zmiany rekurencyjne i ustawianie specjalnych bitów, zrozumienie polecenia chmod jest kluczem do skutecznego zarządzania plikami w systemie Linux. Na podstawie podanych przykładów powinieneś być w stanie pewnie ustawić uprawnienia zgodnie ze swoimi potrzebami i zwiększyć swoją produktywność w środowisku Linux.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz