之前就有用戶猜測,Windows 11將會提供類UNIX作業系統中的Sudo程式,果真微軟現在於Windows 11 Insider Preview Build 26052中,加入適用於Windows的Sudo,允許用戶直接從未提升權限的控制臺執行提升權限指令。目前微軟已經在GitHub開源Sudo for Windows專案。

Sudo已經是類UNIX作業系統用戶熟悉且廣泛使用的工具,允許普通使用者不需要切換到Root使用者,就可執行特定的管理指令。當前Windows也有提供提升權限操作,但是方法都不如Sudo的方便,現在Sudo for Windows讓用戶在使用提升權限指令時,不需要事先開啟提升權限控制臺,或是執行繁瑣的操作。如此不只提高了效率,也提升操作安全性,因為使用者可以更精確地控制要使用提升權限執行的指令。

現在用戶要在Windows使用Sudo,需要先從在設定中的開發人員頁面,開啟Sudo選項,或是從提升權限的控制臺對話中,以指令啟動Sudo。

Sudo for Windows提供了三種配置選項,供用戶在不同情境下使用,第一種是在新視窗中執行的預設選項,系統會在一個新的提升權限視窗中執行指令;第二種則是關閉輸入選項,系統會在當前視窗以提升權限執行指令,但是不接受任何輸入,適用於不需要進一步輸入的指令;第三種則是行內(Inline)選項,讓提升權限的指令在當前視窗中運作,並且接受輸入和顯示輸出,類似其他作業系統的Sudo行為。

當用戶使用Sudo從命令列提升程序權限時,系統會彈出UAC對話框,要求使用者確認權限提升,之後程序便會根據使用者選擇的配置選項運作。在新視窗中執行的選項,新視窗會使用和該視窗相同的工作目錄和環境變數,而關閉輸入和行內選項,sudo.exe會啟動一個新的提升權限程序,原始未提升的sudo.exe與提升權限的sudo.exe建立遠端程序呼叫(RPC)連線,資訊會從未提升的sudo實例傳遞到提升權限的實例。

也就是說,來自未提升程序的控制臺控制碼(Handle)會被傳遞到已提升權限的程序,因此提升的程序可以讀取輸入,並且寫入輸出到未提升的程序,但是關閉輸入配置因為不會傳遞控制臺的控制碼,因此無法讀取使用者輸入。

使用者需要特別注意行內模式可能存在安全風險,因為中等完整性程序(Medium Integrity Process)可能控制提升權限程序,而關閉輸入模式這類風險較低,畢竟無法讀取用戶的輸入。

熱門新聞

Advertisement