La principale differenza tra questi comandi sta nel modo in cui limitano l'accesso alle loro funzioni.
su (che significa "utente sostitutivo" o "cambia utente") - fa esattamente questo, avvia un'altra istanza della shell con i privilegi dell'utente di destinazione. Per assicurarti di avere i diritti per farlo, ti chiede la password dell'utente di destinazione . Quindi, per diventare root, devi conoscere la password di root. Se sul tuo computer sono presenti più utenti che devono eseguire i comandi come root, devono tutti conoscere la password di root: tieni presente che sarà la stessa password. Se è necessario revocare le autorizzazioni di amministratore da uno degli utenti, è necessario modificare la password di root e dirlo solo a quelle persone che devono mantenere l'accesso - disordinato.
sudo (hmm ... qual è il mnemonico? Super-User-DO?) è completamente diverso. Utilizza un file di configurazione (/ etc / sudoers) che elenca quali utenti hanno diritti su azioni specifiche (esegui comandi come root, ecc.) Quando viene invocato, chiede la password dell'utente che l'ha avviato - per garantire che la persona terminal è davvero lo stesso "joe" che è elencato in /etc/sudoers. Per revocare i privilegi di amministratore da una persona, devi solo modificare il file di configurazione (o rimuovere l'utente da un gruppo elencato in quella configurazione). Ciò si traduce in una gestione molto più pulita dei privilegi.
Di conseguenza, in molti sistemi basati su Debian l' rootutente non ha una password impostata, ovvero non è possibile accedere direttamente come root.
Inoltre, /etc/sudoersconsente di specificare alcune opzioni aggiuntive - ovvero l'utente X è in grado di eseguire solo il programma Y ecc.
La sudo sucombinazione usata spesso funziona come segue: prima sudoti chiede la tua password e, se ti è permesso farlo, invoca il comando successivo ( su) come superutente. Poiché suviene invocato da root, non è necessario immettere la password dell'utente di destinazione. Quindi, sudo suti consente di aprire una shell come un altro utente (incluso root), se ti è consentito l'accesso come superutente da parte del /etc/sudoersfile.
su userper accedere da shell non attendibili, masu - user. Vedi unix.stackexchange.com/q/7013/8250