PRAWA_DOSTEPU.DOC

(92 KB) Pobierz
ADMINISTRACJA

1

 

                                                                        PRAWA   DOSTEPU

 

W systemie wielodostępnym potrzebne jest narzędzie, które zapewnić powinno ład i porządek. Narzędziem tym są prawa dostępów do plików i katalogów.
W Linuksie (UNIX-ie) wyróżniamy trzy rodzaje praw dostępu do pliku:

·         prawo czytania (r - read)

·         prawo pisania (w - write)

·         prawo wykonywania (x - execute)

Powyższe prawa w stosunku każdego pliku (katalogu) są niezależnie nadawane w trzech kategoriach:

·         prawa właściciela pliku

·         prawa użytkowników należących do określonej grupy

·         prawa pozostałych użytkowników

Każdy plik (katalog) ma swojego właściciela indywidualnego (najczęściej jest to użytkownik, który utworzył plik) oraz właściciela zbiorowego (grupę). Właściciel pliku jest automatycznie członkiem grupy (czasami jest to grupa jednoosobowa). Pozostałym użytkownikom, również mogą być przypisane określone prawa do danego pliku.

Wyjątkowym użytkownikiem jest root, który posiada wszystkie prawa dostępu do każdego pliku. Ponadto może je zawsze zmienić, nawet gdy nie jest właścicielem pliku. W odniesieniu do konkretnego pliku określony użytkownik może posiadać dane prawo dostępu lub też nie. Posiadanie prawa:

·         czytania - umożliwia otwieranie pliku i przeglądanie jego zawartości

·         pisania - umożliwia otwieranie pliku i modyfikację jego zawartości

·         wykonywania - umożliwia wykonywanie programu (jeżeli jest to plik binarny) lub skryptu powłoki

Aby usunąć plik, musimy mieć prawo pisania do katalogu, w którym ten plik się znajduje.

Prawa dostępu do pliku

$ pwd

/home/crash1

[crash1@linux crash1]$ ls -F

kat2/  mojplik1  mojplik2

[crash1@linux crash1]$ ls -l

total 3

drwxrwxr-x  2  crash1  crash1   1024  Apr  1  12:10  kat2

-rw-rw-r--  1  crash1  crash1     11  Apr  2  22:10  mojplik1

-rw-rw-r--  1  crash1  crash1      6  Apr  6  22:11  mojplik2

[crash1@linux crash1]$ _

Polecenie ls z opcją -l oferuje nam informację o prawach dostępu do pliku. Pierwszy znak wiersza określa typ pliku. I tak "d" oznacza katalog (directory), a znak minus "-" plik zwykły.
Kolejne dziewięć znaków należy odbierać jako trzy trójki znaków. Pierwsza trójka określa prawa dostępu dla właściciela pliku, druga dla grupy (użytkowników), trzecia dla pozostałych użytkowników. Każda trójka określa kolejno trzy prawa: czytania (r - read), pisania (w - write) i wykonywania (x - execute). Minus w miejscu odpowiadającym określonemu prawu oznacza brak tego prawa.

·         Użytkownik dysponuje tylko jednym zestawem uprawnień do pliku. Jeżeli jest właścicielem pliku dysponuje tylko i wyłącznie zestawem praw właściciela, mimo, że jest także członkiem grupy i zalicza się także do pozostałych użytkowników. Jeżeli nie jest właścicielem, ale jest członkiem grupy, będzie dysponował tylko zestawem uprawnień grupy, mimo, że zalicza się przecież także do pozostałych użytkowników. Jeżeli nie jest ani właścicielem, ani członkiem grupy, będzie dysponował tylko zestawem praw pozostałych użytkowników.

Zgodnie ze zdrowym rozsądkiem, właściciel pliku powinien dysponować najszerszymi prawami do niego i najczęściej tak jest. W ogólności zależy to jednak od zdefiniowania zestawów uprawnień i w szczególnych sytuacjach może się tak zdarzyć, że właściciel będzie maił mniejsze prawa niż grupa, czyli pozostali użytkownicy.
Wróćmy teraz do wiersza z listingu - polecenia ls -l. Następne pola z prawami dostępu to liczba określająca liczbę sztywnych dowiązań do pliku. Kolejne pole to nazwa właściciela pliku. W następnym polu umieszczona jest nazwa grupy. Następnie mamy liczbę określającą długość pliku w bajtach, a za nią pole podające datę (miesiąc, dzień, godzina : minuta) utworzenia lub modyfikacji pliku. Ostatnie pole zawiera nazwę pliku. W naszym przypadku nazwa użytkownika i grupy są takie same. Wynika to z faktu, że nie zajmowaliśmy się porządkowaniem i tworzeniem grup w systemie. Przy zakładanie konta passwd użytkownika crash1 automatycznie została utworzona grupa o tej nazwie. Użytkownik crash1 jest zatem jedynym członkiem grupy crash1.
Reszta oznaczeń typu pliku stosowane w poleceniu ls:

-    plik zwykły

d    katalog

b    plik specjalny (blokowy)

c    plik specjalny (znakowy)

`    gniazdo

p    łącze nazwane (FIFO)

l    dowiązanie miękkie (symboliczne)

W szczególności polecenie ls -l zastosować możemy do pojedynczego pliku, na przykład pliku specjalnego (blokowego) hdc:

$ ls -l  /dev/hdc

brw-rw----  1  root  disk   22,  0  Mar  5  2000   /dev/hdc

[crash1@linux crash1]$ _

Widzimy tutaj pewnążnicę w podaniu daty. Pojawiła się dodatkowo liczba "22". Określająca numer programu obsługi.

$ cd /home/crash2

bash:   /home/crash2: Permission danied

[crash1@linux crash1]$ ls -l /home

total 2

drwx------  6  crash1  crash1   1024  Apr  1  12:10  crash1

drwx------  5  crash2  crash2     11  Apr  2  22:10  crash2

[crash1@linux crash1]$ _

Widzimy, że do katalogu /home/leszek2 wszelkie prawa posiada tylko właściciel crash2. Grupa i pozostali użytkownicy nie posiadają tu żadnych praw.

$ su

Password:

[root@linux crash1]# cd /home/crash2

[root@linux crash2]# exit

exit

[crash1@linux crash1]$ _

Jak należało się spodziewać, ograniczenia wynikające z praw dostępu nie dotyczą root-a. Można powiedzieć, że do każdego pliku root posiada pełny zestaw (rwx) praw.

Zmieniamy prawa dostępu (zapis oktalny chmod)

Prawa dostępu nie są nadane raz na zawsze. Możemy je zmieniać...

Zgłoś jeśli naruszono regulamin