Uprawnienia do systemu plików część 2
Witam ponownie! Tym razem przedstawię jak można zmieniać uprawnienia do zasobów plikowych oraz jak można zmieniać właściciela dla pliku czy też folderu. Do tego celu będę wykorzystywał polecenia takie jak: chmod, chown a do utworzenia plików czy też folderów touch (pliki) oraz mkdir (foldery). No to zaczynamy!
Najpierw utworzymy plik do tego użyjemy polecenia touch:
touch plik01
Sprawdźmy jakie są domyślnie nadane uprawnienia do pliku:
ls -l
-rw-rw-r-- 1 user grupa 0 lip 3 13:45 plik01
Jak widać zostały nadane uprawnienia do odczytu oraz zapisu dla twórcy pliku oraz dla podstawowej grupy do jakiej należy użytkownik. Reszta osób posiada uprawnienie do odczytu (wyniki oczywiście na poszczególnych systemach będą się nieznacznie różnić – chodzi mi przede wszystkim o nazwę użytkownika i grupy).
Omówię teraz pokrótce polecenie chmod.
Polecenie chmod służy do zmiany uprawnień do plików oraz folderów. Podstawowa składnia polecenia wygląda następująco:
chmod [opcje] tryb_dostępu plik
Jeśli chodzi o opcje to jak dla mnie całkiem przydatnymi mogą być:
-c lub --changes - to spowoduje wyświetlenie tylko tych plików czy folderów, których prawa uległy zmianie -R lub --recursive - ta opcja z kolei umożliwia zmianę uprawnień do katalogu wraz z całą jego zawartością
Zatem teraz przejdźmy do samego trybu ustawiania uprawnień, a jest to trochę bardziej skomplikowane.
Zacznę więc od trybu numerycznego na początku może się wydawać trudny, ale jest całkiem wygodny. W poprzedniej części pisałem o wartościach jakie przyjmują poszczególne uprawnienia i dla przypomnienia podaje je jeszcze raz:
r (odczyt) - 4 w (zapis) - 2 x (wykonanie) - 1 brak uprawnień - 0
Wiec jeśli chcemy nadać uprawnienia to musimy zsumować odpowiednie liczby dla każdego elementu z osobna, jakiemu nadajemy uprawnienia (właściciel, grupa, inny). Może prościej będzie to na przykładzie:
Chcemy nadać do pliku o nazwie plik01 uprawnienia odczytu i zapisu dla właściciela pliku oraz dla grupy, natomiast nie chcemy nadawać żadnych uprawnień dla wszystkich innych osób.
6 - taka wartość jest dla właściciela (suma r=4 oraz w=2) 6- taka wartość jest dla grupy (suma r=4 oraz w=2) 0 - taka wartość jest dla innych (brak uprawnień to 0)
i zapisujemy w polceniu:
chmod 660 plik01
Teraz nadamy uprawnienia dla pliku wykonywalnego. Plik ten nosi nazwę skrypt. Uprawnienia dla właściciela mają być następujące: odczyt, zapis, wykonanie. Uprawnieniami dla grupy będą odczyt i wykonanie, a dla innych odczyt i wykonanie. Tak będą się przedstawiały następujące wartości dla uprawnień:
7 - taka wartość jest dla właściciela (suma r=4, w=2 oraz x=1) 6 - taka wartość jest dla grupy (suma r=4 oraz x=1) 6 - taka wartość jest dla innych (suma r=4 oraz x=1)
i zapisujemy to w poleceniu:
chmod 766 skrypt
Kolejną możliwością nadawania uprawnień jest korzystanie z formatu trybu symbolicznego. W pełni ten format przedstawia się następująco:
[ugoa...][[+-=][rwxXstugo...]...][,...]
Może jest to trochę nieciekawe na pierwszy rzut oka, ale mam nadzieje, że uda mi się to jakoś rozjaśnić.
u - oznacza właściciela pliku
g - oznacza grupę
o - oznacza wszystkich innych
a - oznacza wszystkich
+ - oznacza dodanie uprawnień do już istniejących
- - oznacza zabranie uprawnień od już istniejących
= - oznacza przypisanie dokładnie tych uprawnień,
które znajdują się po prawej stronie znaku równości
r,w,x - tego chyba nie trzeba tłumaczyć
X - ma przeważnie sens stosowania, wówczas, gdy jest dodawane
uprawnienie. Użycie tego symbolu skutkuje włączenie
uprawnienia wykonania dla pliku, ale tylko i wyłączenie
wtedy, gdy istnieje już takie prawo dla grupy czy innych.
u - oznacza uprawnienia właściciela
g - oznacza uprawnienia grupy
o - oznacza uprawnienia dla innych
s oraz t - zostaną uzupełnione lub ich opis zostanie umieszczony
w innym artykule
To teraz spróbuje przedstawić wyżej wymienioną teorię w na przykładach:
Nasz plik testowy posiada obecnie następujące uprawnienia:
rw – dla właściciela
r – dla grupy
r – dla innych
chmod u+x plik
po wydaniu polecenia zostanie dodane uprawnienie wykonania dla właściciela pliku, więc uprawnienia będą wyglądały dla niego tak: rwx
Nasz plik testowy posiada obecnie następujące uprawnienia:
rw – dla właściciela
r – dla grupy
r – dla innych
chmod ug=rwx plik
po wydaniu polecenia zarówno właściciel pliku jaki grupa będą posiadać pełne uprawnienia do pliku
Nasz plik testowy posiada obecnie następujące uprawnienia:
rw – dla właściciela
r – dla grupy
brak uprawnień – dla innych
chmod u=rw,o=r plik
Nasz plik testowy posiada obecnie następujące uprawnienia:
rwx – dla właściciela
rx – dla grupy
rx – dla innych
chmod o-x plik
po wydaniu polecenie uprawnienie wykonania zostanie zdjęte z innych i będzie wyglądało następująco: r
Następnym poleceniem jakie chce omówić jest polecenie służące do zmiany właściciela oraz grupy dla pliku. Polecenie to nazywa się chown.
Jak można się domyśleć polecenie to pozwala na zmianę właściciela pliku oraz grupy przypisanej do pliku. Polecenie to jest zdecydowanie mniej skomplikowane od poprzedniego, więc od razu zaprezentuję jego składnie:
chown [opcje] [użytkownik]:[grupa] plik...
Przydatne opcje:
--reference=PLIK - przepisuje właściciela i grupę wybranego pliku
-R - przypisanie rekurencyjne do folderu i do wszystkiego co się w tym folderze znajduje
Teraz bez owijania w bawełnę przedstawię parę przykładów, ponieważ nie ma się co nad tym poleceniem rozwodzić.
Przykłady:
chown user plik.txt
Powyższe polecenie czyni użytkownika “user” właścicielem pliku o nazwie “plik.txt”, ponieważ samo użycie jednej nazwy po chmod dotyczny zmiany właściciela.
chown :grupa plik.txt
Powyższe polecenie przypisuje grupę o nazwie “grupa” do pliku o nazwie “plik.txt”.
chown user:grupa plik.txt
Z kolei to polecenie zmienia właściciela oraz grupę dla pliku o nazwie “plik.txt”.
chown -R user folder
Tutaj dokonujemy zmiany właściciela folderu oraz wszystkich elementów jakie się w tym folderze znajdują.
Należy oczywiście pamiętać, że aby poleceniam zmi
Uf to by było na tyle! W kolejnej części postaram się przedstawić polcenia całkiem przydatne jak setfacl oraz getfacl.
Pozdrawiam oraz zachęcam do czytania podręczników systemowych dotyczących poleceń (man polecenie, info polecenie).