System plików |
|
|
|
Linux, podobnie jak pozostałe systemy UNIX używa dosyć archaicznej metody wyznaczania praw dostępu do plików (w tym katalogów, urządzeń itp.). Metoda ta niestety nie pozwala na łatwe i elastyczne zarządzanie dostępem do plików, choć przy uzyskaniu pewnej wprawy pozwala na wprowadzenie niemal dowolnej polityki dostępu do zasobów.
Przez prawo odczytu rozumieć należy możliwość odczytania zawartości pliku (co w przypadku katalogu oznacza możliwość odczytania listy plików znajdujących się w tym katalogu). Czynność Plik
Katalog
przeglądanie zawartości katalogu --- r--
utworzenie pliku --- -w-
skasowanie pliku --- -w-
zmiana nazwy --- -w-
zmiana danego katalogu na bieżący --- --x
czytanie pliku r-- --x
zapis do pliku -w- --x
wykonanie pliku --x --x
Prawa dostępu ustalane są osobno dla właściciela pliku, dla grupy właściciela oraz dla wszystkich pozostałych użytkowników. Przy określaniu praw dostępu do pliku grupuje się trójkami prawa "r", "w" i "x". Zatem efektywne prawa dostępu do pliku oznaczone jako: rwxrw---- Oznaczają:
Wszystkie prawa dostępu zapisać również można w sposób numeryczny. Każde prawo ma swoją wagę liczbową. Sumując poszczególne wagi otrzymać można sumaryczne prawo dostępu. Wagi liczbowe poszczególnych praw:
Prawa w postaci liczbowej podaje się jako liczbę trzycyfrową. Pierwsza cyfra oznacza prawa dostępu dla użytkownika, druga dla grupy użytkownika, a ostatnia - dla wszystkich pozostałych użytkowników.
Zestawiając poszczególne cyfry otrzymujemy 760.
[student@syriusz /tmp]$ ls -l
W wyniku działania komendy ls z parametrem "-l" otrzymujemy spis plików w katalogu, wraz z podaniem praw dostępu do nic. Prawa dostępu znajdują się w pierwszej kolumnie wydruku i poprzedzone są informacją o typie pliku. Pliki zwykłe oznaczone są myślnikiem, a katalogi - literą "d". W trzeciej kolumnie znajduje się informacja o właścicielu plików, a w czwartej - o grupie właściciela. Więcej informacji o działaniu polecenia "ls" odnaleźć można w dalszej części kursu. drwxr-x-x 2 student users 1024 Jun 22 16:20 katalog1
oznacza następujące prawa dostępu do katalogu:
Liczbowy zapis tych praw: 731 drwxrwxrwx 2 student users 1024 Jun 22 16:20 katalog2
Powyższy zapis oznacza pełne prawa dostępu do katalogu dla wszystkich użytkowników. drwxr-x--- 2 root users 1024 Jun 22 16:20 katalog3
Do katalogu "katalog3" pełne prawa ma tylko użytkownik root. Użytkownicy z grupy users nie mogą usuwać pliki w katalogu i tworzyć nowe. Wszyscy pozostali użytkownicy nie mogą korzystać z katalogu. ----r--r-- 1 student users 16 Jun 22 16:18 plik1
Użytkownik student nie ma dostępu do tego pliku. Wszyscy pozostali użytkownicy mogą odczytywać zawartość pliku. -rw-rw-rw- 1 student users 37 Jun 22 16:18 plik2
Wszyscy użytkownicy mogą odczytywać i modyfikować zawartość tego pliku. -rwx-wxr-- 1 root wheel 72 Jun 22 16:18 plik3
Użytkownik root ma pełne prawa do pliku. Grupa wheel nie może odczytywać pliku, natomiast może dokonywać modyfikacji pliku oraz wykonywać plik. Wszyscy pozostali użytkownicy mogą wyłącznie odczytywać zawartość pliku.
Specyfika linków narzuca nieco inne zarządzanie ich prawami dostępu. W przypadku modyfikacji praw dostępu do linku twardego automatycznie następuje modyfikacja praw wszystkich linków twardych do danego obszaru na dysku. Wynika to z zapisu praw dostępu w i-węźle a nie w katalogu. Nie można natomiast modyfikować praw dostępu do linków symbolicznych. Dostępem należy zarządzać poprzez wyznaczanie praw do oryginalnego pliku. chmod PRAWA_LICZBOWO PLIK(I) gdzie:
PRAWA_LICZBOWO oznacza liczbowy zapis praw Posługiwanie się liczbowym formatem zapisu praw jest dosyć trudne, szczególnie dla początkujących użytkowników Linuxa, ponieważ wymaga przeliczania wartości oraz znajomości wag poszczególnych praw. Dlatego też chmod udostępnia znacznie wygodniejszy sposób modyfikacji praw dostępu - tzw. format symboliczny. W formacie tym poszczególne prawa reprezentowane są przez odpowiadające im symbole - "r", "w" oraz "x", natomiast podmiot praw określany jest następującymi literami:
Operacja na prawach opisana jest odpowiednimi symbolami. Dodanie praw oznaczane jest przez "+", zmniejszenie praw symbolizowane jest przez "-", natomiast nadanie praw zgodnie ze wzorcem oznaczane jest przez "=". Przykłady:
W notacji symbolicznej zarówno prawa jak i podmioty można łączyć w grupy:
Dodatkowo łączyć można kilka notacji symbolicznych, oddzielając je przecinkami:
Prawa dostępu do pliku modyfikować może tylko właściciel pliku bądź użytkownik root. Dzięki temu użytkownik root ma pełny dostęp do wszystkich zasobów systemu. |