Odszyfrowywanie uprawnień systemu plików Linux

Opublikowany: 2017-02-24

Uprawnienia do plików w systemie Linux mogą niektórym wydawać się hieroglifami teorii liczb tajemnych i jest to zrozumiałe. Model uprawnień systemu plików Linuksa wywodzi się ze spuścizny UNIX. Jednak są one dość łatwe do zrozumienia, gdy zrozumiesz logikę, która za nimi stoi.

Grupy i typy uprawnień

Cała kontrola dostępu do plików i folderów jest zdefiniowana w systemie plików przy użyciu następujących informacji:

  • Trzy grupy uprawnień: u dla właściciela, g , grupa, o lub a , wszyscy użytkownicy.
  • Trzy typy uprawnień: r , read, x , execute, w , write.

Typy uprawnień to znaki „r”, „x” i „w” , zwane flagami i są wyświetlane jako takie, jeśli w jakiś sposób wymienisz uprawnienia do pliku lub folderu. Nieuzbrojone flagi są oznaczone znakiem „-”. Grupy uprawnień są używane w poleceniach, które zmieniają właściciela i grupę pliku, co wkrótce omówimy.

Uprawnienia do przeglądania

Możesz wyświetlić uprawnienia pliku lub folderu, używając menedżera plików GUI lub sprawdzając dane wyjściowe polecenia ls w terminalu konsoli.

Otwórz terminal i wpisz następujące polecenie:

$ test dotykowy

$ ls -la test

-rw-r–r– 1 sztab yorgos 0 23 lut 17:07 test

Ciąg „-rw-r–r–” zawiera informacje o uprawnieniach systemu plików, które nas interesują. Pozostałe pola od lewej do prawej wyświetlają następujące informacje:

  • ile jest linków do tego pliku (1)
  • identyfikator właściciela (yorgos)
  • Identyfikator grupy (personel)
  • Długość pliku w bajtach (0)
  • Data utworzenia (23 lutego)
  • Utworzono czas (17:07)
  • Nazwa pliku (test)

Bity uprawnień

Zauważysz, że istnieje 9 różnych kombinacji grup i typów uprawnień, ale 10 pozycji flag. Pierwsza z nich pokazuje flagę typu pliku, podczas gdy druga wskazuje same uprawnienia. Typami plików mogą być: „-” dla plików, „l” dla dowiązań symbolicznych (są to dowiązania systemu plików, które po prostu wskazują na inny plik) i „d” dla katalogów. Ponieważ pierwszym znakiem/flagą w naszym przykładzie jest „-”, mówimy o prostym pliku. Kontynuując, podzielmy pole uprawnień:

: Typ pliku (może zawierać l, - lub d)

rw- : uprawnienia do odczytu i zapisu (bez wykonywania). Te uprawnienia przysługują właścicielowi.

r– : uprawnienia do odczytu, brak uprawnień do zapisu i wykonywania. Te uprawnienia dotyczą użytkowników należących do grupy.

r– : prawo do odczytu, bez zapisu i wykonywania. Wreszcie te uprawnienia dotyczą wszystkich innych.

W efekcie oznacza to po prostu „ten plik może być odczytywany i zapisywany przez właściciela i jest tylko do odczytu przez wszystkich innych”. Grupa ma te same uprawnienia.

Modyfikowanie uprawnień

Aby zmodyfikować uprawnienia pliku lub folderu, ponownie użyj polecenia GUI (jest to poza zakresem tego artykułu, więc nie będziemy tam wchodzić) lub użyj niektórych poleceń systemu Linux w swoim terminalu. Polecenie, którego będziemy używać, nazywa się chmod (zmiana trybu pliku). Polecenie chmod akceptuje różne parametry, które zmieniają jego zachowanie na wiele różnych sposobów, ale jego ogólne zastosowanie jest następujące:

$ chmod <tryb> <plik>

<tryb> jest określony przez następujące symbole:

r flaga odczytu

w flaga zapisu

x flaga wykonania

u flaga uprawnień użytkownika/właściciela

g flaga uprawnień grupy

o flaga uprawnień innych użytkowników

Jest jeszcze kilka innych, ale omówimy je w końcowej części naszego artykułu.

Załóżmy więc, że chcesz nadać uprawnienia do wykonywania użytkownikom należącym do grupy (ale najpierw upewnij się, że jesteś właścicielem pliku!):

