Windows11Build26052很有可能在本周四或晚些時候提供下載,其中包括"SudoforWindows"的首個公開預覽版。在一篇已被刪除的博文中,微軟確認Windows版Sudo是一種"直接從未升級的控制臺會話中提升命令"的新方法,並計劃在GitHub上開源該功能。
微軟將 Windows 版 Sudo 描述為"一種符合人體工程學且熟悉的解決方案,用戶無需首先打開新的提升控制臺即可提升命令"。Windows 版 Sudo 正處於早期開發階段,最近在泄露的 Windows Server 2025 版本中被發現。
微軟在一篇被刪除的博文中指出,可以從"設置">"面向開發者"頁面啟用Sudo,並切換"啟用Sudo"選項。
您也可以在提升權限後的控制臺會話中運行以下命令,啟用 Windows 版 Sudo:
sudo config --enable <configuration_option> 配置選項
正如我們之前所報道的,Windows 版 Sudo 目前支持三種不同的配置選項:
在新窗口(newWindow)中:在此配置中,Sudo for Windows 將打開一個新的高級控制臺窗口,並在該窗口中運行命令。這是啟用 sudo 時的默認配置選項。例如,如果運行
sudo netstat -abA將打開一個新窗口,並在該窗口中運行命令
輸入關閉(disableInput):在此配置中,Sudo for Windows 將在當前窗口中運行提升後的進程,但新進程生成時將關閉其 stdinput。這意味著新進程將不接受任何用戶輸入,因此此配置不適用於提升後需要用戶進一步輸入的進程。
內聯(正常):這種配置與其他操作系統上的 sudo 行為最為相似。在此配置下,Sudo for Windows 將運行高架進程,其 stdinput、stdoutput 和 stderror 均與當前窗口相連。這意味著新的提升進程可以接收輸入,並將輸出發送到當前窗口。
微軟解釋 Windows 版 Sudo 的工作原理
當你使用 sudo 從命令行運行一個進程時,會出現 UAC 對話框,要求用戶確認升級。你還可以在終端中使用 sudo,就像在 Linux 或 macOS 上一樣。
在新窗口中
在此配置中,sudo.exe 將啟動一個新的高架控制臺窗口,並在該窗口中運行命令。新窗口的工作目錄與當前窗口相同。
新窗口啟動時也將使用與當前窗口相同的環境變量。該配置的流程與 runas 命令類似。
在這些配置中,sudo.exe 將啟動一個新的提升進程,即提升的 sudo.exe 進程,而原來未提升的 sudo.exe 將與新的提升進程建立 RPC 連接。
換句話說,信息從未升維的 sudo 實例傳遞到升維的 sudo 實例。具體來說,未升維進程的控制臺句柄被傳遞給升維進程,從而使升維進程可以讀取未升維進程的輸入,並將輸出寫入未升維進程。
不過,如果在"輸入關閉"配置中配置 sudo,則提升進程基本上不會獲得控制臺的輸入句柄,因此無法讀取用戶的輸入。
在"內聯"或"輸入封閉"配置下運行 sudo 時,必須註意其安全影響。中等完整性進程有可能驅動提升進程。在"輸入封閉"配置中,這種風險得到緩解,因為被提升的進程將無法讀取用戶的輸入。
微軟指出,它還將發佈適用於 Windows 的 Sudo 文檔,並將分享有關在"內聯"配置下運行 sudo 的安全影響的更多細節。
該公司在一篇現已刪除的博文中指出:"我們的團隊正在為 Windows 開源 Sudo,我們很高興能在未來幾個月內分享有關我們計劃的更多細節。"