Uprawnienia - bity specjalne
Damian Stlemach
Oprócz trzech rodzajów uprawnień, czyli odczytu, zapisu i wykonania, mamy jeszcze do dyspozycji w systemach opartych na jądrze Linux, tak zwane bity specjalne. Są nimi tak zwany lepki bit
(t), a także user ID
(SuID - u), oraz group ID
(GuID - g). Dla zwyczajnych zjadaczy chleba, najistotniejsze jest działania lepkiego bitu, gdyż ma on bardzo fajne zastosowanie. Załóżmy, że mamy katalog, w którym pliki zapisuje kilku użytkowników. Muszą oni mieć prawa zapisu do tego katalogu, bo inaczej nie będą mogli w nim tworzyć zasobów. To jednak niesie za sobą pewne zagrożenie. Otóż, jeśli mają prawa do zapisu, no to mogą też usuwać zawartość, nawet jeśli nie są właścicielem. Konsekwencje mogą być takie, że poszczególni użytkownicy mogą sobie wzajemnie, umyślnie lub też nieumyślnie kasować zasoby. Lepki bit działa tak, że zabrania usuwania zasobów, których użytkownik nie jest właścicielem. Lepki bit można ustawić wydając polecenie:
sudo chmod a+t nazwa_katalogu/pliku (lub ścieżka)
Wówczas, do już nadanych uprawnień dopisany zostanie lepki bit. Można również dodać lepki bit podczas nadawanie uprawnień. Przykładowo jeśli wszyscy mają mieć pełna prawa do danego zasobu z jednoczesnym dodaniem lepkiego bity można polecenie wykonać tak:
sudo chmod 1777 nazwa_katalogu/pliku (lub ścieżka)
Jedynka od lewej strony to przypisanie lepkiego bitu. Po dopisaniu lepkiego bitu w uprawnieniach pojawia się na końcu litera t:
drwxrwxrwt 2 damian damian 4096 Nov 5 08:38 katalog1
Innym specjalnym rodzajem bitu jest GuID
. Działa on tak, że nadaje identyfikator grupy właściwa katalogu wszystkim nowo utworzonym katalogom, bez względu na to kto je tworzy. Dzięki temu wszystkie nowoutworzone zasoby będą miały identyfikator grupy właściciela katalogu nadrzędnego. Jest to opcja przydana kiedy na jednym katalogu pracuje kilku użytkowników, który nie są oni członkami danej grupy, a chcemy aby katalogi, które tworzą miały prawa, nadane dla grupy właściciela. GuID
możemy również przypisać na dwa sposoby:
sudo chmod g+s nazwa_katalogu/pliku (lub ścieżka)
lub
sudo chmod 2777 nazwa_katalogu/pliku (lub ścieżka)
Po nadaniu bitu specjalnego GuID
w uprawnieniach katalogu/pliku, na którym wykonaliśmy polecenie prawo do wykonania dla grupy (x) zmieniło się na S:
drwxrwsrwx 2 damian damian 4096 Nov 5 08:38 katalog1
Podobnie działa ostatni bit specjalny o nazwie SuID
. Kiedy nadajmy taki bit dla pliku, no to wówczas user, który go wykonuje, może to być jakiś skrypt na przykład, robi to na prawach właściciela, a nie na swoich. Analogicznie, SuID możemy przypisać na dwa sposoby:
sudo chmod u+s nazwa_katalogu/pliku (lub ścieżka)
lub
sudo chmod 4777 nazwa_katalogu/pliku (lub ścieżka)
Po nadaniu bitu specjalnego SuID, w uprawnieniach katalogu/pliku, na którym wykonaliśmy polecenie prawo do wykonania dla właściciela (x) zmieniło się na S:
drwsrwsrwx 2 damian damian 4096 Nov 5 08:38 katalog1
Mechanizmy bitów specjalnych GuID
oraz SuID
należy stosować z rozwagą, bo jeśli zostaną użyte w sposób nieprzemyślany to niewłaściwi użytkownicy mogą mieć pełne prawa do plików katalogów, a nie zawsze tego chcemy.
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach! Dziękujemy Wam za poświęcony na to czas!