su e sudo, vengono considerati a torto due comandi intercambiabili quando si lavora da riga di comando su sistemi operativi Linux based come per esempio Ubuntu; in realtà, è possibile elencarne le differenze a partire da una semplice definizione di su, che possiamo descrivere come un comando il cui scopo principale (o utilizzo più frequente) è quello di consentire l’avvicendamento tra utenti durante le sessioni di login.
In termini più semplici, su permette di assumere l’identità di un altro utente senza la necessità di dover operare il logout e una nuova fase di autenticazione; a questo proposito su viene utilizzato spesso per impersonare l’utente di root, o il "superuser", a partire da un utente dotato di minori privilegi; in realtà però si potrebbe adottare il medesimo comando per passare a qualsiasi altro utente sia stato attivato sul sistema.
Detto questo possiamo affermare con certezza che la prima differenza tra su e sudo sta nel fatto che mentre sudo richiede la password dell’utente corrente, su richiede invece l’inserimento della password di root. La sua particolare natura rende sudo un’alternativa preferibile dal punto di vista della sicurezza, in particolare quando un’installazione viene utilizzata da più utenti, in una situazione del genere su presupporrebbe infatti la condivisione della password di root.
In secondo luogo, una volta acquisiti privilegi elevati sudo consente di eseguire un solo comando, su attiva invece una nuova interfaccia da riga di comando (una sub-sessione all’interno della sessione corrente) che permette di inviare tutte le istruzioni desiderate e i privilegi di root verranno conservati fino all’uscita dalla shell; anche in questo caso sudo si presenta come un’alternativa teoricamente più sicura, anche perché con esso non sarà facile dimenticarsi di aver impersonato il root.
Vi è poi un altro elemento da considerare, sudo è infatti un comando maggiormente configurabile rispetto a su, questo perché esso consente di limitare le istruzioni inviabili attraverso di esso; in sostanza, gli utenti che hanno effettuato un accesso con sudo possono utilizzare soltanto i comandi richiesti per il loro lavoro, mentre con su si ha il massimo livello di azione possibile.