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' root
utente non ha una password impostata, ovvero non è possibile accedere direttamente come root.
Inoltre, /etc/sudoers
consente di specificare alcune opzioni aggiuntive - ovvero l'utente X è in grado di eseguire solo il programma Y ecc.
La sudo su
combinazione usata spesso funziona come segue: prima sudo
ti chiede la tua password e, se ti è permesso farlo, invoca il comando successivo ( su
) come superutente. Poiché su
viene invocato da root
, non è necessario immettere la password dell'utente di destinazione. Quindi, sudo su
ti consente di aprire una shell come un altro utente (incluso root), se ti è consentito l'accesso come superutente da parte del /etc/sudoers
file.
su user
per accedere da shell non attendibili, masu - user
. Vedi unix.stackexchange.com/q/7013/8250