W ciągu ostatnich kilku miesięcy korzystałem z Linuksa (Fedora 10, potem 11) (i cieszę się nim niezmiernie - to tak jakby odkrywać komputery od nowa, tyle rzeczy do nauczenia się).
Dodałem mojego użytkownika do ostatniego wiersza pliku / etc / sudoers, jak pokazano poniżej, aby nie pojawiać się pytanie o hasło podczas wykonywania polecenia sudo:
MyUserName ALL = (ALL) NOPASSWD: ALL
Teraz za każdym razem, gdy wykonuję polecenie za pomocą sudo, wstrzymuje on zauważalną ilość czasu przed faktycznym wykonaniem zadania (~ 10 sekund). Dlaczego tak może być i jak mogę to naprawić? Używam Sudo w wersji 1.7.1 na Fedorze 11 x86 64.
linux
permissions
sudo
anon
źródło
źródło
Odpowiedzi:
Zadałem to pytanie na SO i tutaj zostało przeniesione. To powiedziawszy, nie mam już możliwości edytowania pytania tak, jakbym był jego właścicielem, ani nawet przyjmowania poprawnej odpowiedzi, ale okazało się to prawdziwym powodem, dla którego i jak to rozwiązać:
Znaleziony tutaj Użytkownik „rohandhruva” tam daje prawidłową odpowiedź:
źródło
sudo
polecenie musi patrzeć na nazwę hosta, aby działać? Z czym ma związek moja nazwa hostasudo echo hello
? W każdym razie dzięki za odpowiedźSprawdź, czy demon syslog działa poprawnie; to spowodowało problem dla mnie.
Uruchom następujące polecenie
Czy polecenie powraca w rozsądnym czasie?
Czy pojawia się „Hello world”
/var/log/syslog
?Jeśli tak nie jest, demon syslog ulega awarii. Ponowne uruchomienie powinno rozwiązać problem.
źródło
service rsyslog restart
service rsyslog restart
naprawiono moje wolne polecenia sudo.Czy jeden z plików / katalogów musi odczytać na podłączeniu do sieci, czy może w jakiś sposób wyzwala odczyt z wolnego urządzenia USB? Wypróbuj śledzenie i zobacz, gdzie jest wolne; jeśli minie zbyt szybko, zrób to
Każda linia rozpocznie się od czasu, jaki upłynął od wejścia do poprzedniego połączenia systemowego.
(Pierwsze sudo wydaje się konieczne; nie wiem, jak bardzo to zaburzy wyniki).
źródło
Niedawno odkryłem, że mam ten sam problem. Nie było opóźnienia sudo, a potem nagle około 10-20 sekund opóźnienia. Określiłem konkretny problem za pomocą:
Jak ty:
A następnie dowiedz się, gdzie zawieszają się połączenia systemowe.
W MOIM przypadku okazało się, że wisi on na tłumaczeniu DNS, najwyraźniej jeden z DNSenów na mojej liście
/etc/resolv.conf
był bardzo mętny lub zepsuł się. Zmieniłem więc kolejność rozdzielczości i poof rzeczy znów działały szybko.źródło
hosts
wiersza w moim pliku /etc/nsswitch.conf. Dodałem „resolver dns” jako prefiks dohosts
wartości. Kiedy usunąłem ten prefiks, sudo znów było szybkie.Nie jestem pewien co do Fedory, ale korzystałem z innych systemów, w których sudo sprawdzałoby, skąd jesteś zalogowany, co jeśli nie skonfigurujesz DNS, może upłynąć wiele czasu. Można to również zaobserwować, gdy SSH'ing do maszyny - wymyśla monit.
źródło
Mam ten sam problem, sprawdziłem /var/log/auth.log i syslog pod kątem błędów. Okazuje się, że mój serwer LDAP nie był dostępny i wszystko spowolniło.
Nie używałem już uwierzytelniania opartego na LDAP, więc usunąłem wszystkie odwołania do „ldap” z /etc/nsswitch.conf
Od tego czasu wszystko znów działa jak urok.
źródło
W takim przypadku nazwa hosta (skonfigurowana w
/etc/sysconfig
/ network) nie istnieje w/etc/hosts
pliku; więc po dodaniu wyżej wymienionego pliku, plik zostanie natychmiast otwarty.źródło
Miałem podobny problem, naprawiłem go, umieszczając zarówno nazwę hosta (np. Mybox), jak i pełny wynik polecenia nazwy hosta (mybox.mydomain.com). To wszystko wyjaśniło. Poszedłem z 2 minut do otwarcia / etc / hosts do natychmiastowego dostępu.
źródło
Obudowa SELinux
Jeśli to samo polecenie sudo jest powolne tylko w demonie i szybkie w linii poleceń, najprawdopodobniej jest to spowodowane przez SELinux . (SELinux = moduł jądra Linux z ulepszonymi zabezpieczeniami NSA, domyślnie włączony w Fedorze).
Typowym przypadkiem jest serwer http i specjalny skrypt do zarządzania serwerem, ograniczony w
sudoers
:W tym przypadku typowe jest to, że w dzienniku kontroli nic nie jest zgłaszane o SELinux
ausearch -m avc -ts today
, ale skrypt działa szybko, jeśli tymczasowo wyłączymy wymuszanie przezsetenforce 0
. (a następnie włącz ponownie przezsetenforce 1
)Jedynymi istotnymi komunikatami w dzienniku systemowym (Journalcrl) są te z opóźnieniem 25 sekund:
Rejestrowanie wszystkich cichych komunikatów SElinux „bez kontroli” można włączyć
semodule -DB
i wyłączyć ponownie przezsemodule -B
.(Mam nadzieję, że wkrótce napiszę tutaj moduł zasad SELinuksa dla tego przypadku lub można użyć metody z tej odpowiedzi ).
źródło
fprintd
(uwierzytelnienia odcisków palców) winowajcy. Usunięciefprintd
ifprintd-pam
rozwiązanie problemu dla mnie.Patrząc na przykładowy
sudoers
plik, który mam, sądzę, że poNOPASSWD:
bicie powinna być spacja .źródło
Sprawdź plik / etc / hosts i upewnij się, że masz wpis 127.0.0.1
( źródło )
źródło
Po naprawieniu problemów z hostem upewnij się, że wyczyściłeś złą pamięć podręczną DNS, jeśli korzystasz z aplikacji buforującej DNS, takiej jak nscd:
źródło
Dla mnie instalowano krb5-user / config / locales. Zauważyłem to, sprawdzając /var/log/auth.log. Naprawiono go za pomocą apt-get remove w celu odinstalowania tych pakietów. Nie usuwaj tych pakietów, jeśli oczywiście korzystasz z komputera Kerberos (pam_krb5).
źródło
Czy używasz LDAP do uwierzytelniania?
Jeśli tak, prawdopodobnie chcesz użyć miękkiej polityki wiązania. W /etc/ldap/ldap.conf (lub /etc/ldap.conf):
źródło
Wygląda na to, że masz jakiś limit czasu w łańcuchu uwierzytelniania. Sprawdź, jak sudo próbuje się uwierzytelnić i wypatruj wąskich gardeł.
źródło
Sprawa systemowa
Dla mnie w moim systemie zabrakło pamięci i wiele procesów uległo awarii. Mój system opiera się na systemd i coś się tam zawiesiło. Trudno mi zapamiętać wszystko, co zrobiłem, ale:
systemctl status <any.service>
przekroczyłby limit czasusudo reboot
(na podstawie systemowej)Rozwiązanie
Ponowne uruchomienie naprawiło mój problem, ale dla mnie była to tylko bandaid. Nadal musisz dowiedzieć się, dlaczego zabrakło Ci pamięci / uległa awarii.
źródło