A distanza di 9 anni dalla creazione del ramo 1.8.x di sudo, è stata annunciata l'uscita di una nuova e significativa versione dell'utility utilizzata per organizzare l'esecuzione di comandi per conto di altri utenti : la nuova versione è "sudo 1.9.0" e segna anche l'inizio di un nuovo ramo.
Sudo è l'utility più essenziale e diffusa nei sistemi operativi Unix-like, come Linux, BSD o Mac OS X, perché, come già accennato, consente agli utenti di eseguire programmi con i privilegi di sicurezza di un altro utente (di solito l'utente root) in modo sicuro, diventando così temporaneamente superutente.
Per impostazione predefinita, l'utente deve autenticarsi con la propria password quando esegue sudo. Una volta autenticato, e se il file di configurazione /etc/sudoers consente all'utente di accedere al comando richiesto, il sistema lo esegue.
È disponibile un'opzione per abilitare il parametro NOPASSWD per evitare di inserire la password dell'utente durante l'esecuzione del comando. Il file di configurazione /etc/sudoers specifica quali utenti possono eseguire quali comandi per conto di quali altri utenti.
Poiché sudo è molto rigido con il formato di questo file e qualsiasi errore potrebbe causare seri problemi, esiste l'utilità visudo; Questa opzione viene utilizzata per verificare che il file / etc / sudoers non venga utilizzato da un'altra sessione dell'utente root, evitando così il multi-editing con possibile danneggiamento del file.
Principali novità in Sudo 1.9.0
Questa nuova versione evidenzia il lavoro svolto per fornire al sistema il processo in background " sudo_logsrvd " , progettato per la registrazione centralizzata dei log di altri sistemi . Utilizzando `sudo` con l'opzione ` --enable-openssl` , i dati vengono trasmessi tramite un canale di comunicazione crittografato (TLS).
La registrazione dei log viene configurata tramite l'opzione log_servers in sudoers e, per disabilitare il supporto per il nuovo meccanismo di invio dei log, sono state aggiunte le opzioni " --disable-log-server " e "--disable-log-client".
Inoltre, è stato aggiunto un nuovo tipo di plugin "audit" che invia messaggi relativi a chiamate riuscite e non riuscite, nonché a eventuali errori che si verificano. È stato anche aggiunto un nuovo tipo di plugin che consente di collegare i propri controller di login che non si basano sulle funzionalità standard. Ad esempio, un controller per la registrazione dei log in formato JSON è implementato come plugin.
È stato inoltre aggiunto un nuovo tipo di plugin di " approvazione " , che esegue controlli aggiuntivi dopo un controllo di autorizzazione di base basato su regole in sudoers. È possibile specificare più plugin di questo tipo nella configurazione, ma la conferma dell'operazione viene emessa solo quando questa viene approvata da tutti i plugin elencati nella configurazione.
In `sudo` e `sudo_logsrvd` , viene creato un file di log aggiuntivo in formato JSON, che riporta informazioni su tutti i parametri dei comandi in esecuzione, incluso il nome host. Questo log viene utilizzato dall'utility `sudoreplay` , che consente di filtrare i comandi in base al nome host.
L'elenco degli argomenti della riga di comando passati tramite la variabile d'ambiente SUDO_COMMAND viene ora troncato a 4096 caratteri.
Tra le altre novità degne di nota annunciate, si segnalano:
- Il comando sudo -S ora stampa tutte le richieste sullo standard output o stderr, senza accedere al dispositivo di controllo del terminale.
- Per testare l'interazione con il server o inviare log esistenti, viene proposta l'utility sudo_sendlog;
- Aggiunta la possibilità di sviluppare plugin sudo in Python, che viene abilitata durante la compilazione con l'opzione «–Enable-python«.
- En maglioni, invece di Cmnd_Alias, Cmd_Alias Ora è anche valido.
- Nuove impostazioni aggiunte pam_ruser e pam_rhost per abilitare / disabilitare la configurazione del nome utente e delle impostazioni dell'host durante la configurazione di una sessione tramite PAM.
- È possibile specificare più di un hash SHA-2 su una riga di comando separata da virgole. L'hash SHA-2 può essere utilizzato anche nei sudoer insieme alla parola chiave "ALL" per definire comandi che possono essere eseguiti solo quando l'hash corrisponde.