Come eseguire sudo senza password su Linux

È possibile eseguire sudo senza password aggiungendo una NOPASSWDregola alla policy sudoers. L'approccio più sicuro consiste nel consentire solo il comando amministrativo effettivamente necessario, anziché disabilitare la richiesta di password per ogni comando sudo.

Prima di modificare qualsiasi cosa, ricorda cosa fa questa impostazione: chiunque o qualsiasi cosa ottenga il controllo del tuo account con cui hai effettuato l'accesso potrebbe essere in grado di eseguire il comando consentito come root senza un ulteriore passaggio di autenticazione. Il manuale di sudoers documenta NOPASSWDcome il tag che rimuove l'autenticazione per i comandi corrispondenti.

Perché sudo -s non è un metodo sudo senza password

Il vecchio consiglio di eseguire il comando sudo -snon configura effettivamente l'utilizzo di sudo senza password. L' -sopzione avvia una shell con i privilegi di sudo, ma la policy di sudo potrebbe comunque richiedere l'autenticazione preliminare. Potresti anche vedere diversi comandi eseguiti senza un'ulteriore richiesta di autenticazione, perché sudo normalmente memorizza nella cache l'autenticazione riuscita per un breve periodo. Questo è diverso da una NOPASSWDregola permanente.

Eseguire uno specifico comando sudo senza password

Questo esempio consente all'utente alexdi riavviare Nginx senza password. Sostituisci il nome utente, il comando e gli argomenti con i valori che corrispondono al tuo sistema.

1. Conferma il tuo nome utente e il percorso del comando

Esegui i seguenti comandi come utente normale:

whoami
command -v systemctl

Il secondo comando potrebbe restituire un valore /usr/bin/systemctl. Utilizza il percorso riportato dal tuo sistema. Le regole di Sudoers dovrebbero identificare i comandi tramite il loro percorso completo.

Terminale Linux che mostra whoami e il comando -v systemctl per identificare il nome utente e il percorso completo del comando
Prima di scrivere la regola sudoers, verifica il nome dell'account e il percorso completo del comando.

2. Crea un file dedicato per la directory sudoers

Invece di modificare /etc/sudoersdirettamente, usa visudocon un file in /etc/sudoers.d:

sudo visudo -f /etc/sudoers.d/alex-nopasswd

Normalmente, per questa fase di configurazione, dovrai inserire la tua password. visudoè preferibile perché controlla la sintassi prima di accettare le modifiche. Il manuale di Ubuntu visudo nota anche che visudoblocca il file durante la modifica e controlla la presenza di errori di analisi.

Terminale Linux che apre un file sudoers.d dedicato con sudo visudo per la configurazione sudo senza password
Apri un file sudoers separato visudoanziché modificare il file di policy principale con un normale editor di testo.

3. Aggiungi la regola NOPASSWD più restrittiva di cui hai bisogno

Per l'esempio di riavvio di Nginx, aggiungere:

alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Questa regola consente l'esecuzione come root senza autenticazione solo del comando con gli argomenti specificati. Per consentire l'esecuzione di più comandi specifici, separare le specifiche dei comandi con delle virgole.

Se si desidera deliberatamente che ogni comando sudo per un determinato utente ignori l'autenticazione, la regola generale è:

alex ALL=(ALL:ALL) NOPASSWD: ALL

Questa soluzione è molto meno sicura e raramente rappresenta la scelta migliore su una workstation o un sistema condiviso. Una sessione utente compromessa avrebbe accesso diretto a privilegi di root illimitati.

Nano editor che mostra una regola NOPASSWD di sudoers per il riavvio di nginx e un esempio commentato senza restrizioni
Una regola specifica per il comando è più sicura della concessione di NOPASSWD: ALL.

4. Convalidare e testare la regola

Dopo aver salvato e chiuso l'editor, controlla la policy completa di sudoers:

sudo visudo -c

Non saltare questo controllo. La visudodocumentazione spiega che la policy di sudoers viene valutata nel suo complesso, quindi il controllo della configurazione completa permette di individuare problemi che potrebbero riguardare i file inclusi.

Quindi invalida tutte le credenziali sudo memorizzate nella cache ed esegui il test in modalità non interattiva:

sudo -k
sudo -n /usr/bin/systemctl restart nginx

Questa -nopzione indica a sudo di non richiedere la password. Se la regola corrisponde, il comando viene eseguito senza chiedere la password. Se l'autenticazione è comunque richiesta, sudo termina con un errore anziché attendere l'input. Ciò risulta sudo -nparticolarmente utile per gli script che non devono mai bloccarsi in attesa di una richiesta di password.

Terminale Linux che convalida gli utenti con sudo utilizzando visudo -c, cancella le credenziali memorizzate nella cache e testa un comando NOPASSWD con sudo -n
Convalida i criteri, cancella le credenziali memorizzate nella cache e utilizzalo sudo -nper confermare che il comando non richieda più una password.

