Su Debian, a differenza di altre distribuzioni come Ubuntu, il comando sudo non è sempre attivo di default. Se durante l’installazione è stata impostata una password di root, Debian pensa che si voglia gestire i privilegi amministrativi tramite l’utente root, lasciando l’utente standard “senza poteri”.
Poiché l’utente non ha ancora i permessi necessari, occorre prima “diventare” root. Aprire il terminale e digitare:
su -In alcune installazioni minime, ad essempio netinst, il pacchetto sudo potrebbe mancare. Possiamo installarlo tramite il gestore pacchetti ufficiale di Debian
apt update && apt install sudoPer concedere i privilegi amministrativi, è necessario aggiungere l’account al gruppo di sistema sudo
usermod -aG sudo nome_utenteNota: per applicare questa modifica, è necessario effettuare il logout e rientrare nel sistema (o riavviare)
Per verificare che tutto funzioni, effettuato il login con l’utenza, eseguire un comando che richiede privilegi amministrativi
sudo apt updatese viene richiesta la password dell’utente privilegiato tutto sta funzionando correttamente.
Il file /etc/sudoers
Le impostazioni di sudo sono salvate nel file /etc/sudoers. Questo file non va modificato manualmente ma è consigliabile utilizzare l’utility visudo che controlla eventuali errori di sintassi prima di salvare. Vediamo alcuni esempi
nome_utente ALL=(ALL:ALL) ALLconcede tutti i privilegi a un utente richiedendo la sua password
nome_utente ALL=(ALL) NOPASSWD:ALLsudo senza password (NOPASSWD), utile per utenze che eseguono script automatizzati
nome_utente ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginxpermette all’utente di eseguire solo comandi specifici senza password (es. gestire Nginx)
%admin ALL=(ALL:ALL) ALLtutti i membri del gruppo admin avranno i privilegi sudo
Nota: usare sempre i percorsi completi dei comandi (es. /usr/bin/apt invece di apt) per evitare attacchi di path injection
Esempio: Creare un gruppo per gestire più utenti con gli stessi permessi
Creare un gruppo è il modo più pulito per gestire i permessi senza riempire il file sudoers con decine di nomi singoli. Vediamo come creare un gruppo chiamato “webadmin” che può solo riavviare Nginx.
Per prima cosa creare il gruppo
sudo addgroup webadminAggiungere gli utenti al gruppo
sudo adduser user01 webadmin
sudo adduser user02 webadminEseguire sudo visudo e aggiungere in fondo una regola specifica per il gruppo (il simbolo % indica che si tratta di un gruppo)
# I membri di webadmin possono riavviare Nginx senza password
%webadmin ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginxL’utilizzo dei gruppi, oltre a rendere più leggibile il file sudoers, rende più semplice abilitare nuove utenze in quando vanno solo aggiunte al gruppo.
Conclusione
Abilitare sudo su Debian è il primo passo per una gestione sicura del server o della workstation, permettendo di limitare l’uso dell’account root solo ai casi dove è necessario avere privilegi elevati.
Consiglio di sicurezza: una volta configurato sudo, è consigliabile disabilitare l’accesso SSH diretto per l’utente root modificando il file /etc/ssh/sshd_config per una maggiore protezione.
