logo

Polecenie Chmod w systemie Linux/Unix z przykładami

Komenda chmod systemu Linux służy do zmiany uprawnień dostępu do plików i katalogów. To znaczy Zmień tryb . Nie może zmienić uprawnień dowiązań symbolicznych. Nawet ignoruje dowiązania symboliczne, które napotykają podczas rekurencyjnego przeglądania katalogów.

w Linuksa systemie plików, każdy plik jest powiązany z konkretnym właścicielem i ma dostęp do uprawnień różnych użytkowników. Klasy użytkowników mogą być:

  • właściciel
  • członek grupy
  • Inni (Wszyscy inni)

Uprawnienia do plików w systemie Linux są trzech następujących typów:

  • przeczytaj (r)
  • pisać (w)
  • wykonać (x)

Krótka historia Chmod

Po pierwsze, polecenie chmod jest reprezentowane w wersji 1 systemu AT&T UNIX za pomocą wywołania systemowego chmod. Listy kontroli dostępu zostały uwzględnione w kilku systemach plików, włączając te najpopularniejsze tryby, aby zwiększyć elastyczność, ponieważ systemy rosły pod względem typów i liczby użytkowników.

Wersja chmod ułożona w coreutils GNU została określona przez Jima Meyeringa i Davida MacKenziego. To polecenie jest obecne jako izolowany pakiet dla systemu Microsoft Windows jako element natywnej kolekcji portów Win32 UnxUtils z podstawowymi narzędziami typu GNU Unix. Ponadto komenda chmod została wysłana do systemu operacyjnego IBM i.

Zobaczmy, jak zmienić uprawnienia do pliku za pomocą polecenia chmod.

Składnia:

jak pobierać filmy z YouTube'a vlc

Podstawowa składnia polecenia chmod jest następująca:

 chmod 

Ogólnie realizowane opcje to:

    -R:Oznacza rekurencyjny, tj. dodawanie obiektów do podkatalogów.-W:Oznacza pełne wyświetlanie zmodyfikowanych obiektów (obiekty niezmodyfikowane nie są wyświetlane).

Wzmianka o dowiązaniu symbolicznym ma wpływ na obiekt docelowy. Tryby plików powiązane bezpośrednio z dowiązaniami symbolicznymi nie są zwykle używane.

Podstawowy składnik pozwolenia chmod:

Na przykład, rwxr-x---

Wszystkie grupy trzech znaków określają uprawnienia dla wszystkich klas:

    rwx:Trzy skrajne lewe znaki określają uprawnienia właściciela pliku (tj. klasy User).r-x:Trzy środkowe znaki określają uprawnienia grupy będącej właścicielem pliku (tj. klasy Group).---:Trzy znaki znajdujące się najbardziej na prawo określają uprawnienia dla klasy Other. Użytkownicy niebędący właścicielami pliku ani członkowie grupy nie mają dostępu do pliku.

Opcje:

Polecenie chmod obsługuje następujące opcje wiersza poleceń:

-c, --zmiany: Jest ona podobna do opcji szczegółowej, z tą różnicą, że jest zgłaszana w przypadku wprowadzenia zmiany.

-f, --silent, --quiet: Służy do ukrywania komunikatów o błędach.

poradnik Java dla początkujących

-v, --verbose: Służy do wyświetlania diagnostyki każdego przetworzonego pliku.

--no-preserve-root: Służy do nietraktowania symbolu ukośnika odwrotnego („/”), szczególnie (domyślnie).

--konserwuj-root: Jeśli ta opcja zostanie użyta, nie będzie działać rekurencyjnie na ukośniku odwrotnym ('/').

--reference=PLIK: Służy do określenia trybu RFILE lub wartości MODE.

-R, --rekurencyjne: Służy do rekurencyjnej zmiany plików i katalogów.

--pomoc: Służy do wyświetlania instrukcji pomocy zawierającej krótki opis sposobu użytkowania i możliwości wsparcia.

--wersja: Służy do wyświetlania informacji o wersji.

