Sudo for Windows:在 Windows 11 中執行特權命令

作者 | Claudio Masolo

譯者 | 平川

策劃 | 丁曉昀

微軟宣佈將在最新版的 Windows 11 Insider Preview Build 26052 中提供 Sudo for Windows。該工具改變了用戶從非特權控制檯會話(unelevated console session)直接執行特權命令的方式。Sudo for Windows 提供了一種直觀、熟悉的解決方案。用戶無需打開新的特權控制檯窗口,這增強了用戶體驗。

Sudo for Windows 在 GitHub 上開源,開發計劃和附加功能會在未來幾個月發佈。微軟建議,如果用戶需要尚未在 Sudo for Windows 中實現的擴展功能,則可以選擇 Gerardo Grignoli 的 gsudo 作爲替代。該工具提供了許多附加功能和配置選項。

要激活 Sudo for Windows,定位到 Windows Settings 下的 Settings > For Developers 頁,並打開“Enable Sudo”選項,如下所示:

此外,用戶也可以通過在特權控制檯會話中執行以下命令來啓用:

Sudo for Windows 支持 3 種配置選項,每個選項有不同的用途:

打開新窗口(forceNewWindow):打開一個新的特權控制檯窗口來執行命令。

關閉輸入(disableInput):在當前窗口中執行特權進程,關閉 stdin,限制用戶輸入。

內聯(normal):行爲類似於其他操作系統上的 sudo,將 stdin、stdout 和 stderr 連接到當前窗口。

以下是示例場景:

“打開新窗口”配置:運行sudo netstat -ab命令會打開一個新的特權控制檯窗口,並在其中執行這條命令。

“關閉輸入”配置:在當前窗口中運行特權進程,stdin 關閉。

“內聯”配置:將 stdin、stdout 和 stderr 連接到當前窗口。

當使用sudo提升進程權限時,用戶帳戶控制(UAC)對話框會提示用戶確認。用戶確認後,系統將根據所選配置提升進程權限。用戶可以通過在控制檯中運行sudo -h來查看 sudo 命令的可選參數。

在“打開新窗口”配置中,sudo.exe 會啓動一個新的特權控制檯窗口,並鏡像當前窗口的目錄和環境變量。對於“關閉輸入”和“內聯”配置,sudo.exe 會啓動一個新的特權進程。原來的非特權“sudo.exe”將與特權進程建立 RPC 連接,方便信息交換。

進程層次結構圖解

由於存在安全風險,所以務請謹慎使用“內聯”或“關閉輸入”配置。“關閉輸入”配置通過防止特權進程讀取用戶輸入來降低風險。

https://www.infoq.com/news/2024/02/sudo-windows/

聲明:本文爲 InfoQ 翻譯,未經許可禁止轉載。