Specjalne uprawnienia Suid, Guid i Sticky Bit

Specjalne uprawnienia Suid, Guid i Sticky Bit
W Linux wszystko jest plikami, a wszystko ma właścicieli. Specjalny właściciel jest, znany jako root, ma również specjalne uprawnienia do uruchomienia wszystkiego i wszystkiego. Wszyscy inni mają ograniczone uprawnienia i bardzo ograniczony dostęp do plików i folderów. Aby podnieść nasze przywileje, trzeba użyć polecenia sudo. Jednak nie jest dobrym pomysłem, aby podać hasło root losowym ludzi. Więc co możesz zrobić? Cóż, możemy użyć tak zwanego Suid, Guid i Sticky Bits. W tym samouczku będziemy przeglądać koncepcję Suid, Guid i Sticky Bits.

Suid

SUID lub SET ID ID użytkownika właściciela to flaga bitowa uprawnienia, która dotyczy wykonywalnych. SUID pozwala alternatywnemu użytkownikowi uruchomić wykonywalne z tymi samymi uprawnieniami, co właściciel pliku zamiast uprawnień alternatywnego użytkownika.

Użyjmy przykładu, aby zademonstrować Suid. Załóżmy, że są trzech użytkowników: Kalyani, Sara i John. Załóżmy, że Kalyani ma pełny dostęp do korzeni; To znaczy, może użyć polecenia sudo z prawidłowym hasłem. Załóżmy ponadto, że zarówno Sara, jak i John mają mniej lub bardzo ograniczone przywileje na maszynie. Załóżmy teraz, że mamy wykonywalny (np.: Su, używany do zmiany użytkowników), który należy do roota. Pamiętaj, że to ważne; należy do korzenia, a zatem tylko root ma uprawnienia do wykonania!!!

Powiedzmy jednak, że przypisujemy to Suid. Ponieważ przypisaliśmy to SUID, że wykonywalny, su, jest uruchomiony nie jako Sara czy John, ale raczej jako root. Technicznie Sara może uruchomić swoje pliki, a John może uruchomić swoje pliki. Nie mogą one uruchamiać plików należących do korzenia. Jeśli chcą to uruchomić, zazwyczaj musisz wpisać polecenie sudo. Ale tutaj Sara uruchamia plik, którego nie posiada! Zauważamy więc, że podczas korzystania z Suidów wykonywa jest uruchamiana jako właściciel pliku, root, a nie osoba uruchomiona go (np.: Sara lub John).

Na przykład weźmy polecenie Passwd. Polecenie PASSWD służy do zmiany hasła użytkownika. Teraz, jeśli spojrzymy szczegółowo na plik, zauważymy, że zamiast X, który oznacza wykonanie, będzie „S”. „S” oznacza Suid. Zauważysz ponadto, że plik należy do roota. Technicznie oznacza to, że tylko root ma pozwolenie na jego wykonanie; Zauważysz jednak, że każdy może wykonać polecenie. Jako taki, przy ustalonej uprawnieniach Suid, ten konkretny wykonywalny może być wykonany zarówno przez Sarę, jak i Jan, kiedy tak naprawdę nie należy do nich! Zarówno Sara, jak i John otrzymują te same uprawnienia jak root podczas uruchamiania tego konkretnego wykonywalnego. Jest tak, nawet gdy zarówno Sara, jak i John nie mają dostępu do korzeni i nie mają uprawnień korzeniowych.

Krótko mówiąc, z powodu Suida, zarówno Sara, jak i John będą prowadzić polecenie Passwd, jakby były jego właścicielem, rootem!

Teraz załóżmy, że przez chwilę usuwam suid z polecenia Passwd. Zobaczmy, co się stanie (na zdjęciu poniżej).

Zobaczmy teraz, co się stanie, gdy spróbujemy użyć polecenia PASSWD (po usunięciu Suid):

Jak widać, kiedy usunąłem Suid z polecenia Passwd, a następnie próbowałem go wykonać jako Sara, odmówił wykonania. Spowodowało to błąd!

Suid nie jest czymś, co należy lekceważyć, i jako taki należy zachować bardzo ostrożność, przydzielając. W rzeczywistości istnieją specjalne ataki w cyberbezpieczeństwie, które mają dokładnie na celu wyniki wykonawcze działające na Suid.

Aby znaleźć te wykonywalne, które mają zestaw SUID, wpisujemy:

# Aby zdobyć wszystkie suidy
Znajdź /-perm -4000 2> /dev /null
# Aby uzyskać wszystkie GUIDS
Znajdź /-perm -2000 2> /dev /null
# Znajdź wszystkie lepkie bity
Znajdź /-perm -1000 2> /dev /null

