Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Prawa dostępu

piątek,

Prawa dostępu

W systemach uniksowych za określenie uprawnień odczytu, edycji (zapisu) i uruchamiania odpowiada mechanizm praw dostępu. Jest on jednym z elementów zapewnienia bezpieczeństwa w systemach wielodostępnych. W przypadku pliku uruchomienie to możliwość wykonania programu lub skryptu. W kontekście katalogu prawo do uruchomienia oznacza możliwość przejścia do niego, jednak jego zawartość można przeglądać dopiero po dołączeniu prawa do odczytu. Aby dany użytkownik mógł modyfikować pliki, musi mieć prawa do zapisu i wykonywania zawierającego je katalogu.

Prawo do pliku można rozpatrywać ze względu na właściciela pliku, grupę właściciela pliku oraz pozostałych użytkowników. Grypy użytkowników wprowadzono, aby ułatwić zarządzanie użytkownikami o podobnych prawach, m.in. umożliwić masowe ustawianie uprawnień.

Niektóre programy przyjmują literowe określenia uprawnień:

  • r — read (odczyt);
  • w — write (zapis);
  • x — wykonanie (execute);
  • u — user (właściciel pliku);
  • g — group (grupa właściciela);
  • o — other (pozostali użytkownicy);
  • a — all (wszyscy).

Prawa dostępu ustawione dla pliku można sprawdzić za pomocą komendy ls wywołanej z argumentem l. W poniższym przykładzie utworzono plik o nazwie ckziu.txt, a następnie wyświetlono informacje na jego temat obejmujące m.in. prawa dostępu.

Pierwszy znak to określenie typu pliku (- to zwykły plik). Informacje na temat dostępnych typów plików znajdziesz w materiale „Typy plików”. Informacje na temat praw do pliku odczytasz z kolejnych dziewięciu znaków. Pierwsze rw- oznacza prawo do odczytu i zapisu (read, write) dla właściciela, drugie rw- oznacza prawo do odczytu i zapisu dla grupy, r-- (kolejne trzy znaki) to prawo do odczytu dla pozostałych użytkowników. Znak minus w przypadku praw oznacza brak danego prawa.

Dla prawidłowego odczytania ustawionych praw dostępu ważne jest zapamiętanie właściwej kolejności i znaczenia znaków (rwx i ugo – patrz na wcześniejsze objaśnienia).

W przypadku katalogu i próby odczytania jego praw wywołanie komendy ls należy uzupełnić o argument d, w przeciwnym wypadku zostanie wyświetlona zawartość katalogu.

Wiele informacji na temat pliku można odczytać za pomocą programu stat.

W przykładzie prawa do pliku wyświetlone są na dwa sposoby. Jeden (1) z nich został już zaprezentowany. Drugi (2) sposób zapisu praw to zapis w postaci liczby w systemie ósemkowym. Pierwsza cyfra to informacja na temat tzw. specjalnych praw dostępu (setuid, setgid oraz sticky bit), więcej na ten temat znajdziesz w jednym z kolejnych materiałów. Pozostałe cyfry określają prawa dostępu dla kolejno właściciela, grupy i pozostałych użytkowników. Ich znaczenie wymaga dodatkowego objaśnienia.

Jeśli dane prawo ma być zapisane za pomocą bitu, to jeden oznacza prawo, a zero brak praw. Prawa właściciela z powyższego przykładu w zapisie bitowym to 111 (rwx) – są to wszystkie prawa. W przypadku prawa jedynie do odczytu zapis bitowy wyglądałby następująco: 100 (r--). Prawa są określane odrębnie dla właściciela, grupy oraz pozostałych użytkowników, można je zapisać za pomocą dziewięciu bitów (3*3), np. 111101101 (rwxr-wr-w). Liczba 111101101 (zapis w systemie dwójkowym) przeliczona na system ósemkowy ma postać 755.

Dla wielu użytkowników system ósemkowy nie wydaje się zbyt atrakcyjny, ale obliczenia można uprościć i do tego przyśpieszyć. Co prawda zapisana w systemie dwójkowym liczba 111101101 w systemie ósemkowym to 755, a w dziesiętnym to 493, jednak możliwe jest skorzystanie z umiejętności konwersji jedynie do systemu dziesiętnego. W przykładzie właściciel ma wszystkie prawa do pliku, co w zapisie binarnym daje 111, w przeliczeniu na system ósemkowy 7, a na dziesiętny również 7. Grupa otrzymała prawa r-x, co binarnie daje 101, ósemkowo 5, a dziesiętnie również 5. Pozostali użytkownicy mają takie same prawa jak grupa. Liczba 111101101 (zapis w systemie dwójkowym) przeliczona na system ósemkowy ma postać 755. Wyrażenie (111)(101)(101) wykorzystujące liczby w systemie dwójkowym przekształcone na zapis w systemie dziesiętnym to (7)(5)(5). Uogólniając: trzycyfrowe liczby zapisane w systemie dwójkowy przeliczone na systemy ósemkowy i dziesiętny dają liczbę zapisaną za pomocą tej samej cyfry (np. 111 daje odpowiednio 78^0 oraz 710^0).

Wszystkie możliwe kombinacje (dwójkowo/dziesiętnie (w tym przypadku także ósemkowo)):

  • 000 - 0 (brak praw);
  • 001 - 1 (wykonanie);
  • 010 - 2 (zapis);
  • 011 - 3 (zapis i wykonanie);
  • 100 - 4 (odczyt);
  • 101 - 5 (odczyt i wykonanie);
  • 110 - 6 (odczyt i zapis);
  • 111 - 7 (odczyt, zapis i wykonanie).

Przykłady praw ((właściciel)/(grupa)/(pozostali)):

  • 600 (odczyt)/(brak praw)/(brak praw);
  • 644 (odczyt i zapis)/(odczyt)/(odczyt);
  • 755 (odczyt, zapis i wykonanie)/(odczyt i wykonanie)/(odczyt i wykonanie).
Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły