Sudo per Windows
Sudo per Windows è un nuovo modo per consentire agli utenti di eseguire comandi con privilegi elevati (come amministratore) direttamente da una sessione della console non assegnata in Windows.
Leggere l'annuncio, che include un video dimostrativo e un approfondimento sul funzionamento di Sudo per Windows.
Prerequisiti
Il comando Sudo per Windows è disponibile in Windows 11 versione 24H2 o successiva. (Controlla gli aggiornamenti di Windows).
Nota
Sudo per Windows non è ancora disponibile per Windows 10, ma potrebbe essere in futuro.
Come abilitare Sudo per Windows
Per abilitare Sudo per Windows, aprire Settings > For Developers
e impostare Abilita sudo su Sì.
Avviso
Sudo per Windows può essere usato come potenziale escalation del vettore di privilegi quando è abilitato in determinate configurazioni. Quando si abilita il comando sudo nel computer, assicurarsi di tenere presenti le considerazioni sulla sicurezza.
Come configurare Sudo per Windows
Sudo per Windows supporta attualmente tre diverse opzioni di configurazione. La configurazione può essere impostata dal menu Settings > For Developers
o a livello di codice, usando la riga di comando. Le opzioni di configurazione includono:
In una nuova finestra (
forceNewWindow
): l'opzioneforceNewWindow
di configurazione è l'opzione di configurazione predefinita per Sudo per Windows. Usaresudo
in questa configurazione per eseguire il comando in una nuova finestra. Questo comportamento è simile al comportamento del comandorunas /user:admin
.Input chiuso (
disableInput
): l'opzionedisableInput
di configurazione eseguirà il processo con privilegi elevati nella finestra corrente, ma con l'handle di input chiuso. Ciò significa che il processo con privilegi elevati non sarà in grado di ricevere input dalla finestra della console corrente. Ciò è utile per gli scenari in cui si vuole eseguire un comando come amministratore, ma non si vuole consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione offre alcune delle comodità dell'opzioneinline
di configurazione, riducendo alcuni dei rischi di sicurezza associati.Inline (
normal
): l'opzionenormal
di configurazione è più simile al comportamento di sudo in altri sistemi operativi. Questa configurazione eseguirà il processo con privilegi elevati nella finestra corrente e il processo sarà in grado di ricevere input dalla sessione della console corrente. Ciò è utile per gli scenari in cui si vuole eseguire un comando come amministratore e non si vuole consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione offre la massima praticità, ma è consigliabile scegliere questa opzione solo se si ha familiarità con i rischi di sicurezza associati.
È possibile selezionare tra queste configurazioni dal menu Settings > For Developers
o modificare la configurazione a livello di codice, in una riga di comando con privilegi elevati (console di amministrazione), usando:
sudo config --enable <configuration_option>
Eseguire l'aggiornamento <configuration_option>
a forceNewWindow
, disableInput
o normal
.
Come usare Sudo per Windows
Per usare Sudo per Windows, è sufficiente anteporre sudo
al comando che si vuole eseguire come amministratore. Ad esempio, per l'esecuzione netstat -ab
come amministratore, si eseguirà sudo netstat -ab
nella finestra della console.
Poiché sudo
eleva il processo di destinazione da eseguire con l'autorizzazione a livello di amministratore, verrà visualizzato un prompt che chiede di verificare che si voglia continuare.
Security Considerations
Esistono rischi associati all'esecuzione di sudo nelle configurazioni di Input chiuso (inputClosed
) o Inline (normal
). È possibile che i processi dannosi tentino di guidare il processo con privilegi elevati usando la connessione stabilita dalla sudo.exe non rilevata e dal processo di sudo.exe con privilegi elevati.
L'opzione inputClosed
di configurazione riduce il rischio chiudendo l'handle di input. Disconnettendo l'handle di input dalla finestra della console corrente, i processi non elevati non possono inviare input al processo con privilegi elevati.
L'opzione inline
di configurazione esegue il processo con privilegi elevati nella finestra corrente e il processo è in grado di ricevere input dalla sessione della console corrente. Un processo non aggiornato può inviare input al processo con privilegi elevati all'interno delle stesse finestre della console o ottenere informazioni dall'output nelle finestre correnti di questa configurazione.
Domande frequenti
In che modo Sudo per Windows è diverso dal comando runas
esistente?
Il comando sudo
offre un modo per elevare rapidamente un comando come amministratore dal contesto della riga di comando corrente nonlevato ed è familiare ad alcuni utenti provenienti da altri sistemi operativi. Il comando runas
offre un modo per eseguire programmi come qualsiasi utente, incluso l'amministratore, se lo si sceglie. A questo punto, il comando in Windows non supporta l'esecuzione sudo
di programmi come altri utenti. Altre differenze chiave tra sudo
e runas
includono:
runas
consente di eseguire programmi come altri utenti, tra cui, ad esempio, come amministratore. Questa funzionalità è in programma per il comando sudo, ma non esiste ancora.sudo
consente di elevare rapidamente un processo (come amministratore):- È possibile scegliere di eseguire questa operazione in una nuova finestra, simile al flusso di
runas
amministratore. - È possibile scegliere di connettere il processo con privilegi elevati alla finestra della console corrente con le
disableInput
enormal
opzioni di configurazione. Questa azione non è supportata conrunas
.
- È possibile scegliere di eseguire questa operazione in una nuova finestra, simile al flusso di
runas
può richiedere agli utenti una password nella riga di comando.sudo
può essere elevata solo tramite la funzionalità di sicurezza Controllo account utente (UAC) progettata per proteggere il sistema operativo da modifiche non autorizzate tramite prompt di verifica.
È consigliabile considerare il caso d'uso specifico e pianificare l'uso del comando più adatto alle proprie esigenze. È anche consigliabile considerare le implicazioni di sicurezza dell'esecuzione di sudo nelle modalità inputClosed
e normal
. L'opzione di configurazione predefinita è consigliata forceNewWindow
a meno che non si abbia familiarità con i rischi associati alle altre sudo
configurazioni.
Repository open source sudo per Windows
Sudo per Windows è open source e accoglie contributi, commenti e suggerimenti. Il codice sorgente per Sudo per Windows è disponibile su GitHub.
Funzionalità aggiuntiva
Se si stanno cercando funzionalità aggiuntive che Sudo per Windows non fornisce, consultare gsudo di Gerardo Grignoli che ha una serie di funzionalità aggiuntive e opzioni di configurazione o scoprire altre soluzioni dalla community.