Składnia polecenia CHMOD i przykłady użycia

CHMOD (change mode) jest poleceniem używanym do zmiany uprawnień dostępu do plików i katalogów w systemach *nixowych. Ustawienia uprawnień mogą być ustawiane w dwojaki sposób: za pomocą wartości numerycznych oraz literowych. Do wyboru do koloru.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

Jak właściwie działa system uprawnień?

Podstawowymi uprawnieniami jakie można przyznać, lub odebrać, są odczyt (read), zapis (write) oraz uruchomienie (execute). Można je ustawić kolejno dla użytkownika (user), grupy (group), reszty (others) i wszystkich (all).

Jak zarządzać uprawnieniami używając wartości liczbowych

Wartościom liczbowym przyporządkowano poszczególne uprawnienia, zatem odczyt ma wartość 4, zapis to 2, uruchomienie – 1, a 0 oznacza po prostu ich brak.

Przykładowo polecenie chmod 740 nazwapliku sprawi, że użytkownik miał możliwość odczytu, zapisu i uruchomienia (4+2+1=7), grupa wyłącznie odczytu (4) zaś reszta brak uprawnień do nazwapliku.

Jak zarządzać uprawnieniami korzystając z wartości literowych

Drugie podejście operuje pogrubionymi wcześniej oznaczeniami użytkowników i uprawnień oraz specjalnymi operatorami = do ustawiania konkretnych, + dodanie uprawnień zaś  ich odebranie.

Zatem chcąc ustawić odczyt, zapis i uruchomienia dla użytkownika, odczyt dla grupy i brak uprawnień dla reszty należy wydać należy użyć chmod u=rwx,g=r,o= nazwapliku.

Przykłady użycia

Aby nadać uprawnienia odczytu i zapisu dla użytkownika oraz odczyt dla grupy i reszty:
chmod 644 nazwapliku lub chmod u=rw,go=r nazwapliku.

Wszyscy mają mieć pełne prawa (bardzo, bardzo niezalecane):
chmod 777 nazwapliku lub chmod a=rwx nazwapliku.

Użytkownik ma pełne prawa, grupa ma odczyt i zapis, zaś reszta odczyt:
chmod 764 nazwapliku lub chmod u=rwx,g=rw,o=r nazwapliku.

Używanie wartości literowych ma też inne możliwości. Przykładowo aby odebrać możliwość uruchomienia dla grupy i reszty (niezależnie jakie uprawnienia mieli przedtem):
chmod ga-x nazwapliku

Dodać możliwość odczytu dla użytkownika i grupy:
chmod ug+r nazwapliku

Dodać możliwość zapisu dla użytkownika, odebrać możliwość uruchomienia dla grupy i odebrać możliwość uruchomienia i odczytu dla reszty:
chmod u+w,g-x,o-xr nazwapliku

Bardzo dużą zaletą użycia wartości literowych jest łatwa możliwość zmiany przed chwilą nadanego uprawnienia. Wystarczy po prostu zamienić + na - bądź odwrotnie. Szczególnie przydatne jest to w przypadku debugowania problemów z uprawnieniami gdy chce się je przydzielić tylko na chwilę.