Jak sprawdzić użycie poleceń sudo w systemie Linux?

Opublikowany: 2022-08-24
Laptop z systemem Linux wyświetlający monit o bash
fatmawati achmad zaenuri/Shutterstock.com

Polecenie sudo daje użytkownikowi uprawnienia administratora lub roota. Bez wątpienia wygłosiłeś im mowę „z wielką mocą przychodzi wielka odpowiedzialność”. Oto jak sprawdzić, czy słuchali, czy nie.

Dowództwo sudo

Polecenie sudo oznacza „zamień użytkownika do”. Pozwala upoważnionej osobie wykonać polecenie tak, jakby była innym użytkownikiem. Może przyjmować parametry wiersza poleceń, z których jednym jest nazwa użytkownika, jako którego chcesz wykonać polecenie. Najczęstszym sposobem użycia sudo jest pominięcie opcji wiersza poleceń i użycie domyślnej akcji. To skutecznie wykonuje polecenie jako użytkownik root.

Korzystanie z sudo w ten sposób wymaga specjalnego pozwolenia. Tylko uprzywilejowani mogą używać sudo . Podczas instalowania nowoczesnej dystrybucji Linuksa pojawia się monit o ustawienie hasła roota, którego można używać z sudo . Uprawnienie do tego jest przyznawane zwykłemu użytkownikowi utworzonemu podczas instalacji. Jest to preferowany sposób obsługi dostępu do możliwości użytkownika root. Starym sposobem było utworzenie użytkownika root i zalogowanie się jako oni w celu administrowania systemem.

To był niebezpieczny scenariusz. Łatwo było zapomnieć lub być zbyt leniwym, aby wylogować się i zalogować ponownie jako zwykły użytkownik, gdy nie potrzebujesz już uprawnień roota. Wszelkie błędy, które popełniłeś w oknie terminala jako root, zostaną wykonane, bez względu na to, jak drastyczne. Rzeczy, które byłyby blokowane przez powłokę, gdyby zwykły użytkownik próbował to zrobić, działałyby bez pytania, gdy root o to poprosił. Używanie konta root zamiast zwykłego konta również stanowi zagrożenie bezpieczeństwa.

Jak kontrolować dostęp sudo w systemie Linux
POWIĄZANE Jak kontrolować dostęp sudo w systemie Linux

Używanie sudo skupia umysł. Wchodzisz na te same niebezpieczne wody, ale świadomie to wybierasz i miejmy nadzieję, że bardzo uważasz. Przywołujesz swój status superużytkownika tylko wtedy, gdy musisz zrobić coś, co ich potrzebuje.

Jeśli otworzysz dostęp do roota innym użytkownikom, chcesz wiedzieć, że zajmują się nimi tak samo, jak Ty. Nie chcesz, żeby wykonywali polecenia lekkomyślnie lub spekulacyjnie. Kondycja i dobre samopoczucie instalacji systemu Linux zależy od tego, czy uprzywilejowani użytkownicy będą zachowywać się z szacunkiem i odpowiedzialnością.

Oto kilka sposobów monitorowania ich użycia root.

Plik auth.log

Niektóre dystrybucje prowadzą dziennik uwierzytelniania w pliku o nazwie „auth.log”. Wraz z pojawieniem się i szybkim wprowadzeniem systemd , potrzeba pliku „auth.log” została usunięta. systemd-journal konsoliduje dzienniki systemowe w nowym wówczas formacie binarnym, a journalctl zapewnia sposób na zbadanie lub przeszukanie dzienników.

Jeśli masz plik „auth.log” na komputerze z systemem Linux, prawdopodobnie będzie on znajdować się w katalogu „/var/log/”, chociaż w niektórych dystrybucjach nazwa pliku i ścieżka to „/var/log/audit/audit .dziennik."

Możesz otworzyć plik w less podobny sposób. Pamiętaj, aby dostosować ścieżkę i nazwę pliku do swojej dystrybucji i bądź przygotowany na wypadek, gdyby Twój Linux nawet nie utworzył pliku uwierzytelniającego.

To polecenie działało na Ubuntu 22.04.

 mniej /var/log/auth.log 

Patrząc na plik /var/log/auth.log z less

Plik dziennika jest otwierany i możesz przewijać plik lub skorzystać z funkcji wyszukiwania wbudowanych w less, aby wyszukać „sudo”.

Zawartość pliku /var/log/auth.log wyświetlana w less

Nawet przy użyciu funkcji wyszukiwania less , znalezienie interesujących Cię wpisów sudo może zająć trochę czasu.

