Jeśli miałeś okazję pracować z systemem Unix-owym, to zapewne nie raz spotkałeś się z brakiem możliwości usunięcia pliku lub katalogu. Skoro tutaj trafiłeś, to prawdopodobnie zastanawiasz się w jaki sposób możesz nad tym zapanować, jak nadawać uprawnienia do zasobów w Linuxie oraz jak korzystać z polecenia chmod? 🧐
Dwa sposoby nadawania uprawnień
W systemie Linux występują tylko 3 uprawnienia i można je przypisywać do: właściciela (user-owner), grupy (group) lub pozostałych użytkowników (others). Powyższe uprawnienia można nadawać wspomnianym już poleceniem chmod, które pozwala określić poziom dostępności dla plików lub katalogów.
chmod [OPCJE] TRYB Plik(i)
Wartym uwagi jest fakt, że uprawnienia bazują na stałym schemacie, który można sobie zapisać, np. na kartce w formie ściągi lub po prostu zapamiętać. Jest również opcja dla leniuchów i można korzystać z gotowych generatorów, które są dostępne w sieci 😉
Wartości liczbowe
W poniższej tabeli zebrałem różne opcje praw dostępu, z których można korzystać zmieniając uprawnienia.
Wartość ósemkowa | Wartość literowa | Prawa dostępu |
---|---|---|
7 | rwx | czytanie, pisanie, wykonanie |
6 | rw- | czytanie, pisanie, |
5 | r-x | czytanie, wykonanie |
4 | r– | czytanie |
3 | -wx | pisanie, wykonanie |
2 | -w- | pisanie |
1 | –x | wykonanie |
0 | — | brak |
Zobaczmy więc jak to wygląda w praktyce 🤨
Przykład 1
chmod 755 plik.txt
Co w tym przypadku oznaczają liczby 755?
7 | odczyt, zapis, wykonanie |
5 | odczyt, wykonanie |
5 | odczyt, wykonanie |
Wiemy teraz, że na plik.txt nałożyliśmy pełne uprawnienia dla właściciela, natomiast pozostali użytkownicy otrzymali tylko odczyt i wykonanie.
Przykład 2
Jeśli powyższe polecenie zmodyfikujemy do postaci z samymi 7 (777), damy pełne uprawnienia dla wszystkich użytkowników systemu.
chmod 777 plik.txt
Przykład 3
A co w przypadku kiedy mamy katalog i chcemy dla wszystkich plików, które się w nim znajdują nadać uprawnienia dające pełne możliwości? Nazwę pliku wystarczy zastąpić znakiem *.
chmod 777 *
Przykład 4
Na koniec przykład, w których mamy katalog, a w nim podkatalogi i pliki. Jeżeli chcielibyśmy wszystkim zasobom zmienić uprawnienia, skorzystamy z parametru -R (recursive).
chmod -R 777 nazwa_katalogu
Kombinacje znakowe
Warto również zaznaczyć, że istnieje też drugi sposób dodawania uprawnień, w którym wykorzystuje się kombinacje znakowe.
Znak | Znaczenie |
---|---|
+ | Dodawanie uprawień |
– | Odejmowanie uprawnień |
= | Ustawienie uprawnienia |
u | Użytkownik |
g | Grupa |
o | Pozostali |
a | Wszyscy |
Przykład 1
Nadawanie uprawień wszystkim użytkownikom do czytania, pisania oraz wykonania uzyskamy w poniższy sposób.
chmod a+rwx plik.txt
Przykład 2
Jeżeli chcemy wszystkim użytkownik zabrać powyższe uprawnienia, wystarczy wykonać identyczne polecenie, zamieniając jedynie znak plusa na minus.
chmod a-rwx plik.txt
Przykład 3
Załóżmy teraz, że chcemy zmienić uprawienia tylko dla grupy z rwx na rw (odczyt i zapis).
chmod g=rw plik.txt
Przykład 4
Na koniec ostatni przykład, w którym chcemy właścicielowi dodać uprawnienia rwx, dla grupy tylko rw, a dla pozostałych użytkowników tylko r.
chmod u=rwx,g=rw,o=r plik.txt
Podsumowanie
W tym artykule to już wszystko. Mam nadzieję, że od teraz magiczne cyferki przy poleceniu chmod nie będą dla Ciebie straszne i biegle będziesz zarządzać uprawnieniami w systemie! 🙂
Jeżeli chcesz być na bieżąco z artykułami i jesteś ciekawy co będzie dalej, daj lajka na profilu FB, a przede wszystkim zapisz się do newslettera! Spodobał Ci się artykuł? Z pewnością zaciekawią Cię inne wpisy na naszym blogu lub filmy na kanale YT!