www.Linux.e-obraz.info|
Prawa dostępu do plików i katalogów Wstęp Prawa dostępu do plików i katalogów są jedną z ciekawszych rzeczy, których niestety brakuje systemom Win 9X. Dlatego dla początkujących użytkowników Linuxa mogą okazać się niezrozumiałe, ale zapoznanie się z nimi i późniejsza praca nie jest wcale trudna! Wystarczy tylko mieć wszystko podane i zebrane w jednym miejscu, co postaram się uczynić w tym artykule. :-) Po co prawa? Jak już zapewne zauważyłeś, Linux to nie W** i jeśli nie masz udzielonego dostępu do systemu to niestety, ale nic nie zamieszasz :-). W Linuxie masz swoje konto, masz swój katalog domowy. Dostęp do niego masz tylko TY (no i root :-)). Tworzysz pliki, katalogi, do których dostęp mają jednak tylko osoby upoważnione! Każdy plik posiada informacje o prawach dostępu do niego i jeśli sobie zażyczysz nikt inny nie będzie mógł z niego skorzystać. Być może będziesz chciał go udostępnić, także i tutaj niezbędne będzie ustawienie odpowiednich praw - zaczynamy! Właściciel i grupa Jeśli utworzysz plik lub katalog stajesz się automatycznie jego właścicielem i dostaje on Twój identyfikator zamieszczony w rubryce - owner. W polu group dostanie on info o grupie do której należałeś w momencie utworzenia pliku. Ale po kolei. Właściciel pliku jest to osoba do której dany plik należy. Jeśli jesteś zalogowany np. jako artur to po utworzeniu nowego pliku właścicielem będzie osoba o identyfikatorze artur (czyli TY). Istnieją też pliki systemowe, które należą do różnych osób (ale nie zwykłych użytkowników) i NIE należy ich zmieniać np. root, bin, daemon itd. chown - jeśli jesteś pewien, że plik nie jest plikiem systemowym możesz śmiało spróbować zmienić jego właściciele poleceniem - chown. Ma ono następującą składnie:
System sprawdzi czy w systemie istnieje odpowiedni plik i użytkownik. Pamiętaj, że jeśli zmienisz prawa dostępu dla innej osoby, może sie okazać, że stracisz odpowiednie uprawnienia! Wtedy pozostaje tylko zmiana tych praw z poziomu konta root. Grupy - są bardzo przydatną rzeczą służącą do organizacji użytkowników mających dostęp do systemu na tych samych zasadach. Możesz podzielić użytkowników na zaufanych, obcych itd. Wtedy jedni będa mieli dostęp do niektórych plików, inni nie. Rodzaj grupy jest ustalany w momencie tworzenia konta. Jeśli chcesz zmienić prawa dostępu do pliku przez grupę użyj polecenia:
Tak jak w wypadku chown system sprawdzi czy plik i grupa istnieją. Typy praw W linuxie istnieją tylko trzy typu praw dostępu. W zupełności jednak wystarczają do całkowitej kontroli systemu. Prawo do zapisu pliku (write), pozwala na modyfikacje go, a także na usuwanie, prawo do odczytu (read) daje możliwość przeczytania pliku, ale i skopiowania! Trzeci typ to wykonywanie (execute). Jeśli plik nadaje się do uruchomienia (binaria, skrypty), system go wykona. Nadawanie prawa execute dla zwykłego pliku nie ma sensu, gdyż system nie będzie potrafił go wykonać. Jeśli chodzi o katalogi to prawo do zapisu pozwala na tworzenie, przenoszenie, usuwanie plików w nim zawartych. Prawo wykonywania daje możliwość wejścia do katalogu poleceniem cd. Format zapisu praw Linux używa trzech pozycji w zapisie praw dostępu. Pierwsza to właściciel (owner), druga grupa (group) i ostatnia dla pozostałych userów (other). Takie posegregowanie pozwala ustawić co kto może z plikiem zrobić. Informacje te zapisywane są w postaci kto odczyt|zapis|wykonanie. Tak więc 3 kategorie użytkowników i każdy ma 3 pola na ustawienie praw. Istnieje jeszcze jedna kolumna, która określa rodzaj - czy jest plikiem, katalogiem itd. Symbol "-" oznacza, że jest to plik, literka "d" - świadczy o katalogu. Przyjrzymy się teraz prawą na przykładzie pliku. Wydajemy polcenie ls -l test i otrzymujemy:
System wywalił na prawa dostępu do pliku test. Pierwsza kolumna od lewej świadczy, że jest to zwykły plik (-), następne 3 pozycje są prawami dla właściciela (w tym wypadku artur) i dają mu prawo do odczytu jak i do zapisu (rw). Pole execute jest puste (-). Tak samo wygląda sytuacja dla grupy (artur). Natomiast pozostali użytkownicy mogą tylko przeczytać ten plik (ostatnie 3 symbole) (r). Podsumowując. Znak - oznacza brak jakichkolwiek praw, r pozwala na czytanie, w na zapis, a x na wykonanie pliku. Posegregowane są one w trójki określające kolejno (owner, group, other), przy czym pierwsza pozycja jest informacją o rodzaju pliku. chmod Wiemy już jak wygląda sprawa praw, musimy jeszcze poznać jak je ustawiać, modyfikować. Służy do tego polecenie chmod, którego składnia wygląda tak:
W linuxie istnieją dwie możliwości podawania praw: bezpośredni za pomocą wartości numerycznych (0-7) lub symbolicznych, z którymi już się zetknąłeś (-rwx). Ustawiając wartości symboliczne pierwszą rzeczą, którą musisz ustalić jest argument kogo ma dotyczyć dane prawo: u -użytkownik, g -grupa, o -inni, a -wszyscy. Następnym podawanym parametrem jest czy prawo ma zostać dodane czy odjęte: + i - . Potem podajemy prawo, które ma być dodane lub odebrane.
Dla przykładu. Chcemy dać możliwość wykonywania pliku test wszystkim użytkownikom systemu. Wydajmy polecenie:
Analogicznie, nie chcemy, żeby poza nami ktokolwiek miał dostęp do pliku test2 wpiszmy:
Drugi sposób ustawiania praw dostępu do plików to operowanie za pomocą liczb ósemkowych. Za pomocą cyfr od 0-7 ustawimy odpowiednie prawa. Oto dostępne wartości:
Wydając polecenie chomod podajemy po nim 3 liczby, które oznaczją kolejno - właściciela, grupę, innych. Dla przykładu:
oznacza, że właściciel bedzie mógł odczytywać, zapisywać i wykonywać plik (7), natomiast grupa i inni tylko odczytywać i wykonywać (5). Pliki ustawione na chmod 644 pozwalają właścielowi na odczyt i zapis (6), natomast grupie i innym tylko na odczyt (4). Zalety poszczególnych metod: 1. Metoda numeryczna jest
łatwiejsza do przekazania drugiej osobie. Często można się spotkać np. w
dokumentacji cgi z poleceniem chmod 755. Jest krótsze do napisania niż "ustaw
prawa dostępu dla właściciela ...". Katalogi Linux uznaje katalogi tak samo jak pliki, zatem prawa dostępu do nich ustawia się tak samo! Zmienna UMASK Zmienna UMASK daje wytyczne systemowi, jakie prawa dostępu ma ustawić dla nowo tworzonego pliku. Możesz ją dowolnie ustawiać, jeśli tylko masz do tego odpowiednie uprawnienia (root, bądź swoje konto). Aby poznać wartość zmiennej UMASK wydaj polecenie:
Ja dostałem w odpowiedzi 002 co oznacza, że nowo tworzone pliki mają atrybuty odczytu i zapisywanie (wykonywanie dla katalogów) dla właściciela oraz grupy, natomiast dla pozosatłych tylko odczyt w tym wykonywanie katalogów. Dla wartości chmod byłoby to 664. Oto wartości ósemkowe dla zmiennej UMASK:
|
--- --- --- -x-