Krótka wersja: Jak wyłączyć wiadomości kontrolne (dmesg) w systemie Fedora?
System Fedora ciągle rejestruje komunikaty „audyt: sukces” w dmesg - w tak ekstremalny sposób, że dmesg stał się bezużyteczny, ponieważ jest wypełniony tymi wiadomościami ( dmesg | grep -v audit
jest pusty). Te wiadomości są całkowicie bezużyteczne, ponieważ oczywiście chcą poinformować użytkownika, że niektóre codzienne procesy wewnętrzne zakończyły się powodzeniem (co może być interesujące podczas debugowania czegoś, ale w tym przypadku jest to po prostu szum).
Nawet interfejs wiersza poleceń (podczas przełączania na tty inne niż X za pomocą Ctrl+ Alt+ F2) stał się bezużyteczny, ponieważ zawsze jest zaśmiecony tymi komunikatami audytu, niemożliwe jest odczytanie danych wyjściowych poleceń, które są faktycznie uruchamiane przez użytkownika. Na przykład po wprowadzeniu nazwy użytkownika (loginu) wysyła się komunikat kontrolny (najwyraźniej informujący użytkownika, że coś zostało sformatowane / wydrukowane pomyślnie):
audit: type = 1131 audit (1446913801.945: 10129): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'unit = fprintd comm = "systemd" exe = "/ usr / lib / systemd / systemd" nazwa hosta =? addr =? terminal =? res = sukces ”
Wygląda na to, że większość z tych komunikatów oznacza „sukces”, jednak istnieje również wiele komunikatów z audytu, które nie zawierają tego słowa kluczowego. Uruchomienie Chromium uruchamia setki z nich:
audit: type = 1326 audit (1446932349.568: 10307): auid = 500 uid = 500 gid = 500 ses = 2 pid = 1593 comm = "chrome" exe = "/ usr / lib64 / chrome / chrome" sig = 0 arch = c000003e syscall = 273 kompatybil = 0 ip = 0x7f9a1d0a34f4 kod = 0x50000
Inne wiadomości obejmują:
audit: type = 1131 audit (1446934361.948: 10327): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'unit = NetworkManager-dispatcher comm = "systemd" exe = "/ usr / lib / systemd / systemd" nazwa hosta =? addr =? terminal =? res = sukces ”
audit: type = 1103 audit (1446926401.821: 10253): pid = 28148 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'op = PAM: setcred grantors = p am_env, pam_unix acct = "user" exe = "/ usr / sbin / crond "nazwa hosta =? addr =? terminal = cron res = sukces ”
Zasadniczo większość ostatnich komunikatów kontrolnych (w momencie pisania) zawiera słowo kluczowe „ NetworkManager ” lub „ chrome ”.
Jak można całkowicie wyłączyć te wiadomości?
Dodatkowe punkty:
- Na wypadek, gdyby ktoś pomyślał „powinieneś przeczytać i przeanalizować te wiadomości z audytu, nie wyłączać ich, mogą one być ważne”, nie, nie są one ważne, są to prawie wyłącznie wiadomości o „sukcesie”. Nikt nie musi być informowany, że coś, co powinno działać, faktycznie działało. Jeśli jednak zarejestrowana zostanie jedna naprawdę znacząca wiadomość, nigdy nie zostanie zauważona podczas burzy tysięcy nieistotnych wiadomości. W każdym razie nie jest wymagane rejestrowanie audytu w tym konkretnym systemie (i tak działa on w kontrolowanym środowisku).
- Najwyraźniej coś musi być bardzo źle skonfigurowane w tym systemie. Jednak była to kiedyś domyślna instalacja Fedory, która była aktualizowana za każdym razem, gdy pojawiała się nowa wersja. Być może jest to tylko proste ustawienie, które należy zmienić, ale ponieważ nie zdarzyło się ręcznie zmienić konfiguracji systemu (celowo), to pytanie stackexchange.com pomoże innym osobom, które zdarzyły się mieć ten sam stan.
- Teraz jest to system Fedora 22 z systemem Linux 4.0.6 (systemd 219).
- Jest to standardowa instalacja Fedory na pulpicie, obecnie działająca w KDE.
- SELinux jest wyłączony (/ etc / selinux / config jest ustawiony na „disabled”).
Aktualizacja : Po aktualizacji do Fedory 23 (jądro 4.2.5, systemd 222), jest mniej komunikatów kontrolnych niż wcześniej.
audit2allow
, czy zastanawiałeś się nad modyfikacją wartości kernel.printk, która jest istotna przy drukowaniu komunikatów jądra na konsoli? W Fedorze domyślnie jest to „7 4 1 7”, bardziej sensowną wartością jest „3 4 1 7”.Odpowiedzi:
Po pierwsze, na fedorze zarówno auditd, jak i auditctl pochodzą z tego samego pakietu (niepomyślnie nazwany audit). Więc jeśli nie masz audctl, coś innego jest nie tak. Spróbuj tego:
Jeśli to nic nie da, oznacza to, że pakiet audytu nie jest wcale zainstalowany.
Po drugie, pierwsza linia „ludzka” w wymienionym pliku grub.cfg mówi „NIE EDYTUJ” w moim systemie. Jest to wskazówka, że wszelkie ręczne zmiany w pliku mogą zostać utracone.
Poprawnym miejscem do edycji konfiguracji gruba w systemie fedora / redhat jest plik, który specjalnie zasugerowałeś jako niepotrzebny do zmiany (/ etc / default / grub). W rzeczywistości jest to jedyny „bezpieczny” sposób na wprowadzenie proponowanej zmiany i przetrwanie aktualizacji jądra. Jest tak, ponieważ jest on używany jako część konfiguracji źródła podczas aktualizacji jądra, aby zregenerować działający plik grub.cfg. Wyszukaj polecenie grub2-mkconfig (i jego znajomych). Szczegóły są tutaj: https://fedoraproject.org/wiki/GRUB_2
Twoja odpowiedź nie jest zła, ale uznałem ją za nieco mylącą. Nienawidzę wiersza poleceń grub, a IMHO każdy, kto może przegapić dodanie spacji w wierszu poleceń jądra, prawdopodobnie nie podziękowałby nikomu za to, że został poprowadzony tą drogą. Mimo to niektórzy ludzie lubią uczyć się w trudny sposób, jaki znam.
Wszystkie poniższe polecenia muszą być uruchamiane jako root (co samo w sobie jest niebezpieczną rzeczą do zasugerowania).
W przypadku działającego systemu:
Jeśli nie możesz znaleźć audctl, sprawdź ŚCIEŻKĘ i rozważ także:
Powinno to przynajmniej zmniejszyć, jeśli nie wyłączyć wiadomości, do czasu ponownego uruchomienia komputera.
Aby pozostać poza restartem, edytuj / etc / default / grub i zmień wiersz GRUB_CMDLINE_LINUX, aby dodać „audit = 0” na końcu, a następnie użyj grub2-mkconfig, aby zregenerować grub.cfg. Ten ostatni krok nakłada również warstwę sprawdzania poprawności między zmianą a działającym systemem.
źródło
/etc/default/grub
igrub2-mkconfig
należy go wykorzystać. Dodałem poprawkę do mojej odpowiedzi.Możesz szybko tymczasowo wyłączyć kontrolę za pomocą
i tymczasowo usuń wszystkie reguły za pomocą
W przypadku przyszłych butów możesz spróbować wyłączyć jego start
źródło
Nie ma usługi audytującej, która mogłaby zostać wyłączona podczas działania systemu, ale okazuje się, że dodanie opcji rozruchu
audit=0
wydaje się wyłączać wszystkie te komunikaty. System jest ponownie użyteczny, nawet w wierszu poleceń bez uruchomionego X.Tę opcję można ustawić tymczasowo (zmiana nie przetrwa ponownego uruchomienia):
audit=0
. Na przykład... LANG=en_US.UTF-8 audit=0
(...UTF-8audit=0
oczywiście nie).Oczywiście ta zmiana będzie obowiązywać tylko podczas działania systemu. Powódź kontroli powróci po ponownym uruchomieniu. Aby ta zmiana była trwała, konfiguracja rozruchu musi zostać trwale zmieniona. W Fedorze wystarczy po prostu zmodyfikować,
/boot/grub2/grub.cfg
ponieważ po zainstalowaniu nowego jądra (aktualizacja systemu) grubby powinien skopiować opcje najnowszego jądra do nowo zainstalowanego jądra. Oznacza to,audit=0
że należy dołączyć do pierwszegolinux
wiersza (pierwszejmenuentry
sekcji) w tym pliku.Zmiana nie powinna być konieczna./etc/default/grub
Korekta: Właściwie poprawnym i najbardziej niezawodnym podejściem jest edycja
/etc/default/grub
i regeneracja konfiguracji Grub przy użyciugrub2-mkconfig -o /boot/grub2/grub.cfg
, dziękuję KnightLordAndMaster za zwrócenie na to uwagi .Dodatkowa uwaga na temat dzienników kontroli w plikach dziennika:
Na marginesie, następujący wiersz powinien uniemożliwić dziennikom kontroli wylądowanie w plikach dziennika, ale nadal zaśmiecałyby dmesg i konsolę, więc samo to nie jest rozwiązaniem. Ta linia byłaby umieszczona jako pierwsza reguła w
/etc/rsyslog.conf
:Powoduje to wyświetlenie następującego ostrzeżenia:
źródło