Condividi tramite


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 .

Abilitare Sudo

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'opzione forceNewWindow di configurazione è l'opzione di configurazione predefinita per Sudo per Windows. Usare sudo in questa configurazione per eseguire il comando in una nuova finestra. Questo comportamento è simile al comportamento del comando runas /user:admin.

  • Input chiuso (disableInput): l'opzione disableInput 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'opzione inline di configurazione, riducendo alcuni dei rischi di sicurezza associati.

  • Inline (normal): l'opzione normal 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 e normal opzioni di configurazione. Questa azione non è supportata con runas.
  • 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.