Prawa dostępu do plików i katalogów

Linux jest systemem, który pozwala setkom użytkowników na logowanie się i pracę w jednym czasie. W systemie znajdują się poza tym setki tysięcy plików i katalogów, które muszą być utrzymywane w bezpieczny sposób. Dla administratorów systemów koniecznością jest zapewnienie odpowiednich uprawnień dostępu do plików i katalogów aby nie narażać bezpieczeństwa systemu. Użytkownicy podzieleni są na trzy unikalne klasy uprawnień.

Klasa uprawnień Opis
User (u) Właściciel pliku lub katalogu, zazwyczaj twórca.
Group (g) Zbiór użytkowników, którzy potrzebują takiego samego dostępu do plików i katalogów, które współdzielą. Informacje o grupach znajdują się w pliku /etc/group, a użytkownicy są przypisani do tych grup.
Others (o)  Wszyscy inni użytkownicy systemu (poza właścicielem pliku lub katalogu i członkami grupy, do której należy plik czy katalog).

 

Uprawnienia kontrolują jakie akcje mogą być przeprowadzone na pliku lub katalogu i przez kogo.

Typ uprawnień Symbol Plik Katalog
Read r Pozwala na odczyt pliku i kopiowanie go. Pozwala na wyświetlenie zawartości folderu przez komendę ls.
Write w Pozwala na modyfikacje zawartości pliku. Pozwala na utworzenie, wykasowanie lub zmianę nazwy pliku i podkatalogu.
Execute x Pozwala na wykonanie pliku. Pozwala na wejście do katalogu.

 

Do nadawania, odbierania lub przyznawania typów i klas uprawnień służą tryby uprawnień.

Tryb uprawnień Opis
Add (+) Dodaje uprawnienie.
Revoke (-) Odbiera uprawnienie.
Assign (=) Alokuje uprawnienie dla właściciela, grupy i innych w jednym czasie.

 

Modyfikowanie uprawnień dostępu

Do modyfikowania praw dostępu do plików i katalogów służy polecenie:

# chmod

Właściciel pliku lub katalogu oraz root mogą używać polecenia chmod na dwa sposoby:  zgodnie z notacją symboliczną lub oktalną.

Oktalna Binarnie Symboliczna Wyjaśnienie
0 000 – – –  Brak uprawnień
1 001 – – x  Wykonywanie
2 010 – w –  Zapis
3 011 – w x  Zapis i wykonywanie
4 100 r – –  Odczyt
5 101 r – x  Odczyt i wykonywanie
6 110 r w –  Odczyt i zapis
7 111 r w x  Odczyt, zapis, wykonywanie

Z powyższej tabeli wynika, że każdej 1 odpowiada r, w lub x, każdemu 0 odpowiada brak uprawnień na danym poziomie.

Wagi w notacji oktalnej powiązane z pozycją każdej cyfry przedstawia tabela poniżej.

X X X
4 2 1

 

Ćwiczenie 1. Modyfikowanie uprawnień do plików korzystając z notacji symbolicznej.
Załóżmy, że właścicielem pliku file1 jest user1 i uprawnienia do jego odczytu posiada właściciel, grupa i inni.

-r--r--r--. 1 user1 user1 0 Nov 30 12:30 file1

1. Dodaj uprawnienie do wykonywania pliku dla właściciela i wylistuj plik w celu weryfikacji.

$ chmod u+x file1 –v
mode of ‘file1’ changed from 0444 (r--r--r--) to 0544 (r-xr--r--)
$ ll file1
-r-xr--r--. 1 user1 user1 0 Nov 30 12:30 file1

2. Dodaj uprawnienia do zapisu dla grupy i innych, zweryfikuj.

$ chmod go+w file1
$ ll file1
-r-xrw-rw-. 1 user1 user1 0 Nov 30 12:30 file1

3. Usuń uprawnienia do zapisu dla innych, potwierdź.

$ chmod o-w file1
$ ll file1
-r-xrw-r--. 1 user1 user1 0 Nov 30 12:30 file1

4. Przyznaj uprawnienia odczytu, zapisu i wykonania dla właściciela, grupy i innych użytkowników.
$ chmod a=rwx file1
$ ll file1
-rwxrwxrwx. 1 user1 user1 0 Nov 30 12:30 file1

 

Ćwiczenie 2. Modyfikowanie uprawnień do plików korzystając z notacji oktalnej.
W tym ćwiczeniu załóżmy, że właścicielem pliku file2 jest user2 i plik ma prawa dostępu 444. Zalogowany jesteś jako user1.

-r--r--r--. 1 user1 user1 0 Dec 1 08:27 file2

1. Dla właściciela pliku dodaj prawo do wykonywania i zweryfikuj swoją pracę poleceniem ll.

$ chmod 544 file2
$ ll file2
-r-xr--r--. 1 user1 user1 0 Dec 1 08:27 file2

2. Dla grupy dodaj uprawnienia do zapisywania, zweryfikuj swoją pracę.

$ chmod 766 file2
$ ll file2
-rwxrw-rw-. 1 user1 user1 0 Dec 1 08:27 file2

3. Usuń prawo do zapisywania dla użytkowników innych niż właściciel i grupa, zweryfikuj.

$ chmod 764 file2
$ ll file2
-rwxrw-r--. 1 user1 user1 0 Dec 1 08:27 file2

4. Przypisz prawo do zapisu, odczytu i wykonywania dla wszystkich trzech kategorii użytkowników.

$ chmod 777 file2
$ ll file2
-rwxrwxrwx. 1 user1 user1 0 Dec 1 08:27 file2

Leave a Reply

Your email address will not be published. Required fields are marked *