Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sudo per Windows è un 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).
Come abilitare Sudo per Windows
Per abilitare Sudo per Windows, aprire System Advanced in Windows Settings (Impostazioni > di Windows) e impostare Enable sudo (Abilita sudo) su Sì.
Avvertimento
Sudo per Windows può essere utilizzato come potenziale vettore di escalation dei privilegi se 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 System > Advanced o a livello di codice, usando la riga di comando. Le opzioni di configurazione includono:
In una nuova finestra (
forceNewWindow): l'opzioneforceNewWindowdi configurazione è l'opzione di configurazione predefinita per Sudo per Windows. Usaresudoin questa configurazione per eseguire il comando in una nuova finestra. Questo comportamento è simile al comportamento del comandorunas /user:admin.Input chiuso (
disableInput): l'opzionedisableInputdi 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'opzioneinlinedi configurazione, riducendo alcuni dei rischi di sicurezza associati.Inline (
normal): l'opzionenormaldi 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 System > Advanced 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>
Aggiorna <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.
Scenari di sviluppo comuni
Ecco alcuni scenari comuni in cui gli sviluppatori possono usare sudo:
-
Modifica dei file di sistema:
sudo notepad C:\Windows\System32\drivers\etc\hosts -
Installazione di pacchetti a livello globale:
sudo npm install -g package-name -
Esecuzione di strumenti di amministrazione:
sudo diskpart
Annotazioni
Per il lavoro di sviluppo che coinvolge directory di sistema come C:\Windows\, prendere in considerazione l'uso di ambienti di sviluppo o approcci alternativi, quando possibile. Sudo deve essere usato in modo appropriato e solo quando sono effettivamente necessarie autorizzazioni elevate.
Poiché sudo eleva il processo mirato per essere eseguito con autorizzazione a livello di amministratore, verrà visualizzato un prompt che richiede conferma per continuare.
Considerazioni sulla sicurezza
Esistono rischi associati all'esecuzione di sudo nelle configurazioni Input chiuso (disableInput) 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 di configurazione disableInput riduce il rischio grazie alla chiusura dell'handle di input. Disconnettendo il gestore 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 elevato può inviare input al processo con privilegi elevati nella stessa finestra della console o ottenere informazioni dall'output nella finestra corrente in 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 con privilegi amministrativi dal contesto della riga di comando corrente non elevato ed è familiare ad alcuni utenti che provengono 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 sudo in Windows non supporta l'esecuzione di programmi in qualità di altri utenti. Altre differenze chiave tra sudo e runas includono:
runasconsente di eseguire programmi come altri utenti, tra cui, ad esempio, come amministratore. Questa funzionalità è in programma per il comando sudo, ma non esiste ancora.sudoconsente di elevare rapidamente un processo (come amministratore):- È possibile scegliere di eseguire questa operazione in una nuova finestra, simile al flusso di
runasamministratore. - È possibile scegliere di connettere il processo con privilegi elevati alla finestra della console corrente con le
disableInputenormalopzioni di configurazione. Questa azione non è supportata conrunas.
- È possibile scegliere di eseguire questa operazione in una nuova finestra, simile al flusso di
runaspuò richiedere agli utenti una password nella riga di comando.sudopuò essere elevato solo mediante la funzionalità di sicurezza del Controllo dell'account utente (UAC) progettata per proteggere il sistema operativo da modifiche non autorizzate tramite una richiesta 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à disableInput e normal. L'opzione di forceNewWindow configurazione predefinita è consigliata, a meno che non si abbia familiarità e fiducia nei rischi associati alle altre sudo configurazioni.
Repository open source di 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à aggiuntive
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.