編譯丨諾亞
出品 | 51CTO技術棧(微信號:blog51cto)
最近有消息傳出,sudo命令即將登陸Windows。
Sudo(超級用戶執(zhí)行)長期以來一直是類Unix操作系統中的一種強大管理工具。其核心功能是允許一個普通用戶在部分命令中,以超級用戶的權限(通常為管理員權限)運行程序。
雖然Windows系統早就提供了“以管理員身份運行”的選項,然而與啟動一個提升權限的控制臺會話相比,sudo提供了一種更為精細的權限管理方式。用戶可以選擇僅針對單個命令提升權限。
圖片
對于熟悉Linux和macOS中sudo功能的用戶來說,這一更新無疑值得期待。
這一舉動也再次彰顯了微軟在操作系統開發(fā)中對Linux元素日益增長的接納和融合。昔日曾經視Linux為“癌癥”的微軟如今已徹底重塑自我,為了持續(xù)推動跨平臺兼容性和改善用戶體驗,Windows系統向Linux特性靠攏的趨勢在持續(xù)加強。
1、sudo如何進入Windows
微軟打算將該項目作為開源項目在GitHub上發(fā)布。用戶可以通過Windows設置頁面或命令行來啟用這一功能。
不久之后,如果你正在運行Windows 11操作系統,你將能夠在Windows終端中輸入類似這樣的命令:
圖片
當然,這是Linux中經典的命令。當你運行`sudo[command]`時,將會出現熟悉的Windows用戶賬戶控制(UAC)彈窗,詢問你是否希望提升權限。如果你選擇確認,那么接下來的命令語句將以管理員身份執(zhí)行。
在上述示例中,如果用戶(非管理員)以常規(guī)方式打開一個Windows終端,通常無法在這里使用`sudo`命令。然而這一切都在最新的Windows 11內部預覽版(構建版本26052)中發(fā)生了改變,該版本將sudo作為可選的開發(fā)者功能包含其中。
假設你已加入Windows Insider計劃,你可以通過Windows設置 > 開發(fā)者選項頁面啟用sudo功能?;蛘?,你也可以啟動一個提升權限的Windows終端會話,并使用以下命令來激活sudo:
圖片
選項`sudo`賦予你如同在Linux系統中一樣的完全權限。另外,你還可以選擇更安全的選項,例如`sudo disableInput`,該選項不允許提升權限后的進程接收任何進一步的用戶輸入;或者使用`sudo forceNewWindow`,它會在一個新的終端窗口中運行新提升權限的進程。
這兩種方法都能夠減輕一些潛在的安全漏洞風險,但它們改變了`sudo`的工作方式,使其并不完全與Linux中的實現相同。
微軟已經暗示可能會將`sudo`功能回溯移植到Windows 10上。因此,這個新特性有望成為即使在舊版PC上的開發(fā)者也能享用的標準選項。這樣一來,在未來,無論是Windows 10還是Windows 11,開發(fā)人員都可能能夠在Windows操作系統中享受到類似Linux的`sudo`權限管理體驗。
2、我們真的需要sudo嗎?
當然有人也會質疑,這一更新真的有意義嗎?
如果沒有sudo,Windows用戶可以使用`runas`命令的某種形式來獲取管理員權限——要么在命令行中輸入,要么通過右鍵點擊開始菜單中的Windows終端圖標并選擇“以管理員身份運行”。
所以從技術上講,sudo并未提供此前無法實現的新功能。它只是允許你采用傳統Linux的方式來操作。不過,對于真正的Linux用戶來說,這一點尤其便利,無論你是花費大量時間配置服務器或云環(huán)境,還是喜歡在該操作系統上進行開發(fā)。使用sudo就好比是在Linux中輸入`ls`而非`dir`,或者輸入`cat`而非`type`,這樣無需額外的認知切換就能使用自己最熟悉的命令方式。
另一個不那么明顯但同樣重要的方面是,像sudo這樣的添加功能有助于Windows開發(fā)者更加熟悉Linux的約定。過去也有開發(fā)者提到,逐漸偏好于使用Linux命令而非僅限Windows的原生Shell命令。因為對Linux命令越熟悉,在下次實際在Linux提示符下工作時(比如在AWS這類云端環(huán)境中),就越不容易感到迷茫和孤立。
3、微軟與Linux:愛恨交織的歷史
如果你對微軟擁抱Linux還比較陌生,那你一定要了解一下WSL(適用于Linux的Windows子系統),這是一個隨Windows一起發(fā)布的Linux內核,支持各種有趣的互操作性場景。例如,你可以直接在虛擬Linux文件系統中使用VS Code進行開發(fā),并在Docker中運行Linux容器?!懊總€Windows開發(fā)者都需要一點Linux”并非一句簡單的調侃。
經過二十多年時間,微軟內部曾經敵視Linux的做法已經被徹底摒棄。很明顯,如果沒有這一轉變,微軟可能只會成為科技歷史上的一個注腳。而在當前的時間線上,微軟對Linux的擁抱已經越來越徹底,比如用JavaScript構建全球最受歡迎的代碼編輯器(VS Code),將龐大的.NET項目重構為跨平臺且開源,當然還有——悄悄將完整的Linux內核嵌入到Windows的核心中。
參考鏈接:
https://www.theregister.com/2024/02/08/windows_11_sudo/
https://medium.com/young-coder/the-linuxification-of-windows-continues-0cb889255b97