Cosa fa il servizio sudo?


17

Per quanto ne so e sembra che altre persone abbiano la stessa opinione sudo è un comando che esegue qualcosa con privilegi amministrativi.

Tuttavia quando corro rcconfposso vedere questa linea:

[*] sudo    Provide limited super user privileges to specific users

Che senso ha questo servizio? O è anche un servizio?


Questo è quello che ho trovato durante la ricerca su Google-> Sudo
adi,

"Qui entra in gioco sudo: consente agli utenti autorizzati (normalmente" Amministrativi "; per ulteriori informazioni, consultare AddUsersHowto) di eseguire determinati programmi come Root senza dover conoscere la password di root." - È esattamente quello che ho detto nella mia domanda.
s3v3n,

3
La domanda riguarda il servizio, non il comando
s3v3n

Risposte:


22

Risposta breve

Per revocare le azioni di autenticazione "memorizzate nella cache" degli utenti al riavvio. Non è un demone, solo uno script eseguito all'avvio.


Ampia risposta

Ispezionando il file init /etc/init.d/sudoche "avvia il servizio", puoi facilmente vedere cosa sta facendo:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Quindi, in sostanza, tocca solo alcuni file /var/lib/sudoall'avvio del sistema per avere un timestamp di modifica molto vecchio. Di conseguenza, le azioni di autenticazione concesse "memorizzate nella cache" vengono revocate all'avvio del servizio (che si verifica all'avvio).

Qualche dettaglio in più sulla /var/lib/sudodirectory e quei timestamp, per favore? Bene, dalla mappa di sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

Risposta perfetta :)
s3v3n,

12

Il sudofile di servizio esiste per assicurarsi che i privilegi richiesti non rimangano dopo il riavvio. Fondamentalmente garantisce che dopo il riavvio, gli utenti normali che hanno richiesto le autorizzazioni di root rimarranno come utenti normali.


Una spiegazione dettagliata su sudo

Tutte le spiegazioni qui sotto sono di ottenere tutte le informazioni per tutti coloro che leggono questa domanda e quindi spiegare cosa ci fa il file sudo nella cartella del servizio.

Quando si installa Ubuntu o qualsiasi altra distribuzione che utilizza sudola differenza tra essere root ed essere un utente che utilizza sudoper ottenere privilegi "root like" (privilegi amministrativi o super utente) è il seguente:

Come radice

  • Non viene richiesta una password per ciascuno o tutti i comandi eseguiti in una sessione
  • Non tutti i comandi eseguiti verranno registrati per impostazione predefinita
  • Il sistema presuppone che tu sappia cosa stai facendo (motivo per cui non richiede una password ogni volta che esegui un comando)
  • Non vi è alcuna seconda possibilità o opzione dell'ultimo minuto se si commette un errore

Come sudo

  • Viene richiesta una password per ciascuno o tutti i comandi eseguiti in una sessione. Ad esempio, se si apre un terminale ed si esegue un comando che necessita di privilegi di amministratore, verrà richiesta una volta la password per quella sessione fino alla chiusura del terminale o alla disconnessione. Questo varia a seconda del comando che usi e dove. Potrebbe chiedere una o più volte.
  • Tutti i comandi eseguiti verranno registrati poiché in realtà si richiede l'autorizzazione per utilizzare un comando con privilegi di superutente.
  • Il sistema presume che tu stia richiedendo l'autorizzazione temporaneamente e il diritto amministrativo verrà prestato temporaneamente (fino alla disconnessione, alla chiusura del terminale, ecc.)
  • Hai un'opzione dell'ultimo minuto per correggere qualsiasi errore. Questo viene fatto nel momento in cui ti viene richiesta la password.

Perché è stato creato SUDO

La creazione di SUDO è stata eseguita perché in passato l'utilizzo di root ha creato più problemi che soluzioni. Gli utenti hanno tutti i diritti, il che significava che se hanno fatto un po 'di pulizia di primavera e letteralmente cancellato il /usr, /libe /bincartelle (perché pensavano che non li necessari) .. indovinate cosa sarebbe successo. Molti problemi in passato erano dovuti al fatto che gli utenti non conoscevano il potere che avevano quando utilizzavano root. Fondamentalmente avevano root ma non capivano Linux, la gerarchia del file system, quali file erano importanti, ecc. (Qualcosa come avere un Ferrari e non saper guidare ... in autostrada!)

SUDO viene utilizzato anche dalle app GUI (come Update Manager) quando hanno bisogno di privilegi amministrativi temporanei per fare qualcosa. Ne hanno bisogno solo per una quantità specifica di comandi (in genere 1) e poi tornano al privilegio a livello di utente. Questo per evitare di avere sempre i privilegi di root ed evitare di fare un errore se l'utente decide di rimuovere alcune parti importanti del sistema.

Inoltre offre una migliore sicurezza perché l'utente root viene disabilitato per impostazione predefinita.

Infine, se hai un PC desktop o un server, non vuoi davvero che tutti siano root, né che disponga di tutti i privilegi di amministratore. Pessima idea se la tua sorellina o fratellini inizia a chiedersi cosa succederebbe se /bootincontrasse la DELchiave. Questo è dove sudoentra per ridurre la possibilità che accada qualcosa di brutto.

Che cosa significa fornire privilegi di superutente limitati a utenti specifici ?

l'utente sudo o i sudoer hanno effettivamente un file di configurazione che dice loro quanto è limitato o aperto il comando sudo per un utente specifico. Il file /etc/sudoerscontiene tutte le informazioni per limitare o consentire l'accesso a un utente sudo. Per impostazione predefinita, viene fornito l'accesso a tutto, ma è possibile configurarlo o limitarlo come si desidera.

Per informazioni su come utilizzare il tipo di file sudoers man sudoersin un terminale. Ad esempio il formato normale è:

HOST UTENTE = COMANDI

Ad esempio cyrex server1 = /bin/ls, consentirà all'utente cyrex di accedere al server host1 per eseguire il comando ls.

Ad esempio cyrex server1 (root) = /bin/ls, consentirà all'utente cyrex di accedere al server host1 per eseguire il comando ls come root.

Ad esempio cyrex ALL = /bin/ls, darà all'utente cyrex in tutti gli host l'accesso per eseguire il comando ls.

Ad esempio cyrex ALL = ALL, darà all'utente cyrex l'accesso a tutti gli host per eseguire tutti i comandi.

Ad esempio luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall, mi consentirà di eseguire sudo per i comandi kille killallcome root senza chiedere una password.

inserisci qui la descrizione dell'immagine


2
Sa cosa fa il comando sudo. La domanda riguarda un servizio di sistema per sudo.
gertvdijk,

1
@gertvdijk - Ho dovuto prima spiegare le basi, poiché non solo lui guarderà a questa domanda. L'ultima parte include l'unico motivo che vedo per il file sudo nella cartella del servizio.
Luis Alvarado,

Grazie Luis Alvarado - The Wolver per informazioni così estese e grazie per il divertente xkcd modificato che fa riferimento !!all'operatore bang bang, ma cosa fa il servizio (NON il comando) sudo? Sarebbe bello se potessi aggiornare la tua risposta per rispondere davvero alla domanda.
s3v3n,

1
Un po 'di eccessiva spiegazione di tutto ciò solo per una frase alla fine, ma risponde alla mia domanda;)
s3v3n

1
@ LuisAlvarado-TheWolverine Haha, hai ragione. Era stato bello che mi rispondessi sì, l'ho fatto .. Grazie
Lucio il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.