Il file di servizio sudo
esiste per assicurarsi che i privilegi richiesti non rimangano dopo un riavvio. Fondamentalmente garantisce che dopo il riavvio, gli utenti normali che hanno richiesto i permessi di root rimarranno utenti normali.
Una spiegazione dettagliata su sudo
Tutte le spiegazioni seguenti sono di ottenere tutte le informazioni per tutti coloro che leggono questa domanda e per poi spiegare cosa sta facendo il file sudo nella cartella del servizio.
Quando installi Ubuntu o qualsiasi altra distribuzione che usa sudo
la differenza tra essere root e essere un utente che usa sudo
per ottenere i privilegi "root like" (Privilegi amministrativi o super utente ) è il seguente:
Come root
- Non ti viene richiesta una password per ognuno o tutti i comandi che esegui su una sessione
- Non tutti i comandi che esegui verranno registrati per impostazione predefinita li>
- Il sistema presuppone che tu sappia cosa stai facendo (motivo per cui non richiede una password ogni volta che esegui un comando)
- Non esiste una seconda possibilità o un'opzione dell'ultimo minuto se commetti un errore
Come sudo
- Viene richiesta una password per ognuno o tutti i comandi eseguiti su una sessione. Ad esempio, se apri un terminale ed esegui un comando che richiede i privilegi di amministratore, richiederà 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 che esegui verranno registrati poiché in effetti stai chiedendo il permesso di utilizzare un comando privilegiato per superutente.
- Il sistema ti presuppone che chiedi il permesso temporaneamente e che il diritto amministrativo venga temporaneamente prestato (fino al logout, al terminale chiuso, ecc.)
- Hai un'opzione dell'ultimo minuto per correggere qualsiasi errore. Questo viene fatto nel momento in cui ti viene chiesta 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 significa che se hanno fatto un po 'di pulizia e hanno letteralmente cancellato le cartelle /usr
, /lib
e /bin
(perché pensavano di non averne bisogno) ... indovina cosa succederebbe. Molti problemi in passato erano dovuti al fatto che gli utenti non conoscevano il potere che avevano quando usano 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 sapere come guidare ... in un'autostrada!)
SUDO viene anche utilizzato dalle app della GUI (come Update Manager) quando necessitano di privilegi amministrativi temporanei per fare qualcosa. Ne hanno solo bisogno per una quantità specifica di comandi (in genere 1) e poi tornano al privilegio del livello utente. Questo per evitare di avere sempre privilegi di root e di evitare di commettere errori se l'utente decide di rimuovere alcune parti importanti del sistema.
Inoltre offre una sicurezza migliore perché l'utente root viene disabilitato per impostazione predefinita.
Infine, se si dispone di un PC desktop o server, in realtà non si vuole che tutti siano root, né di avere tutti i privilegi di amministratore. Pessima idea se la tua sorellina o fratellino inizi a chiedersi cosa succederebbe se la /boot
incontrasse la chiave DEL . Qui entra in gioco sudo
per diminuire la possibilità che qualcosa di brutto possa accadere.
Che cosa significa Fornisci privilegi di super utente limitati a utenti specifici ?
sudo user o sudoers hanno effettivamente un file di configurazione che dice loro quanto è limitato o aperto il comando sudo per un utente specifico. Il file /etc/sudoers
ha tutte le informazioni per limitare o consentire l'accesso a un utente sudo. Per impostazione predefinita viene fornito l'accesso a tutto, ma puoi configurarlo o limitarlo a tuo piacimento.
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
fornirà all'utente la cremisi nell'accesso al server host1 per eseguire il comando ls.
Ad esempio, cyrex server1 (root) = /bin/ls
fornirà all'utente la cremisi nell'accesso al server host1 per eseguire il comando ls come root.
Ad esempio, cyrex ALL = /bin/ls
fornirà all'utente la cremisi in tutti gli host per eseguire il comando ls.
Ad esempio, cyrex ALL = ALL
darà all'utente cremisi in tutti gli host l'accesso 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.