Risoluzione dei problemi di sudo senza password

  • Il comando richiede ancora una password: verifica che il nome utente, il percorso del comando e gli argomenti corrispondano esattamente alla voce sudoers.
  • Il comando non è consentito: eseguilo sudo -lper verificare i privilegi assegnati al tuo account.
  • Il comando drop-in sembra essere ignorato: usa un nome file semplice come alex-nopasswd. Alcune configurazioni di sudoers ignorano i file in /etc/sudoers.di cui nomi contengono un punto o terminano con suffissi in stile backup.
  • È necessario annullare la modifica: riaprire il menu a tendina con sudo visudo -f /etc/sudoers.d/alex-nopasswd, rimuovere o restringere la regola, salvare ed eseguire sudo visudo -cnuovamente.

Buona pratica

Utilizza sudo senza password solo quando è strettamente necessario, ad esempio per un'azione di servizio strettamente controllata o un'attività di automazione. Preferisci un percorso di comando e degli argomenti precisi, evita di utilizzare sudo NOPASSWD: ALLquando possibile e mantieni la regola sudoers il più semplice possibile, compatibilmente con le esigenze dell'attività. In questo modo, si preserva la maggior parte della protezione offerta da sudo, eliminando al contempo la richiesta di password laddove sia effettivamente necessaria.

Lascia un commento

Come recuperare in modo sicuro partizioni e dati del disco rigido persi

Come recuperare in modo sicuro partizioni e dati del disco rigido persi

Scopri come recuperare partizioni e file persi con TestDisk e PhotoRec. Proteggi l'unità di origine, esegui una scansione sicura e salva i dati recuperati su un altro disco.

Come scansionare i codici QR su un computer desktop Linux

Come scansionare i codici QR su un computer desktop Linux

Scansiona i codici QR su Linux con CoBang utilizzando una webcam o un file immagine. Consulta le opzioni di installazione, i passaggi di configurazione e le soluzioni per l'accesso alla fotocamera tramite Flatpak.

Come modificare le impostazioni della webcam su Linux con Cameractrls

Come modificare le impostazioni della webcam su Linux con Cameractrls

Modifica le impostazioni della webcam su Linux con Cameractrls: regola l'esposizione, il colore, la riduzione dello sfarfallio e altri controlli supportati, quindi verifica le modalità video compatibili.

Come installare PhpStorm su Linux: Toolbox, Tar.gz, Snap e AUR

Come installare PhpStorm su Linux: Toolbox, Tar.gz, Snap e AUR

Installa PhpStorm su Linux con JetBrains Toolbox o con l'archivio tar.gz autonomo, oltre alle opzioni Snap e Arch AUR. Java è già incluso.

Come eseguire il backup di un CD-ROM come immagine ISO su Linux

Come eseguire il backup di un CD-ROM come immagine ISO su Linux

Crea un'immagine ISO di un CD-ROM su Linux con GNOME Disks o dd. Identifica l'unità ottica, monitora la copia, verifica l'immagine e scopri quando un disco danneggiato o un disco audio richiede uno strumento aggiuntivo.

Come installare Cisco Packet Tracer su Linux

Come installare Cisco Packet Tracer su Linux

Scarica Cisco Packet Tracer 9.0.1 per Ubuntu a 64 bit, installa il pacchetto DEB con APT, accetta la licenza nel Terminale ed effettua l'accesso per avviare un laboratorio.

Come configurare due pannelli su XFCE 4

Come configurare due pannelli su XFCE 4

Crea un pannello XFCE 4 separato per ogni schermo, assegna il secondo pannello all'uscita corretta, posizionalo e ridimensionalo, e aggiungi i launcher e gli elementi di stato necessari.

Come ritagliare un'immagine su Linux con GIMP

Come ritagliare un'immagine su Linux con GIMP

Rimuovere lo sfondo di una foto su Linux con GIMP: traccia il soggetto, elimina lo sfondo selezionato, mantieni la trasparenza ed esporta un file PNG riutilizzabile.

Applicazione desktop Google Tasks: come utilizzarla su un computer

Applicazione desktop Google Tasks: come utilizzarla su un computer

Apri Google Tasks in un browser, aggiungi un collegamento a Chrome o avvialo come un'app e gestisci le attività con data tramite Calendar e Gmail.

OKSampler: un campionatore musicale gratuito e semplice per creare ritmi da tastiera.

OKSampler: un campionatore musicale gratuito e semplice per creare ritmi da tastiera.

OKSampler associa i file MP3 ai tasti della tastiera e permette la riproduzione in loop dell'audio. Scopri cosa fa questo software gratuito ormai datato, dove finiscono le sue vecchie funzionalità e cosa controllare prima di scaricarlo.