Visualizzazione post con etichetta privilegi. Mostra tutti i post
Visualizzazione post con etichetta privilegi. Mostra tutti i post

mercoledì 23 luglio 2025

Windows 11: Elevare i Privilegi con sudo

L'introduzione del comando sudo in Windows 11, a partire dalla build 24H2, segna un'evoluzione significativa nella gestione dei privilegi all'interno dell'ambiente Microsoft. Questo strumento, familiare agli utenti di sistemi basati su Unix e Linux, consente agli amministratori di sistema e agli sviluppatori di eseguire comandi con privilegi elevati direttamente da sessioni CMD, PowerShell o Terminale non privilegiate. Questa integrazione mira a semplificare i flussi di lavoro, riducendo la necessità di avviare manualmente sessioni separate con diritti di amministratore.

Abilitazione di sudo in Windows 11

Per impostazione predefinita, il comando sudo è disabilitato in Windows 11. L'attivazione è un processo semplice e può essere eseguita tramite l'interfaccia grafica delle Impostazioni o tramite il Registro di Sistema.

Metodo 1 - Tramite Impostazioni
Navigare in Impostazioni->Sistema->Per sviluppatori e attivare l'interruttore Abilita sudo.
Abilita sudo
FIG 1 - Abilita sudo


Metodo 2 - Tramite registro di sistema
Per un'automazione o una configurazione di gruppo, è possibile modificare il Registro di Sistema con il seguente comando:    
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Sudo" /v "Enabled" /t REG_DWORD /d 1 /f


Principio di Funzionamento e Vantaggi

Tradizionalmente, l'esecuzione di comandi che richiedono privilegi amministrativi in una console non elevata avrebbe generato un errore di "Accesso negato". Ad esempio, tentare di riavviare un servizio Windows con 
Restart-Service wsearch 
da una sessione PowerShell standard fallirebbe. 

Privilegi non sufficienti
FIG 2 - Privilegi non sufficienti

Con sudo, questo scenario cambia radicalmente. 
Una volta abilitato, l'esecuzione di un comando preceduto da sudo ad esempio
sudo powershell "Restart-Service wsearch"
innesca una richiesta di Controllo Account Utente (UAC). Dopo l'approvazione, il comando viene eseguito in una nuova finestra del terminale (separata dalla sessione corrente) con i diritti amministrativi necessari.
sudo
FIG 3 - sudo


Controllo Account Utente (UAC)
FIG 4 - Controllo Account Utente (UAC)



A differenza del comando runas, sudo non richiede l'inserimento di una password di amministratore direttamente nella riga di comando. La conferma avviene tramite il prompt UAC, che autentica l'elevazione per l'utente corrente senza permettere la selezione di un account utente diverso. Questa implementazione migliora la sicurezza, evitando che le credenziali vengano esposte in testo chiaro o nella cronologia dei comandi.

Il medesimo principio si applica alle sessioni CMD. Tentare 
net stop wsearch
da un prompt dei comandi non elevato genererà un "Errore di sistema 5. Accesso negato." L'utilizzo di 
sudo net stop wsearch
risolverà l'errore, elevando i privilegi per l'esecuzione del comando.
Accesso negato
FIG 5 - Accesso negato


Prima dell'introduzione di sudo, gli utenti dovevano ricorrere a metodi meno efficienti per eseguire comandi elevati. Ad esempio, lanciare una nuova finestra del Prompt dei comandi con "Esegui come amministratore" o, per PowerShell, utilizzare "Start-Process powershell -Verb runAs". 
Sudo semplifica drasticamente questo processo, integrando l'elevazione dei privilegi direttamente nel flusso di lavoro della console esistente.


Modalità di esecuzione di sudo

Sudo per Windows offre tre diverse modalità di esecuzione, configurabili tramite l'applicazione Impostazioni o specificabili direttamente dalla riga di comando, per adattarsi a diverse esigenze di sicurezza e operatività.
Modalità di esecuzione di sudo
FIG 6 - Modalità di esecuzione di sudo


Modalità di esecuzione:
  1. In una nuova finestra: Questa è la modalità predefinita. Quando un comando o un programma viene eseguito tramite sudo, si apre in una nuova finestra, operando con i diritti di amministratore. Da riga di comando eseguire
    sudo config --enable forceNewWindow
  2. Con input disabilitato: Considerata l'opzione più sicura. Il comando viene eseguito con privilegi elevati all'interno della finestra corrente, ma senza la capacità di ricevere o richiedere input utente da quella sessione. Questo previene potenziali attacchi di iniezione di input in sessioni elevate. Da riga di comando eseguire 
    sudo config --enable disableInput
  3. Inline:Questa modalità emula il comportamento del comando sudo sui sistemi Linux e Unix. Il comando elevato viene eseguito nella console corrente e può ricevere input da essa. Sebbene sia l'opzione più comoda per interazioni dirette, è anche quella meno sicura, poiché un processo elevato potrebbe potenzialmente essere manipolato da input non sicuri. Da riga di comando eseguire
    sudo config --enable normal

Indipendentemente dalla modalità predefinita configurata, è sempre possibile forzare l'esecuzione di un comando elevato nella console corrente utilizzando l'opzione --inline. Ad esempio:
sudo --inline net stop wsearch


Conclusione

L'integrazione del comando sudo in Windows 11 rappresenta un passo significativo verso la modernizzazione dell'interfaccia a riga di comando di Microsoft. Offrendo un meccanismo flessibile e sicuro per l'elevazione dei privilegi, sudo migliora l'efficienza per sviluppatori e amministratori di sistema, allineando l'esperienza utente a quella offerta da altri sistemi operativi e promuovendo pratiche di sicurezza migliori attraverso l'uso ponderato di UAC. Per un elenco completo delle opzioni e dei parametri supportati, è sufficiente eseguire nel terminale il comando
sudo -h
Visualizza guida
FIG 7 - Visualizza guida