Jak korzystać z specjalnych uprawnień, setuid, setgid i lepkie bity
- 4345
- 6
- Pan Jeremiasz Więcek
Cel
Poznanie, jak działają specjalne uprawnienia, jak je identyfikować i ustawić.
Wymagania
- Znajomość standardowego systemu uprawnień Unix/Linux
Trudność
ŁATWY
Konwencje
- # - Wymaga podanych poleceń Linuksa, które można wykonać z uprawnieniami root
bezpośrednio jako użytkownik root lub za pomocąsudo
Komenda - $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny
Wstęp
Zwykle w systemie operacyjnym podobnym do UNIX własność plików i katalogów opiera się na domyślnie UID
(użytkownik) i kołowacizna
(Identyfikator grupy) użytkownika, który je stworzył. To samo dzieje się po uruchomieniu procesu: działa z efektywnym identyfikatorem użytkownika i identyfikatorem grupy użytkownika, który go rozpoczął, oraz z odpowiednimi uprawnieniami. To zachowanie można zmodyfikować za pomocą specjalnych uprawnień.
Bit setuid
Kiedy setuid
Bit jest używany, zachowanie opisane powyżej, jest zmodyfikowane, aby po uruchomieniu wykonywalnego nie działa z uprawnieniami użytkownika, który go uruchomił, ale zamiast tego z właścicielem pliku. Więc na przykład, jeśli wykonywalny ma setuid
Bit na nim ustawiony i jest własnością root, gdy zostanie uruchomiony przez normalnego użytkownika, będzie działał z uprawnieniami root. Powinno być jasne, dlaczego stanowi to potencjalne ryzyko bezpieczeństwa, jeśli nie jest stosowane prawidłowo.
Przykładem wykonywalnego za pomocą zestawu uprawnień setuid jest Passwd
, narzędzie, których możemy użyć do zmiany hasła logowania. Możemy to sprawdzić, używając LS
Komenda:
ls -l /bin /passwd -RwSr -xr -x. 1 root root 27768 11 lutego 2017 /bin /passwd
Jak zidentyfikować setuid
fragment? Jak na pewno zauważyłeś spojrzenie na wyjście powyższego, setuid
bit jest reprezentowany przez S
zamiast X
bit wykonywalny. S
sugeruje, że bit wykonywalny jest ustawiony, w przeciwnym razie zobaczysz kapitał S
. Dzieje się tak, gdy setuid
Lub setgid
bity są ustawiane, ale bit wykonywalny nie jest, pokazując użytkownikowi niespójność: setuid
I setgit
bity nie mają wpływu, jeśli bit wykonywalny nie jest ustawiony. Bit setuid nie ma wpływu na katalogi.
Bit setgid
w przeciwieństwie do setuid
kawałek setgid
Bit ma wpływ zarówno na pliki, jak i katalogi. W pierwszym przypadku plik, który ma setgid
Zestaw bit, po wykonaniu, zamiast uruchomić z uprawnieniami grupy użytkownika, który go rozpoczął, działa z udziałem grupy, która jest właścicielem pliku: innymi słowy, identyfikator grupy procesu będzie taki sam plik.
Zamiast tego, gdy jest używany w katalogu setgid
bit zmienia standardowe zachowanie, aby grupa plików utworzonych we wspomnianym katalogu nie była udziałem użytkownika, który je stworzył, ale sam w samym katalogu nadrzędnym. Jest to często używane do ułatwienia udostępniania plików (pliki będą modyfikowane przez wszystkich użytkowników, którzy są częścią wspomnianej grupy). Podobnie jak setuid, bit setgid można łatwo zauważyć (w tym przypadku w katalogu testowym):
ls -lld test drwxRWSR -x. 2 EGDOC EGDOC 4096 LISTW 1 17:25 Test
Tym razem S
jest obecny zamiast wykonywalnego bitu w sektorze grupy.
Lepki kawałek
Lepki bit działa w inny sposób: chociaż nie ma wpływu na pliki, gdy jest używany w katalogu, wszystkie pliki we wspomnianym katalogu będą modyfikowalne tylko przez ich właścicieli. Typowy przypadek, w którym jest używany, obejmuje /TMP
informator. Zazwyczaj ten katalog jest zapisany przez wszystkich użytkowników w systemie, więc aby uniemożliwić jednemu użytkownikowi usunięcie plików innego, ustawiony jest lepki bit:
$ ls -ld /tmp drwxrwxrwt. 14 Root root 300 listopada 16:48 /tmp
W takim przypadku właściciel, grupa i wszyscy inni użytkownicy mają pełne uprawnienia w katalogu (czytaj, pisz i wykonuj). Lepki bit jest identyfikowany przez T
co jest zgłaszane tam, gdzie zwykle wykonywalny X
bit jest pokazany w sekcji „Inne”. Znowu małe litery T
sugeruje, że bit wykonywalny jest również obecny, w przeciwnym razie zobaczysz kapitał T
.
Jak ustawić specjalne bity
Podobnie jak normalne uprawnienia, specjalne bity można przypisać za pomocą chmod
polecenie za pomocą numerycznej lub UGO/RWX
format. W pierwszym przypadku setuid
, setgid
, I lepki
bity są reprezentowane odpowiednio przez wartość 4, 2 i 1. Więc na przykład, jeśli chcemy ustawić setgid
Bit w katalogu, który wykonamy:
test $ chmod 2775
Za pomocą tego polecenia ustawiamy setgid
Bit w katalogu (zidentyfikowanym przez pierwszą z czterech liczb), i przekazał mu pełne uprawnienia właścicielowi i użytkownikowi, którzy są członkami grupy, do której należy katalog (Pamiętaj, że bit wykonania w katalogu oznacza, że użytkownik jest w stanie płyta CD
w to lub użyj LS
Aby wymienić jej treść).
Innym sposobem możemy ustawić specjalne bity uprawnień, jest użycie składni UGO/RWX:
$ chmod g+s test
Zastosować setuid
Bit do pliku, uruchomilibyśmy:
$ chmod u+s plik
Podczas gdy zastosować lepki bit:
$ chmod o+t test
Zastosowanie specjalnych uprawnień może być bardzo przydatne w niektórych sytuacjach, ale jeśli nie jest właściwie użyte, może wprowadzić poważne luki, więc zastanów się dwa razy przed ich użyciem.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Utwórz i skonfiguruj katalogi setgid do współpracy -…
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Jak utworzyć konto modyfikowania i usuwania użytkowników w systemie Linux
- Linux Pliki konfiguracyjne: Top 30 Najważniejsze
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- Czy Linux może uzyskać wirusy? Badanie podatności Linuksa…
- Pobierz Linux
- Jak podwójnie rozruch Kali Linux i Windows 10
- « Jak automatycznie wykonać skrypt powłoki podczas uruchamiania uruchamiania na systemd Linux
- Jak ulepszyć Debiana 8 Jessie do Debian 9 »