Porady Admina: chmod
Ostatnia aktualizacja: 15 września 2023, 20:09
W dzisiejszym, czterdziestym z kolei wpisie z cyklu Porady Admina zajmiemy się programem chmod.
chmod – zmienia prawa dostępu do pliku.
W systemach operacyjnych typu Unix zestaw flag skojarzonych z każdym plikiem określa, kto może uzyskać dostęp do tego pliku i jak może uzyskać do niego dostęp. Te flagi nazywane są uprawnieniami do plików lub trybami, jak w przypadku „trybu dostępu”. Nazwa polecenia chmod oznacza „tryb zmiany” (change mod). Ogranicza sposób dostępu do pliku.
Program chmod nigdy nie zmienia praw dowiązań symbolicznych, gdyż funkcja systemowa chmod nie potrafi tego dokonać. Nie jest to problemem, ponieważ prawa dowiązań symbolicznych nigdy nie są używane. Jednakże, dla każdego dowiązania symbolicznego, wymienionego w wierszu poleceń, chmod zmienia prawa wskazywanego przez nie pliku. W przeciwieństwie do powyższego, chmod ignoruje dowiązania symboliczne napotkane podczas rekurencyjnego przechodzenia przez katalogi.
Program chmod jest częścią pakietu coreutils.
Składnia
chmod OPCJA UPRAWNIENIA PLIK
Opcje
-c, –changes : jak verbose, ale informowanie tylko gdy zaszła zmiana
-f, –silent, –quiet : wyłączenie większości komunikatów o błędach
-v, –verbose : wypisanie informacji o każdym przetwarzanym pliku
–no-preserve-root : bez traktowania katalogu „/” w specjalny sposób (domyślnie)
–preserve-root : odmowa rekusywnego działania na „/”
–reference=PLIK_WZ : użycie uprawnień pliku PLIK_WZ zamiast wartości UPRAWNIEŃ
-R, –recursive : zmiany też w katalogach i plikach w podkatalogach
–version : output version information and exit
UPRAWNIENIA mają formę:
[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
Załóżmy, że jesteś właścicielem pliku o nazwie PLIK i chcesz ustawić jego uprawnienia, aby:
– użytkownik mógł go czytać, pisać i wykonywać;
– członkowie twojej grupy mogli go przeczytać i wykonać;
– inni mogli to tylko czytać.
chmod u=rwx,g=rx,o=r PLIK
Oto równoważne polecenie używające ósemkowej notacji uprawnień:
chmod 754 PLIK
Tutaj cyfry 7, 5 i 4 pojedynczo reprezentują uprawnienia użytkownika, grupy i innych osób w tej kolejności. Każda cyfra jest kombinacją cyfr 4, 2, 1 i 0:
– 4 oznacza „odczyt” (read)
– 2 oznacza „zapisz” (write)
– 1 oznacza „wykonaj” (execute)
– 0 oznacza „brak pozwolenia” (no permission).
chmod zmienia tryb pliku każdego określonego PLIKU zgodnie z TRYBEM, który może być albo symboliczną reprezentacją zmian do wprowadzenia, albo liczbą ósemkową reprezentującą wzorzec bitowy dla bitów nowego trybu.
Format trybu symbolicznego to:
[ugoa...] [[+-=] [UPRAWNIENIA...]...]
gdzie UPRAWNIENIA to zero lub więcej liter ze zbioru r, w, x, X, s i t lub pojedyncza litera ze zbioru u, g i o. Można podać wiele trybów symbolicznych, oddzielonych przecinkami.
Kombinacja liter u, g, o i a kontroluje dostęp użytkowników do pliku, który zostanie zmieniony: użytkownik, który jest właścicielem pliku (u), inni użytkownicy w grupie pliku (g), inni użytkownicy nie należący do pliku grupa (o) lub wszyscy użytkownicy (a). Jeśli nie podano żadnego z nich, efekt jest taki, jak gdyby podano a, ale nie ma to wpływu na bity ustawione w umask.
Litery r, w, x, X, s i t wybierają bity trybu pliku dla użytkowników, których dotyczy problem: odczyt (r), zapis (w), wykonanie (x), wykonanie tylko wtedy, gdy plik jest katalogiem lub ma już uprawnienia do wykonywania dla jakiegoś użytkownika (X) ustaw identyfikator użytkownika lub grupy przy wykonywaniu (s), flagę ograniczonego usuwania lub bit lepki (t). W przypadku katalogów opcje wykonania X i X określają uprawnienia do przeglądania zawartości katalogu.
Zamiast jednej lub więcej z tych liter możesz podać dokładnie jedną z liter u, g lub o: uprawnienia przyznane użytkownikowi będącemu właścicielem pliku (u), uprawnienia przyznane innym użytkownikom będącym członkami pliku grupa (g) oraz uprawnienia przyznane użytkownikom, którzy nie należą do żadnej z dwóch poprzednich kategorii (o).
Tryb numeryczny obejmuje od jednej do czterech cyfr ósemkowych (0-7), uzyskiwanych przez dodanie bitów o wartościach 4, 2 i 1. Zakłada się, że pominięte cyfry są zerami wiodącymi. Pierwsza cyfra wybiera ustawiony identyfikator użytkownika (4) i ustawiony identyfikator grupy (2) oraz atrybuty ograniczonego usuwania lub przyklejania (1). Druga cyfra wybiera uprawnienia dla użytkownika, który jest właścicielem odczytu (4), zapisu (2) i wykonywania (1); trzeci wybiera uprawnienia dla innych użytkowników w grupie pliku, z tymi samymi wartościami; a czwarty dla innych użytkowników spoza grupy pliku, z tymi samymi wartościami.
Przykłady
Ustaw uprawnienia PLIK.txt na „właściciel może czytać i pisać; grupa może tylko czytać; inni mogą tylko czytać”.
chmod 644 PLIK.txt
Rekursywnie (-R) zmień uprawnienia katalogu TEST1 oraz wszystkich zawartych w nim folderów i plików na tryb 755. Użytkownik może czytać, pisać i wykonywać; członkowie grupy i inni użytkownicy mogą czytać i wykonywać, ale nie mogą pisać.
chmod -R 755 TEST1
Zmień uprawnienia właściciela pliku PLIK2, aby mógł on odczytywać i zapisywać plik. Nie zmieniaj uprawnień dla grupy ani innych osób.
chmod u+s PLIK2
Ustaw uprawnienia PLIK2 na „odczyt, zapis i wykonanie przez właściciela” oraz „odczyt i wykonanie przez grupę i wszystkich innych”.
chmod 666 PLIK2
Więcej informacji o programie chmod uzyskasz poleceniami:
man chmod
chmod --help