微軟確認將在Build 26052 中為Windows 11 提供Sudo 功能
Windows 11 Build 26052 很有可能在本週四或稍後提供下載,其中包括”Sudo for Windows”的首個公開預覽版。在一篇已刪除的部落格文章中,微軟確認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,我們很高興能在未來幾個月內分享有關我們計劃的更多細節。”