Ubuntu adotta sudo-rs: la sicurezza della memoria entra nel cuore del sistema

Ubuntu segna un'importante svolta nella sicurezza del sistema sostituendo il classico comando sudo con la nuova implementazione sudo-rs, scritta in Rust. Quali sono le ragioni della scelta e cosa cambia per gli utenti.
Ubuntu adotta sudo-rs: la sicurezza della memoria entra nel cuore del sistema

La nota distribuzione Linux Ubuntu si prepara a un cambiamento strutturale che segnerà un punto di svolta nell’evoluzione della sua architettura di sicurezza: a partire dalla versione 25.10, il sistema utilizzerà sudo-rs come implementazione predefinita del comando sudo, rimpiazzando l’attuale versione storicamente basata su C. Il nuovo strumento risulta riscritto in Rust, linguaggio moderno progettato per prevenire intere classi di vulnerabilità legate alla sicurezza della memoria.

La decisione di Canonical si inserisce in una più ampia strategia volta a rafforzare la sicurezza dell’intero stack software di Ubuntu, attraverso l’adozione progressiva di tecnologie a prova di errore sistemico. Rust, con il suo approccio alla memory safety senza garbage collector, è oggi considerato uno standard emergente per la programmazione di basso livello sicura e performante. E ciò nonostante i malumori di alcuni maintainer Linux.

A marzo 2025, Canonical stessa ha fatto sapere di voler abbandonare le classiche utility di sistema GNU per abbracciare le corrispondenti riscritte in Rust (U-utils).

Perché sudo-rs in Ubuntu?

Il progetto sudo-rs è guidato da Trifecta Tech Foundation (TTF), una fondazione senza scopo di lucro che sviluppa componenti infrastrutturali open source con un focus specifico sulla sicurezza.

Il comando sudo è uno degli strumenti più sensibili in qualsiasi sistema Linux, essendo responsabile della gestione dell’accesso amministrativo e della delimitazione dei privilegi. La sua riscrittura in Rust rappresenta un tentativo ambizioso di eliminare bug di memoria comuni come buffer overflow, use-after-free e problemi con i puntatori, frequentemente riscontrati nei software sviluppati in C.

Pur riconoscendo che nessun linguaggio garantisce l’infallibilità del software, gli sviluppatori di sudo-rs sottolineano come Rust riduca drasticamente la superficie di attacco, migliorando la sicurezza senza sacrificare prestazioni o compatibilità.

Il team di sudo-rs, in collaborazione con lo storico maintainer del comando sudo originale, Todd Miller, adotta un approccio minimalista: solo le funzionalità davvero utili e comuni saranno implementate, evitando la proliferazione di codice superfluo e difficile da mantenere.

Principali differenze tra sudo e sudo-rs

Dal punto di vista dell’utente, il comando sudo rimane invariato in Ubuntu: si potrà usarlo continuando a digitare sudo, come sempre. Tuttavia, “sotto il cofano” sarà eseguito sudo-rs.

Come evidenziato in precedenza, comunque, sudo-rs non è completamente compatibile con il sudo originale: alcune funzionalità sono rimosse, altre modificate e nuove feature potrebbero essere introdotte nel tempo. Da notare che, sempre lato utente normale, alcuni messaggi di errore e certi avvisi possono cambiare leggermente con il nuovo sudo-rs.

Per gli amministratori di sistema e gli utenti avanzati, invece, ci sono modifiche importanti:

  • Supporto limitato a funzionalità avanzate: ad esempio, l’uso di sendmail per le notifiche di sudo non è supportato.
  • Autenticazione solo tramite PAM: le configurazioni di limiti di risorse e umask devono essere gestite tramite PAM, non più direttamente nel file sudoers (vedere più avanti).
  • Nessun supporto per le wildcard nei comandi: riduce errori di configurazione.
  • Licenza MIT invece della GPL del comando sudo tradizionale.

PAM (Pluggable Authentication Modules) è il framework di autenticazione usato dalla maggior parte dei sistemi Linux moderni. Gestisce l’accesso degli utenti, le politiche di sicurezza e alcune configurazioni di ambiente, come limiti di risorse e variabili d’ambiente. In pratica, PAM controlla chi può fare cosa quando si esegue un comando con privilegi elevati.

Con il sudo classico alcune configurazioni, come limiti di CPU, memoria, numero di processi e umask (i permessi predefiniti per i file creati), potevano essere impostate direttamente nel file /etc/sudoers. Con sudo-rs, invece, tutte le configurazioni di autenticazione e ambiente passano obbligatoriamente tramite PAM. Questo significa che i limiti di risorse e l’umask non possono più essere definiti nel file sudoers.

Come usare sudo-rs in Ubuntu

In Ubuntu 25.10 sudo è di fatto un softlink a sudo-rs: l’esperienza utente è invariata, ma il backend è Rust. Il comando sudo originale è ancora presente come sudo-ws.

È possibile invocarlo direttamente o impostarlo come predefinito tramite update-alternatives, almeno fino a Ubuntu 26.10:

sudo update-alternatives --config sudo

Per provare sudo-rs nelle versioni precedenti della distro Linux (Ubuntu 24.04+), è possibile eseguire sudo-rs direttamente.

Verso Ubuntu 26.04 LTS

La scelta di introdurre sudo-rs come predefinito già con Ubuntu 25.10 ha anche un obiettivo strategico: permettere un’ampia fase di collaudo sul campo prima dell’inclusione nella prossima LTS (Long Term Support), Ubuntu 26.04, prevista per aprile 2026.

Questa scelta di Canonical permetterà alla comunità, agli sviluppatori e agli amministratori di sistema di familiarizzare con sudo-rs e contribuire con feedback e miglioramenti prima che venga adottato in ambienti mission-critical a lungo termine.

L’invito promosso da Ubuntu è chiaro: riconsiderare l’intero ecosistema Unix-like alla luce delle moderne pratiche di sicurezza.

Ti consigliamo anche

Link copiato negli appunti