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ępuWartość liczbowaOpis
-rw-------600Tylko właściciel ma prawo do odczytu i zapisu.
-rw-r--r--644Właściciel ma prawo do zapisu i odczytu, a reszta tylko prawo odczytu.
-rw-rw-rw-666Wszyscy mają prawo do odczytu i zapisu.
-rwx------700Tylko właściciel ma prawo do odczytu, zapisu, uruchomienia.
-rwxr-xr-x755Właściciel ma wszystkie prawa do pliku, reszta tylko prawo do odczytu i uruchomienia.
-rwxrwxrwx777Wszyscy mają pełne prawa (nie zalecane).
-rwx--x--x711Wszystkie prawa ma właściciel, reszta tylko prawo uruchomienia.
drwx------700Właściciel katalogu ma pełne prawa do niego
drwxr--r--744Właściciel ma pełne prawa do katalogu, reszta ma prawo do odczytu.

Dodaj komentarz