Command Line - Debian - Linux

Abilitare e configurare Sudo su Debian

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 sudo

Per concedere i privilegi amministrativi, è necessario aggiungere l’account al gruppo di sistema sudo

usermod -aG sudo nome_utente

Nota: 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 update

se 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) ALL

concede tutti i privilegi a un utente richiedendo la sua password

nome_utente  ALL=(ALL) NOPASSWD:ALL

sudo senza password (NOPASSWD), utile per utenze che eseguono script automatizzati

nome_utente  ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx

permette all’utente di eseguire solo comandi specifici senza password (es. gestire Nginx)

%admin  ALL=(ALL:ALL) ALL

tutti 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 webadmin

Aggiungere gli utenti al gruppo

sudo adduser user01 webadmin
sudo adduser user02 webadmin

Eseguire 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 nginx

L’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.