Podstawy Linuksa cz.3 – Uprawnienia

System uprawnień w Linuksie może wydawać się na początku nieco zagmatwany. W tym wpisie postaramy się w zwięzły i prosty sposób pokazać jak on działa.

Prawo własności

Mamy trzy “poziomy” uprawnień jeśli chodzi o wykonywanie operacji na plikach i katalogach:

user – użytkownik (właściciel)
group – grupa
others – inni (wszyscy inni)

Wszystkie pliki (włączając w to linki symboliczne oraz gniazda unixowe), katalogi oraz procesy mają przyporządkowanego użytkownika (właściciela) oraz grupę.

Uprawnienia

Użytkownik (właściciel), grupa oraz wszyscy inni mają oddzielny zestaw uprawnień do pliku lub katalogu. Są trzy uprawnienia:

read (r) – odczyt
write (w) – zapis
execute (x) – wykonanie

Pliki

read – odczyt – możliwość odczytu zawartości pliku, włączając w to otwarcie pliku w edytorze w trybie tylko do odczytu.
write – zapis – daje możliwość modyfikacji lub usunięcia pliku.
execute – wykonanie – możliwość uruchomienia pliku jako programu (np. skryptu bash, skryptu python lub php)

Katalogi

read – odczyt – prawo do wyświetlenia zawartości katalogu np. ls -lah
write – zapis – możliwość tworzenia plików w katalogu oraz usunięcia katalogu
execute – wykonanie – daje możliwość wejścia do katalogu (polecenie cd)

Uprawnienia możemy wyświetlić za pomocą komendy ls np ls -al
Pierwsza kolumna zawiera ciąg znaków określający uprawnienia:
Przykładowo dla pliku:

-rw-r--r-- 1 root root    0 10-18 19:10 plik1.txt

Wyjaśnienie uprawnień.

- rwx r-x r--
| |_| |_| |_|
|  \   \   \_ prawa dla innych (others) - tylko czytanie
|   |   |   
|   |   |_ prawa dla grupy (group) - czytanie i wykonywanie
|   |
|   |_ prawa dla użytkownika - właściciela (user) - czytanie, zapis, wykonanie
|
|_ oznaczenie typu pliku ( - plik, d katalog, l link)

Dla katalogu (pierwszy znak to oznaczenie katalogu litera d – directory)

drwxr-xr-x 2 root root 4096 10-18 19:10 katalog1
|          | |    |    |    |           |
|          | |    |    |    |           nazwa pliku/katalogu
|          | |    |    |    | 
|          | |    |    |    data modyfikacji           
|          | |    |    |
|          | |    |    rozmiar               
|          | |    |
|          | |    grupa          
|          | |
|          | właściciel
|          |
|          liczba hard-linków
|
typ pliku i uprawnienia

Zmiana właściciela

Właściciela oraz grupę do której przypisany jest plik lub katalog możemy zmienić poleceniem chown:

chown [-R] użytkownik /scieżka
chown [-R] użytkownik:grupa /ścieżka

Opcja -R powoduje zmianę rekursywną, czyli dla wszystkich podkatalogów i plików znajdujących się w /scieżka

Zmiana uprawnień

Za pomocą polecenia chmod możemy zmienić uprawnienia dla pliku/katalogu:

chmod [-R] u=rwx,g=rw,o=r /ścieżka
chmod [-R] u+x,g+wx,o-w /ścieżka

Możemy rownież skorzystać z postaci liczbowej praw dostępu.
4 – read – odczyt
2 – write – zapis
1 – execute – wykonanie

Wartości się sumują, czyli:
7 = odczyt (4), zapis (2) i wykonanie (1)
6 = odczyt (4) i zapis (2)
5 = odczyt (4) i wykonanie (1)
4 = odczyt

Przykładowo:

chmod 755 katalog1
chmod 644 plik1.txt

Przykłady w poniższej tabeli.

Prawa dostępu Wartość liczbowa Opis
-rw------- 600 Tylko właściciel ma prawo do odczytu i zapisu.
-rw-r--r-- 644 Właściciel ma prawo do zapisu i odczytu, a reszta tylko prawo odczytu.
-rw-rw-rw- 666 Wszyscy mają prawo do odczytu i zapisu.
-rwx------ 700 Tylko właściciel ma prawo do odczytu, zapisu, uruchomienia.
-rwxr-xr-x 755 Właściciel ma wszystkie prawa do pliku, reszta tylko prawo do odczytu i uruchomienia.
-rwxrwxrwx 777 Wszyscy mają pełne prawa (nie zalecane).
-rwx--x--x 711 Wszystkie prawa ma właściciel, reszta tylko prawo uruchomienia.
drwx------ 700 Właściciel katalogu ma pełne prawa do niego
drwxr--r-- 744 Właściciel ma pełne prawa do katalogu, reszta ma prawo do odczytu.

Dodaj komentarz