Perché il command sudo richiede molto tempo per eseguire?

Ho ripreso Linux (Fedora 10, poi 11) negli ultimi mesi (e godo immensamente, è come scoprire di nuovo i computer, tante cose da imparare).

Ho aggiunto il mio utente all'ultima row del file / etc / sudoers come mostrato di seguito, in modo che non mi chiedi la password quando esegui il command sudo:

  • Devi duplicare i pacchetti UDP a più destinazioni tramite iptables
  • Alternative per la creazione di heapdumps con performance superiori a jmap?
  • Come modificare il field "sender:" nell'intestazione di Logwatch email
  • sudo -u non riesce con env: -u: nessun file o directory del genere
  • Perché / proc / cpuinfo mostra diverse bandiere per i core della stessa CPU?
  • Problema di accesso SSH: debug1: in attesa di SSH2_MSG_KEX_DH_GEX_REPLY
  • MyUserName ALL = (ALL) NOPASSWD: TUTTI

    Ora each volta che eseguo un command usando il sudo, interrompe una quantità notevole di tempo prima di effettivamente eseguire l'operazione (~ 10 secondi). Perché questo potrebbe essere e come posso risolvere questo problema? Sto facendo eseguire Sudo versione 1.7.1 su Fedora 11 x86 64.

  • come get il proprio process pid dal prompt dei comandi nelle windows
  • Come posso configurare netcat (o qualche altra utilità linux di riserva) per ascoltare su una port specifica su un indirizzo IP secondario?
  • Copia di 10 milioni di immagini in una singola cartella su un altro server
  • Suggerimenti per la protezione di un server LAMP
  • Fail2Ban - come impedire la mia IP dinamico ISP vietato?
  • versione con less duplicazione di dati
  • 15 Solutions collect form web for “Perché il command sudo richiede molto tempo per eseguire?”

    Ho chiesto questa domanda su SO ed è stato spostato qui. Detto questo non ho più la capacità di modificare la domanda come se l'avessero posseduta o addirittura accettare la risposta corretta, ma questo è risultato essere la vera ragione per cui e come risolverlo:

    Trovato qui L' utente "rohandhruva" là dà la risposta giusta:

    Ciò avviene se si modifica il nome host durante il process di installazione.

    Per risolvere il problema, modificare il file / etc / hosts

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 <ADD_YOURS_HERE> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <ADD_YOURS_HERE> 

    Controllare che il demone syslog funzioni correttamente; questo ha causato la questione per me.

    Eseguire il seguente command

     logger 'Hello world' 
    1. Il command ritorna entro un lasso di tempo ragionevole?

    2. 'Hello world' compare in /var/log/syslog ?

    Se questo non è il caso, il demone syslog si è schiantato. Riavviarlo dovrebbe risolvere il problema.

    È uno dei file / directory necessari per leggere in un supporto in networking o sta in qualche modo innescare la lettura da un dispositivo usb lento? Prova a guardare e vedere where è lento; se va troppo veloce, fai

     sudo strace -r -o trace.log sudo echo hi 

    Ogni row comincerà con il tempo necessario dall'entrata nel precedente syscall.

    (Il sudo iniziale sembra necessario, non so quanto possa perturbare i risultati.)

    Non sono sicuro di Fedora, ma ho usato altri sisthemes in cui il sudo avrebbe verificato where sei connesso, che se il tuo DNS non è impostato bene può richiedere tempi di timeout. Questo può anche essere visto quando SSH entra in macchina – ci vuole età per venire con un prompt.

    Recentemente ho scoperto che ho avuto lo stesso problema. Non c'era stato nessun ritardo di sudo e poi improvvisamente, circa un ritardo di 10-20 secondi. Ho determinato il problema specifico utilizzando:

      1. chmod u+s /usr/sbin/strace (as the root user) 

    Come te stesso:

      1. sudo -K 2. strace sudo /bin/tcsh 

    E poi scopri where le chiamate del sistema sono appese.

    Nel mio caso, ho scoperto che stava appeso a una traduzione DNS, apparentemente uno dei DNS nella mia list su /etc/resolv.conf era molto buzy o andato male. Così ho cambiato l'ordine di risoluzione e le cose hanno fatto funzionare rapidamente.

    In tal caso, si trova che il nome host (configurato in / etc / sysconfig / network) non esiste nel file / etc / host; quindi, aggiungendo nel file di cui sopra, il file si apre prontamente

    sudoers file di sudoers esempio, credo che ci sia uno spazio dopo il NOPASSWD: bit.

    Ho avuto un problema simile, ho risolto posizionando il nome host (ad es. Mybox) e l'output completo del command hostname (mybox.mydomain.com). Questo lo ha eliminato. Passato da 2 minuti per aprire / etc / hosts all'accesso istantaneo.

    Dopo aver risolto tutti i problemi dell'host assicurarsi di eliminare qualsiasi cache DNS difettosa se si esegue un'applicazione di cache DNS come il nscd:

     /etc/init.d/nscd force-reload 

    Per me è stato installato l'utente krb5-user / config / locales. Ho notato questo esaminando /var/log/auth.log. L'utilizzo di apt-get rimuove per disinstallare questi pacchetti lo ha risolto. Non rimuovere questi pacchetti se si è in un computer che necessita di kerberos (pam_krb5) ovviamente.

    Ho esaminato lo stesso problema, ho controllato /var/log/auth.log e syslog per errori. Risulta che il mio server LDAP non è stato raggiunto e ha rallentato tutto.

    Non ho più utilizzato l'authorization LDAP, quindi ho rimosso tutti i riferimenti "ldap" da /etc/nsswitch.conf

    Da allora tutto funziona come un nuovo fascino.

    Caso SELinux

    Se lo stesso command sudo è lento solo in un demone e veloce sulla row di command, allora è probabilmente causato da SELinux . (SELinux = NSA Security-Enhanced module kernel Linux, abilitato in Fedora per impostazione predefinita.)

    Un caso tipico è un server http e uno script speciale per la gestione del server, limitato a sudoers :

     apache ALL=(root_or_user) NOPASSWD: /full/path/the_safe_command 

    È tipico in questo caso che niente di SELinux viene riportto nel registro di controllo ausearch -m avc -ts today , ma lo script sta andando veloce se disabilitamo temporaneamente l'applicazione da setenforce 0 . (e poi abilitazione indietro da setenforce 1 )

    I soli messaggi rilevanti nel registro di sistema (journalcrl) sono questi dopo il ritardo di 25 secondi:

    … sudo […] pam_systemd (sudo: session): Imansible creare la session: non ha ricevuto una risposta. Le cause possibili includono: l'applicazione remota non ha inviato una risposta, la politica di protezione del bus di messaggi bloccato la risposta, il timeout di risposta è scaduto o la connessione di networking è stata interrotta.
    … sudo […]: pam_unix (sudo: session): session aperta per root utente da (uid = 0)

    La logging di tutti i messaggi silenziati "dont-audit" SElinux può essere abilitata da semodule -DB e distriggersta da semodule -B .
    (Spero che presto scrivo presto un module di policy SELinux per questo caso o un metodo da questa risposta può essere utilizzato.)

    Stai utilizzando LDAP per l'authentication?

    Se è così, probabilmente si desidera utilizzare il binding policy morbido. In /etc/ldap/ldap.conf (o /etc/ldap.conf):

     bind_policy soft 

    Controllare il file / etc / hosts e assicurarsi di avere una voce per 127.0.0.1

    ( fonte )

    Sembra che tu abbia un certo tipo di timeout nella tua catena di authentication. Controllare come il sudo tenta di autenticare e di guardare i colli di bottiglia.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.