Linux, ecco la differenza tra sudo e su

By Jessica Lambiase

Se parliamo di server distribuiti o di servizi di hosting condiviso è difficilissimo che l’amministratore di rete permetta ai suoi clienti di avere l’accesso root alle macchine di cui usufruisce, se parliamo di home computing la situazione è piuttosto diversa.

Che sia attraverso “sudo” o “su”, nell’ambito del computing casalingo basato su Linux c’è assolutamente bisogno, almeno una volta al giorno, di elevarsi a superutente per eseguire determinati tipi di operazioni, dalla semplice installazione di un programma agli aggiornamenti cumulativi di sistema, passando per le impostazioni o per la modifica manuale dei file di configurazione.

D’altra parte avere privilegi di “root” o di “superutente” o in qualunque altro modo vogliate chiamarli è fondamentale se il computer dal quale stiamo operando è di nostra proprietà: ci permette di fare qualsiasi cosa, buona o cattiva che sia, ed i meccanismi di sicurezza del sistema operativo non potranno nulla contro le nostre scelte.

In cinque parole: we’ve got the power.

Al di là dell’importanza del root nei sistemi Linux-based, domanda ricorrente tra gli utenti riguarda la differenza tra sudo e su, ovvero quella tra le modalità di accesso a privilegi elevati – di fatto i massimi, a livello utente, disponibili sul sistema.

Al contrario di quanto si possa pensare la risposta non è ovvia nè semplice: prendendo ad esempio la distribuzione Ubuntu si potrebbe rispondere che sudo e su sono la stessa cosa: entrambi permettono di ottenere privilegi di root.

Si potrebbe, infatti, poiché all’atto pratico non è affatto così. I due comandi sono profondamente differenti e la differenza tra sudo e su, semplicemente, c’è.

Differenza tra sudo e su in Linux

Il comando su

Il comando su serve praticamente per “diventare” un altro utente ereditandone identificativo, identificativo del gruppo, privilegi, permessi d’esecuzione e di navigazione ed in alcuni casi anche variabili d’ambiente, alias, percorsi predefiniti e quant’altro – all’interno di una shell o di un terminale virtuale.

La sua sintassi di base è

su <parametro_opzionale> nomeutente

Se invocato senza parametri il nomeutente viene impostato automaticamente a “root”, per cui digitare

su root

e digitare

su

portano esattamente allo stesso risultato: dopo la richiesta della password si diventa letteralmente l’utente root, senza quindi restrizioni di alcun tipo sul sistema.

E’ possibile uscire dalla sessione inizializzata con “su” utilizzando il comando exit.

Il comando sudo

Il comando sudo, sebbene nelle più comuni configurazioni di sistema si utilizzi per guadagnare privilegi elevati (ma non per diventare l’utente root), ha un utilizzo molto più complesso.

Esso infatti permette di ottenere particolari privilegi, in accordo con quanto definito nel suo file di configurazione (/etc/sudoers), non appartenenti di default alla propria tipologia di utente.

La sua sintassi di base è

sudo <parametro_opzionale> comando_da_eseguire

Già qui sta la prima differenza rispetto a su: il comando sudo infatti prende come input un comando – non un utente – e, come accennato poc’anzi permette, di eseguire il comando passato in input con i privilegi definiti nel file /etc/sudoers, impostando provvisoriamente (di default per 15 minuti) alcuni particolari bit per far sì che ciò accada.

In sostanza il comando sudo permette di fare ciò che farebbe un utente “privilegiato” senza il bisogno di possedere la sua password.

Di norma, infatti, la password per l’esecuzione dei comandi attraverso “sudo” coincide con la password utente.

Il file /etc/sudoerspermette di definire quali utenti possano ottenere privilegi elevati (o quantomeno differenti dai predefiniti) invocando il comando sudo; esso permette inoltre di definire nel dettaglio quali comandi possano essere eseguiti da tali utenti in caso di accesso privilegiato.

