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 翻譯,未經許可禁止轉載。