Składnia uprawnień do plików

Jeśli jesteś nowym użytkownikiem, możesz pomylić się z różnymi rodzajami liter używanych do ustawiania uprawnień do plików. Zatem zanim przejdziemy dalej z poleceniem chmod, przyjrzyjmy się składni uprawnień do plików.

Aby ustawić uprawnienia do pliku lub katalogu, musimy określić następujące rzeczy:

  • Kto: Kim jesteśmy. (użytkownik)
  • Co: Jakie zmiany zamierzamy wprowadzić (np. dodać lub usunąć uprawnienia)?
  • Które: Które z uprawnień?

Oświadczenie o pozwoleniu jest reprezentowane za pomocą wskaźników takich jak u+x, u-x. Gdzie „u” oznacza „użytkownik”, „+” oznacza dodanie, „-” oznacza usunięcie, „x” oznacza plik wykonywalny (który).

ciąg długości

Wartością użytkownika może być:

u: właściciel pliku

g: członek grupy

o: inni

Odp.: wszystko

Typami uprawnień mogą być r, w i x.

Ustawianie i aktualizacja uprawnień

Aby ustawić uprawnienia do pliku, wykonaj instrukcję uprawnień za pomocą polecenia chmod. Na przykład chcemy ustawić uprawnienia do odczytu i zapisu dla wszystkich użytkowników i grup pliku „Demo.txt”. Musimy przekazać instrukcję uprawnień „u=rw,go=rw Demo.txt” za pomocą polecenia chmod. Aby wyświetlić uprawnienia do pliku, wykonaj poniższe polecenie:

 ls -l Demo.txt 

Powyższe polecenie wyświetli aktualne uprawnienia pliku „Demo.txt”.

Aby zmienić uprawnienia, wykonaj poniższe polecenie:

 chmod u=rw,go=rw Demo.txt 

Rozważ poniższe dane wyjściowe:

Polecenie chmod w Linuksie

Z powyższych danych wynika, że ​​uprawnienia dostępu do pliku „Demo.txt” uległy zmianie.

Ustawianie uprawnień dla wielu plików

Możemy ustawić uprawnienia dla wielu plików jednocześnie za pomocą polecenia chmod. Aby zmienić uprawnienia do wielu plików, określ wzorzec pliku za pomocą polecenia chmod. Na przykład, jeśli chcemy ustawić uprawnienia do odczytu i zapisu dla wszystkich plików tekstowych, określ rozszerzenie *. wzór txt za pomocą polecenia chmod.

Aby wyświetlić uprawnienia do wszystkich plików tekstowych z bieżącego katalogu roboczego, wykonaj poniższe polecenie:

 ls -l *.txt 

Wyświetli listę wszystkich plików tekstowych z ich trybem uprawnień. Rozważ poniższe dane wyjściowe:

lista lateksowa
Polecenie chmod w Linuksie

Z powyższych danych wynika, że ​​wiele plików ma uprawnienia tylko do odczytu dla innych użytkowników.

Aby ustawić uprawnienia do odczytu i zapisu dla innych użytkowników, wykonaj poniższe polecenie:

 chmod o+w *.txt 

Ustawi uprawnienia do odczytu i zapisu dla innych użytkowników plików tekstowych. Rozważ poniższe dane wyjściowe:

Polecenie chmod w Linuksie

Skrót numeryczny

Do określenia uprawnień możemy używać wartości numerycznych zamiast liter. Do określenia pozwolenia używana jest wartość trzycyfrowa. Cyfra znajdująca się najbardziej na lewo oznacza właściciela (u), a cyfra środkowa przedstawia członków grupy (g). Cyfra znajdująca się najbardziej na prawo reprezentuje pozostałe (o).

Poniższa tabela przedstawia cyfry i ich uprawnienia:

Cyfry Uprawnienia
000 Brak pozwolenia
001 Wykonaj pozwolenie
010 Napisz pozwolenie
011 Uprawnienia do zapisu i wykonywania
100 Przeczytaj pozwolenie
101 Odczytuj i wykonuj uprawnienia
110 Uprawnienia do odczytu i zapisu
111 Uprawnienia do odczytu, zapisu i wykonywania

