Jak korzystać z specjalnych uprawnień, setuid, setgid i lepkie bity

Jak korzystać z specjalnych uprawnień, setuid, setgid i lepkie bity

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