Il sudo
file 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 sudo
la differenza tra essere root ed essere un utente che utilizza sudo
per 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
, /lib
e /bin
cartelle (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 /boot
incontrasse la DELchiave. Questo è dove sudo
entra 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/sudoers
contiene 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 sudoers
in 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 kill
e killall
come root senza chiedere una password.