$ chown g+x test
$ ls -l test
-rwxrwxrwx 1 personel yorgos 0 23 lutego 17:07 test

A może musisz całkowicie zablokować wszystkich innych. Nie byliby w stanie odczytać, zapisać ani wykonać pliku:

$ test chown o-rwx
$ ls -l test
-rwxrwx— 1 personel yorgos 0 23 lutego 17:07 test

Tutaj widzimy ostatnie flagi nieustawione na „-”.
Jeśli chcesz zobaczyć więcej przykładów, zapoznaj się ze stroną podręcznika chmod, wydając następujące polecenie:

$ człowiek chmod

Właściciele i grupy

Możesz również zmienić własność pliku i grupy pliku za pomocą polecenia chown .

Polecenie chown akceptuje różne parametry, które w pewien sposób zmieniają jego zachowanie, ale najczęstszym zastosowaniem jest:

# chown <właściciel> <plik>

Lub

# chown <właściciel:grupa> <plik>

Pierwszy przykład służy do zmiany właściciela pliku na innego. Pamiętaj jednak, że musisz mieć uprawnienia administratora, aby zmienić własność pliku. Tak więc, wykonując następujące czynności:

# chown nikt test

# ls -l test

-rwxrwxrwt 1 nikt personel 0 23 lutego 17:07 test

teraz okazuje się, że właścicielem pliku jest identyfikator użytkownika „nobody”, a nie „yorgos”.

Podobnie polecenie:

# chown nikt: test koła

# ls -l test

-rwxrwxrwt 1 nikt koło 0 23 lutego 17:07 test


Zmienia własność pliku na none , a grupę na wheel .

Jeśli chcesz dowiedzieć się więcej o poleceniu i jego różnych parametrach, zajrzyj na stronę podręcznika chown, wydając polecenie:

$ man chown

Uprawnienia specjalne

Oprócz typów i grup uprawnień, o których już wspomnieliśmy w artykule, istnieje kilka innych, zwanych „uprawnieniami specjalnymi”.

Są to:

s       Flaga Ustaw ID użytkownika i Ustaw ID grupy.

t       Lepka flaga.

Pierwsza jest ustawiana za pomocą flagi „s” w poleceniu chmod w zwykły sposób, na przykład:

$ chmod u+s test
$ ls -l test
-rwsrwx—   1 jorgos   personel   0 23 lutego 17:07 test

Ta flaga jest również nazywana flagą SUID (ustaw identyfikator użytkownika) lub SGID (ustaw identyfikator grupy). Jeśli ten bit jest ustawiony, plik dziedziczy prawa dostępu swojego właściciela. Oznacza to, że każdy, kto wykonuje plik, robi to jako właściciel. SGID jest podobny, ale plik dziedziczy prawa dostępu swojej grupy. To oczywiście może prowadzić do problemów z bezpieczeństwem, dlatego należy zachować ostrożność.

Przyklejony bit lub „t” jest szczególnie przydatny. Po ustawieniu w katalogu, który jest zwykle udostępniany jak /tmp, pliki tam utworzone mogą być zmieniane lub usuwane tylko przez ich właścicieli. Jeśli bit sticky nie jest ustawiony, właściciel katalogu nie ma nad nimi kontroli.

Możesz sprawić, by katalog był „przyklejony”, wydając następujące polecenie:

$ chmod +t /katalog

reprezentacja ósemkowa

Oprócz używania flag do definiowania uprawnień, takich jak „r” i „w”, możesz również używać wartości liczbowych. Polecenie chmod przypisuje do uprawnień następujące wartości:

„r” = 4

„w” = 2

„x” = 1

Tak więc, aby ustawić plik do odczytu/zapisu/wykonania dla właściciela i odczytu/wykonania dla wszystkich innych, co oznacza „-rwxr-xr-x”, obliczamy wartość liczbową jako taką:

rwx = 4+2+1 = 7

rx = 4+1 = 5

W końcu wydajemy polecenie:

$ test chmod 755
$ ls – test
-rwxr-xr-x   1 jorgos   personel   21 lutego 24 02:08 test

Ćwicz samodzielnie, korzystając z różnych uprawnień i wartości liczbowych, aby to zrozumieć!