Prawa dostępu do plików i katalogów
Po wydaniu polecenia ls –l na ekranie pojawia się prócz nazw plików spora ilość informacji.
Spójrzmy na przykład:
-rwxr-xr-x
2
reksio users 4512 May 9 09:20 ksiazka1
-rwxr-xr-x
2
reksio users 5727 May 9 09:22 ksiazka
Można w nim wyróżnić siedem kolumn zawierających różne dane. Są to, od lewej do prawej:
prawa dostępu, ilość dowiązań, identyfikator użytkownika posiadającego dany plik (w tym
przypadku reksio), identyfikator grupy posiadającej dany plik (w tym przypadku users),
rozmiar pliku w bajtach, data utworzenia pliku, nazwa pliku.
Każdy plik i katalog w systemie Linux ma swojego właściciela i grupę, która go posiada, oraz
zestaw praw dostępu. Modyfikowanie tych atrybutów powoduje, że do plików ma dostęp
więcej lub mniej osób. Prawa dostępu określają też, czy plik może zostać wykonany jako
polecenie.
Domyślnie właścicielem pliku jest użytkownik, który go utworzył. Bycie właścicielem pliku
pozwala zmieniać prawa dostępu do niego i identyfikator właściciela. Jeśli zmienisz
identyfikator właściciela na inny niż swój, najprawdopodobniej nie będziesz mógł już więcej
zmieniać atrybutów pliku.
Model praw dostępu zastosowany w systemie UNIX (a zatem i w Linuxie) jest
stosunkowo prosty i zakłada istnienie trzech typów praw dostępu do plików i katalogów:
praw do zapisu ( write), do odczytu ( read) i do wykonywania ( execute).
Posiadanie prawa do odczytu pozwala oglądać zawartość pliku. W przypadku katalogu
pozwala ono na wyświetlenie jego zawartości, np. poleceniem ls.
Prawo do zapisu pozwala modyfikować (i usuwać) pliki, nawet jeśli nie jesteś ich
właścicielem. W przypadku katalogu musisz posiadać to prawo, by tworzyć, przenosić lub
usuwać pliki w nim przechowywane.
Prawo do wykonywania pozwala na wykonanie programu znajdującego się w pliku (np. przez
wpisanie jego nazwy). Nie ma ono zastosowania do plików, które nie mogą zostać
zinterpretowane przez system operacyjny. Przykładowo, nawet jeśli plikowi z danymi
statystycznymi nadasz atrybuty pozwalające Ci go wykonać, i tak nie będziesz mógł tego
zrobić. Jeżeli natomiast plik zawierałby kod programu, uruchomienie tego ostatniego
wymagałoby prawa do wykonywania. Jeśli posiadasz prawa wykonywania dla katalogu,
oznacza to, że możesz do niego wejść poleceniem cd.
UNIX dzieli wszystkich użytkowników na trzy kategorie, w zależności od tego, czy są oni
właścicielami pliku, czy nie, oraz czy znajdują się w grupie posiadającej plik. Każdemu
plikowi i katalogowi przypisany jest osobny zestaw praw dostępu dla właściciela (ang.
owner), osobny dla grupy, do której on należy (ang. group), i trzeci dla wszystkich pozostałych użytkowników systemu (ang. other lub world). Zestawy praw zapisywane są jedne po drugich w spójnej postaci; najpierw prawo do odczytu, potem zapisu, na końcu
wykonywania, kolejno dla właściciela, grupy i innych użytkowników.
W sumie daje to dziewięć bitów informacji. W pierwszej kolumnie katalogu wyświetlanego
poleceniem ls -l wyświetlanych jest jednak dziesięć wartości. Pierwsza z nich wskazuje, czy
dana pozycja reprezentuje katalog czy plik.
-rw-r--r--
1
burek users 163
Dec 7 14:31 mojplik
Pierwszym znakiem w grupie praw dostępu jest -, co oznacza, że jest to zwykły plik. Dla
katalogu w tym miejscu znalazłaby się litera d. Następne dziewięć znaków dzieli się na trzy
grupy po trzy znaki i oznacza kolejno prawa dostępu dla właściciela, grupy i innych
użytkowników. Każda trójka pokazuje uprawnienia do czytania, zapisu i wykonywania,
dokładnie w takim porządku. Prawo do odczytu sygnalizowane jest literą r, do zapisu – w, a
do wykonywania x. Brak określonych uprawnień oznaczany jest symbolem -.
W naszym przykładzie właściciel pliku mojplik posiada prawo do jego odczytywania
i zapisywania, co sygnalizowane jest znakami rw-. Plik nie może zostać natomiast wykonany
przez wpisanie jego nazwy w wierszu poleceń, co jest konsekwencją braku prawa do
wykonywania. Prawa grupy do pliku opisane są znakami r--, co oznacza, że członkowie grupy
mogą odczytywać zawartość pliku, nie mogą natomiast go modyfikować ani wykonywać.
Dokładnie takie same prawa (czyli zezwolenie wyłącznie na odczyt) mają pozostali
użytkownicy.