E la differenza?

Di fondo la chiave è proprio la modalità di esecuzione dei comandi: con su si diventa root, con sudo invece potrete si agisce anche con privilegi di utente root senza però possederne le credenziali d’accesso.

In termini di sicurezza, specie se in un sistema multi-utente, è bene configurare a dovere il file /etc/sudoers per decidere quale utente può ottenere privilegi di root su determinati (o tutti i) comandi anziché mettere a disposizione la password di root a chiunque.

Ad esempio: immaginate di gestire un piccolo server, di aver bisogno di una mano per eseguire i piccoli task giornalieri e di assumere un sistemista per farlo.

Dando al sistemista la password di root – quindi permettendogli di usare su -, nel momento in cui costui smetterà di lavorare per voi sareste costretti a cambiarla (con tutte le conseguenze del caso).

Dandogli invece la possibilità di eseguire azioni privilegiate tramite il comando sudo, qualora il sistemista smettesse di lavorare per voi basterà eliminare il suo nome utente dal file /etc/sudoers ed eliminare successivamente il suo account.

Perché in Ubuntu c’è soltanto sudo?

Semplice: per impostazione predefinita in Ubuntu non è impostata password di root alcuna, ragion per cui l’account root è inizialmente inutilizzabile ed il comando “su”, semplicemente, non ne permetterà l’accesso.

Si possono comunque eseguire comandi con permessi elevati poiché l’account utente (o qualsiasi account di tipo “Amministratore” sia presente nel sistema) figura nel file /etc/sudoers ed è configurato per eseguire qualsiasi comando con privilegi di root.

differenza tra sudo e su - Shell visudo

Leggendo con più attenzione la pagina di manuale di sudo, si scopre che è possibile diventare “materialmente” root anche in Ubuntu utilizzando soltanto il comando “sudo”.

Per impostazione predefinita l’utente di tipo “Amministratore” può eseguire tutti i comandi di sistema con privilegi elevati, per cui vi basterà eseguire una shell utilizzando un preciso parametro di sudo:

sudo -s

Ma se ciò non dovesse bastare e ci fosse la necessità di attivare l’account root – ad esempio per aprirsi l’opportunità di modificare il file /etc/sudoers in caso di malfunzionamento di sudo, cosa altrimenti impossibile -, ciò che bisognerà fare sarà invocare il comando passwd attraverso sudo:

sudo passwd

…impostando così una password di root ed abilitando l’accesso tramite il comando su. Vi sconsigliamo comunque di procedere per preservare la sicurezza del sistema, a meno che non sappiate esattamente cosa fate.

Conclusioni finali

E’ consigliabile utilizzare semplicemente sudo per preservare la sicurezza del sistema, abilitando l’utente root – oppure invocandolo, se già disponibile – soltanto in caso di emergenza.

Una buona configurazione del file /etc/sudoers può tranquillamente sopperire all’utilizzo dell’account root, account che d’altra parte andrebbe abilitato in caso ci si cimenti in modifiche simili – l’utente root è l’unico a poter rimettere a posto un sudoers mal creato il quale, a sua volta, rende inutilizzabile il comando sudo.

In generale prima di lanciarsi ad una modifica di /etc/sudoers è bene:

  • abilitare l’account root con una password sicura ed accertarsi che questa sia funzionante;
  • leggere attentamente guide e pagine di manuale, valutando i pro ed i contro prima di salvare qualsiasi modifica; in caso di errore, il sistema potrebbe diventare inutilizzabile;
  • utilizzare il comando “visudo” per modificare /etc/sudoers, poiché esso impedisce a monte il salvataggio del file in caso di errori sintattici.

L’articolo Linux, ecco la differenza tra sudo e su appare per la prima volta su Chimera Revo – News, guide e recensioni sul Mondo della tecnologia.

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a scrivere più contenuti come questo. Grazie! 

Hai dubbi o problemi? Ti aiutiamo

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram. Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.

Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.