Ustawienie SUID

Teraz musimy nauczyć się ustawiać suidy. Istnieją dwa sposoby używania CHMOD: numeryczne i symboliczne.

Za pomocą metody numerycznej:

Używamy następującego kodu do ustawiania uprawnień:

Setuid = 4
Setgid = 2
Lepki = 1
Brak = 0
Odczyt = 4
Write = 2
Wykonaj = 1

Podczas regularnych uprawnień napisalibyśmy następujące:

CHMOD 0777 Wykonalny

Ten ostatni sugerowałby, że dajemy odczyt, pisząc i wykonując uprawnienia użytkownikowi, grupie i innych. Teraz, używając Suida, napisalibyśmy następujące:

CHMOD 4XXX

Były:

Skrypt CHMOD 4744

Tutaj musimy zwrócić uwagę na 4 w pierwszej pozycji. 4 daje uprawnienia Suid.

Tutaj wyglądałoby tak:

X do wykonywania zostanie zastąpione przez „S”. Teraz, jeśli plik nie został ustawiony na wykonywalne, będzie to kapitał s („s”). Więc tutaj mamy:

-RWSR-r--

„S” oznacza, że ​​SUID został ustawiony (a plik jest wykonywalny)!

Za pomocą metody symbolicznej:

To samo można przeprowadzić również metodą symboliczną:

chmod u+s wykonywalny

Były:

chmod u+s skrypt

Teraz są chwile, kiedy możesz zobaczyć kapitał „S”. Kapitał „s” oznacza, że ​​plik nie jest jeszcze wykonywalny.

Aby odwołać prawa SUID, wpisz:

CHMOD U-S

Były:

skrypt chmod U-S

Guid

Guid jest podobny do Suid. W SUID przedmiotowy wykonywany działa z uprawnieniami właściciela pliku. W Guid, jeśli jest wykonywalny, działa on z uprawnieniami grupy. Jeśli jest to katalog, powoduje to wszystkie nowe pliki i katalogi utworzone tak, aby należeć do grupy.

Aby ustawić GUID za pomocą metody numerycznej:

CHMOD 2XXX

Były:

Skrypt CHMOD 2744

Tutaj należy zwrócić uwagę na 2 (w pierwszej pozycji), który oznacza GUID.

Aby ustawić GUID za pomocą metody symbolicznej:

CHMOD G+S PLIGELABLABLE

Były:

skrypt chmod g+s

Jednak tutaj najpierw widzę:

Tutaj jest kapitał „S”. Oznacza to, że plik nie jest wykonywalny. Można to łatwo naprawić, wykonując następujący kod:

CHMOD +x wykonywalny

Były:

skrypt chmod +x

Lepkie bity

Lepkie bity mają zastosowanie do katalogów. Gdy lepkie bity są ustawione w konkretnym katalogu, każdy użytkownik, który ma dostęp do katalogu i jego zawartości, może tylko usunąć własne pliki i nie może dotykać ani usuwać plików należących do kogoś innego. Lepkie bity są zwykle używane podczas korzystania z folderu udostępnionego. Nikt nie może usunąć pliku innej osoby w folderze udostępnionym, nawet jeśli pozwolenie wynosi 777.

Aby ustawić lepkie bity za pomocą metody numerycznej:

CHMOD 1xxx wykonywalny

Były:

Skrypt CHMOD 1744

Tutaj używamy 1 w pierwszej pozycji, aby oznaczyć, że będzie to lepki kawałek.

Aby ustawić lepkie bity za pomocą metody symbolicznej:

chmod o+t wykonywalny

Były:

chmod o+t skrypt

Uprawnienia są kluczową częścią Linuksa. Polecenie CHMOD jest zwykle używane do ustawiania i modyfikowania prostych uprawnień. Istnieją jednak specjalne uprawnienia, które można ustawić za pomocą polecenia CHMOD. Te specjalne uprawnienia są znane jako Suid, Guid i Sticky Bit. Po zastosowaniu na konkretnym wykonywalnym, specjalne uprawnienia działają z uprawnieniami właściciela pliku lub grupy. Innymi słowy, podnosi uprawnienia użytkownika do uprawnień właściciela, zwykle korzeni, tymczasowo podczas korzystania z tego wykonywalnego. Jednak nieprawidłowe wykorzystanie specjalnych uprawnień może stać się poważnym zagrożeniem. W rzeczywistości w dziedzinie bezpieczeństwa cybernetycznego jest wykorzystywana jako potencjalna podatność na eskalację uprawnień. Więc używaj go mądrze i bardzo, bardzo ostrożnie!

Szczęśliwe kodowanie!