Sudo for Windows:在 Windows 11 中执行特权命令

2024-02-29 15:22:55 浏览数 (2)

作者 | 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”选项,如下所示:

此外,用户也可以通过在特权控制台会话中执行以下命令来启用:

代码语言:javascript复制
sudo config --enable <configuration_option>

Sudo for Windows 支持 3 种配置选项,每个选项有不同的用途:

  1. 打开新窗口(forceNewWindow):打开一个新的特权控制台窗口来执行命令。
  2. 关闭输入(disableInput):在当前窗口中执行特权进程,关闭 stdin,限制用户输入。
  3. 内联(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 翻译,未经许可禁止转载。

0 人点赞