La differenza più grande è che con sudote non hai bisogno della password di root per eseguire un comando come root, come faresti su. È necessaria la password di root per aggiungere qualcuno al sudoersfile, ma in seguito quella persona può eseguire tutti o alcuni (se l'hai limitato) come root senza richiedere un'altra password.
L'altra differenza è, come hai notato, che sudoconsente un controllo molto più preciso su quali comandi possono essere eseguiti.
Per i dettagli sul formato del sudoersfile eseguito man sudoers. Qui troverai esempi di come eseguire solo alcuni comandi come root. La struttura di base di ogni linea è:
user_list host_list = cmd_list
cmd_list può includere dettagli su quale utente è autorizzato a passare all'utente reale. Ad esempio, potresti consentire a un webmaster di passare a wwwroot per riavviare apache ma non per root. Può anche includere altre opzioni, ad esempio se è richiesta la password dell'utente prima di passare (questa è l'impostazione predefinita).
Una riga di esempio potrebbe essere:
joe ALL=(ALL) ALL
il che significa: lascia che joe esegua qualsiasi comando su qualsiasi host come qualsiasi utente. Una linea più stretta potrebbe essere:
joe ALL=(operator) /usr/local/ops/
il che significa: lascia che joe esegua qualsiasi comando nella directory / usr / local / ops come "operatore" dell'utente.
Ci sono molti esempi alla fine della pagina man sudoers.
È necessario modificare /etc/sudoerscon il comando visudo. Questo verifica che il file sia legale e ti aiuta a impedirti di romperlo accidentalmente.
sudoè una fantastica invenzione