Powiedzmy, że chcemy zobaczyć, do czego użytkownik o imieniu mary używał sudo . Możemy przeszukać plik dziennika za pomocą grep w poszukiwaniu linii zawierających w sobie „sudo”, a następnie ponownie przepuścić wyjście przez grep i poszukać linii zawierających w nich „mary”.

Zwróć uwagę na sudo przed grep i przed nazwą pliku dziennika.

 sudo grep sudo /var/log/auth.log | grep "maria" 

Używanie grep do filtrowania wpisów, które wspominają mary i sudo

To daje nam linie, które mają w sobie „sudo” i „mary”.

Widzimy, że użytkownik mary otrzymał uprawnienia sudo o 15:25, ao 15:27 otwiera plik fstab w edytorze. To rodzaj aktywności, który zdecydowanie zasługuje na głębsze nurkowanie, zaczynając od rozmowy z użytkownikiem.

Korzystanie z journalctl

Preferowaną metodą w dystrybucjach systemu Linux opartych na systmd jest użycie polecenia journalctl do przeglądania dzienników systemowych.

Jeśli przekażemy nazwę programu do journalctl , przeszuka on pliki dziennika w poszukiwaniu wpisów zawierających odniesienia do tego programu. Ponieważ sudo to plik binarny znajdujący się w „/usr/bin/sudo”, możemy przekazać go do journactl . Opcja -e (pager end) mówi journalctl , że ma otworzyć domyślny plik pagera. Zwykle będzie to less . Wyświetlacz jest automatycznie przewijany w dół, aby pokazać najnowsze wpisy.

 sudo journalctl -e /usr/bin/sudo 

Używanie journalctl do wyszukiwania wpisów zawierających sudo

Wpisy dziennika zawierające sudo są wymienione w mniejszej liczbie.

journalctl wyświetlający wpisy zawierające sudo w mniejszej przeglądarce plików

Użyj klawisza „Strzałka w prawo”, aby przewinąć w prawo, aby zobaczyć polecenie, które zostało użyte przy każdym z wywołań sudo . (Lub rozciągnij okno terminala, aby było szersze).

Przewijanie w bok, aby zobaczyć polecenia używane z sudo

A ponieważ wyniki są wyświetlane w less , możesz wyszukiwać tekst, taki jak nazwy poleceń, nazwy użytkowników i sygnatury czasowe.

POWIĄZANE: Jak używać journalctl do odczytywania dzienników systemu Linux

Korzystanie z narzędzia dzienników GNOME

Graficzne środowiska graficzne zazwyczaj zawierają środki do przeglądania dzienników. Przyjrzymy się narzędziu GNOME logs. Aby uzyskać dostęp do narzędzia dzienników, naciśnij klawisz "Super" po lewej stronie "Spacji".

Wpisz „logi” w polu wyszukiwania. Pojawi się ikona „Dzienniki”.

Kliknij ikonę, aby uruchomić aplikację „Dzienniki”.

Aplikacja Dzienniki GNOME

Kliknięcie kategorii na pasku bocznym spowoduje filtrowanie komunikatów dziennika według typu wiadomości. Aby dokonać bardziej szczegółowych wyborów, kliknij kategorię "Wszystkie" na pasku bocznym, a następnie kliknij ikonę lupy na pasku narzędzi. Wpisz wyszukiwany tekst. Będziemy szukać „sudo”.

Wyszukiwanie wpisów zawierających sudo w aplikacji GNOME Logs

Lista zdarzeń jest filtrowana, aby wyświetlić tylko te zdarzenia, które odnoszą się do polecenia sudo . Mały szary blok na końcu każdej linii zawiera liczbę wpisów w tej sesji zdarzenia. Kliknij linię, aby ją rozwinąć.

Szary blok zawierający liczbę wpisów w sesji sudo

Klikaliśmy w górną linię, aby zobaczyć szczegóły 24 wpisów w tej sesji.

Szczegóły wydarzeń pokazane w rozszerzonym widoku

Przy odrobinie przewijania możemy zobaczyć te same zdarzenia, które widzieliśmy, gdy użyliśmy polecenia journalctl . Niewyjaśniona sesja edycji użytkownika mary w pliku fstab zostaje szybko znaleziona. Mogliśmy wyszukać „maria”, ale to zawierałoby wpisy inne niż jej użycie sudo .

Nie każdy potrzebuje dostępu do roota

Tam, gdzie istnieje prawdziwy, rozsądny wymóg, nadawanie uprawnień sudo innym użytkownikom może mieć sens. Podobnie, sensowne jest tylko sprawdzanie, jak używają – lub nadużywają – tych mocy, zwłaszcza tuż po ich otrzymaniu.