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.

Np.:

-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.