LDZ - Linux Dla Zielonych
Prawa dostępu
Linux, jak każdy system wielodostępny, posiada system kontroli dostępu. Opiera
się on na posiadaniu praw dostępu i właściciela przez każdy z plików i
katalogów. Te prawa to: prawo uruchamiania (x - eXecute), prawo czytania (r -
Read), prawo zapisu (w - Write). Każdy plik i katalog posiada 3 komplety takich
praw: dla właściciela pliku/katalogu (u - User), dla grupy, do której
przypisany jest plik (g - Group), i dla wszystkich innych (o - Others). Jeśli
wydasz polecenie ls -l powinieneś zobaczyć coś takiego:
-rw-r--r-- 1 root root 17212 Jan 7 12:33 webalizer.conf
-rw-r--r-- 1 root root 17227 Oct 30 23:26 webalizer.conf.sample
-rw-r--r-- 1 root root 3313 Mar 22 1999 wgetrc
-rw----r-- 1 root root 30737 Jan 27 18:11 wwwoffle.conf
-rw-r--r-- 1 root root 253 Mar 22 1999 zlogin
-rw-r--r-- 1 root root 86 Mar 22 1999 zlogout
-rw-r--r-- 1 root root 262 Mar 22 1999 zprofile
-rw-r--r-- 1 root root 481 Mar 22 1999 zshenv
-rw-r--r-- 1 root root 952 Mar 22 1999 zshrc
Kolejne pola oznaczają: prawa dostępu, liczbę dowiązań do danego pliku/katalogu
(w przypadku plików zawsze 1), właściciela, grupę, rozmiar, datę utworzenia i
nazwę. Nas w tym momencie interesują prawa dostępu.
-rw-r--r-- 1 deith root 952 Mar 22 1999 zshrc
|\ /\ /\ /
d u g o
d - tu pojawia się 'd' jeśli dany plik jest katalogiem.
u - prawa dla użytkownika (rwx - opisane wyżej)
g - prawa dla grupy (jw.)
o - prawa dla całej reszty(jw.)
W trzecim polu w każdym z bloków mogą być różne oznaczenia:
s - ustawione są bity setuid i setgid. Oznacza to, że program
uruchomiony z ustawionymi takimi bitami będzie działał z prawami właściciela i
ustawionej grupy, oraz prawo wykonywania (x)
S - jw. ale bez prawa wykonywania
t - ustawiony jest bit lepkości i prawo wykonywania
T - jw. ale bez prawa wykonywania
x - ustawione jest samo prawo wykonywania
Do zmiany praw dostępu służy polecenie chmod. Jego pierwszym parametrem
jest właśnie prawo dostępu. Może być ono podane w dwóch formatach: np. u+x, co
oznacza dodanie prawa wykonywania dla właściciela pliku. Może to też być np.
o-r (usunięcie prawa odczytu dla pozostałych użytkowników). Ogólnie przed
znakiem + lub - mogą być litery u, g lub o a po tym znaku r, w, x, s i t. Prawa
mogą też być podane w formacie ósemkowym, tzn. będą to trzy cyfry oznaczające
kolejno prawa dla użytkownika, grupy i całej reszty. Drugim parametrem jest
nazwa pliku lub katalogu do zmiany praw. Przydatną opcją, podawaną przed prawem
jest -R. Powoduje to włączenie rekurencyjnej zmiany praw, tzn. wraz z
podkatalogami i plikami w nich się znajdującymi.
Drugim przydatnym poleceniem jest chown. Powoduje ono zmianę właściciela
i grupy pliku/katalogu. Wystarczy podać jako drugi parametr użytkownik:grupa, a
jako trzeci ten właśnie plik.
Jak widać, plik zshrc ma prawo czytania i zapisu dla właściciela pliku,
czytania dla grupy root oraz dla całej reszty użytkowników. W ten sposób można
konstruować systemy dostępu. Na przykład, jeśli chcemy dać dostęp do programu
pine określonej grupie użytkowników, tworzymy grupę pine w pliku /etc/group
przez dodanie odpowiedniej linijki, np. pine:x:510:user1,user2 (pola
oddzielone dwukropkami to: nazwa:hasło (może go nie być):id (musi być
unikalne):użytkownicy ) i ustawiamy grupę programu pine na pine :).