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