Jak sprawdzić użycie poleceń sudo w systemie Linux?
Opublikowany: 2022-08-24 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.
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
Plik dziennika jest otwierany i możesz przewijać plik lub skorzystać z funkcji wyszukiwania wbudowanych w less, aby wyszukać „sudo”.
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"
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
Wpisy dziennika zawierające sudo
są wymienione w mniejszej liczbie.
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).
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”.
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”.
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ąć.
Klikaliśmy w górną linię, aby zobaczyć szczegóły 24 wpisów w tej sesji.
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.