Tryby symboliczne

Ponadto polecenie chmod akceptuje bardziej szczegółowy zapis symboliczny, który umożliwia zmianę określonych trybów. Tryb symboliczny składa się z trzech elementów, które są łączone w jeden ciąg tekstowy:

 $ chmod [references] [operator] [modes] file... 

Program chmod stosuje operator w celu zdefiniowania sposobu uporządkowania trybów plików. Zatwierdzeni są następujący operatorzy:

Operator Opis
+ Dodaje opisane do opisanych klas.
- Usuwa opisywany tryb z opisanych klas.
= Oznacza to, że opisane tryby mają zostać utworzone jako te same tryby dla opisanych klas.

Tryby reprezentują, które uprawnienia zostaną usunięte lub przyznane opisanym klasom. Istnieją głównie trzy popularne tryby powiązane z powszechnymi uprawnieniami:

Nazwa Tryb Opis
Czytać R Odczytuje plik lub wyświetla zawartość katalogu.
pisać w Zapisuje do katalogu lub pliku.
wykonać X Powtarza drzewo katalogów lub wykonuje plik.
specjalne wykonanie X To nie jest pozwolenie, ale zamiast tego można go użyć zamiast x. Używa uprawnień do wykonywania katalogów pomimo ich bieżących uprawnień i używa uprawnień do wykonywania dla pliku, który ma ustawiony co najmniej bit uprawnień do wykonywania. Jest to przydatne, jeśli jest używane z operatorem „+” i bez ustawiania uprawnień do wykonywania, co miałoby miejsce, gdybyśmy po prostu użyli chmod -R a+rx., podczas gdy możemy zaimplementować chmod -R a+rx. raczej z x.

Wiele modyfikacji można opisać, izolując wiele trybów symbolicznych wraz z przecinkami. Polecenie chmod sprawdzi plik umaska jeśli użytkownik nie jest określony.

Tryby specjalne

Ponadto polecenie chmod może zmienić specjalne tryby i dodatkowe uprawnienia do katalogu lub pliku. Tryby symboliczne mają zastosowanie „s” do wskazania trybów setgid i setuid oraz „t” do wskazania trybu trwałego. Tryb jest używany tylko dla właściwych klas, niezależnie od tego, czy wspomniano o innych klasach, czy nie.

Prawie wszystkie systemy operacyjne obsługują numerycznie specyfikację trybu specjalnego, szczególnie w formacie ósemkowym, ale kilka nie. W tych systemach można zastosować wyłącznie tryby symboliczne.

Kilka przykładów linii poleceń:

Komenda Opis
chmod a+r publicComments.txt Dodaje uprawnienia do odczytu dla każdej klasy (tj. Grupy, Właściciela i Innych).
chmod a-x publicComments.txt Spowoduje to usunięcie uprawnień do wykonywania dla każdej klasy.
chmod a+rx przeglądarka.sh Dodaje uprawnienia do wykonywania i odczytu dla każdej klasy.
chmod u=rw, g=r, o=internalPlan.txt Ustawi uprawnienia do zapisu i odczytu dla użytkownika, odczyt dla grupy i odrzucenie dostępu dla innych.
chmod -R u+w, dokumenty go-w Obejmuje to uprawnienia do zapisu w dokumentach katalogu i każdej jego zawartości dla właściciela oraz usuwa uprawnienia do zapisu dla innych osób i grupy.
chmod i=rw groupAgreements.txt Ustawi uprawnienia do zapisu i odczytu dla grupy i użytkownika.
chmod 664 global.txt Ustawi uprawnienia do zapisu i odczytu dla grupy i użytkownika oraz przyzna uprawnienia do odczytu innym.
chmod 744 Show_myCV.sh Ustawi uprawnienia do wykonywania, zapisu i odczytu dla użytkownika oraz przyzna uprawnienia do odczytu Grupie i Innym.