Sudo for Windows
Sudo for Windows 是用户(以管理员身份)直接从 Windows 上的未提升权限的控制台会话运行提升的命令的一种新方式。
阅读公告,其中包括演示视频,并深入了解 Sudo for Windows 的工作原理。
Sudo for Windows 命令在 Windows 11 版本 24H2 或更高版本中可用。 (检查 Windows 更新)。
备注
Sudo for Windows 尚不适用于 Windows 10,但可能会在未来推出。
要启用 Sudo for Windows,请打开 Settings > System > For Developers
,并将“启用 sudo”设置为“开”。
警告
在某些配置中启用时,Sudo for Windows 可用作特权向量的潜在升级。 在计算机上启用 sudo 命令时,应确保注意安全注意事项。
Sudo for Windows 目前支持三种不同的配置选项。 可以从菜单或使用命令行以编程方式设置 Settings > For Developers
配置。 配置选项包括:
在新窗口中 (forceNewWindow
):forceNewWindow
配置选项是 Sudo for Windows 的默认配置选项。 在此配置中使用 sudo
在新窗口中运行命令。 这类似于 runas /user:admin
命令的行为。
输入已关闭 (disableInput
):disableInput
配置选项将在当前窗口中运行提升的进程,但输入句柄关闭。 这意味着提升的进程将无法接收来自当前控制台窗口的输入。 这对于希望以管理员身份运行命令,但不希望命令接收来自当前控制台窗口的输入的方案非常有用。 此配置选项inline
为配置选项提供了一定的便利,同时缓解了一定的相关安全风险。
内联 (normal
): normal
配置选项与 sudo 在其他操作系统上的行为最为相似。 此配置将在当前窗口中运行提升的进程,并且该进程将能够从当前控制台会话接收输入。 这对于希望以管理员身份运行命令,同时希望允许命令接收来自当前控制台窗口的输入的方案非常有用。 此配置选项提供了最大的便利,但仅在熟悉关联的安全风险时才选择此选项。
可以从 Settings > For Developers
菜单中选择这些配置,也可以在提升的命令行(管理控制台)中以编程方式更改配置,并使用:
sudo config --enable <configuration_option>
将 <configuration_option>
更新为 forceNewWindow
, disableInput
或 normal
。
要使用 Sudo for Windows,只需将 sudo
追加到要以管理员身份运行的命令。 例如,要以管理员身份运行 netstat -ab
,需要在控制台窗口中运行 sudo netstat -ab
。
由于 sudo
提升目标进程以使用管理员级别权限运行,因此系统会打开提示,要求你确认是否要继续。
在输入关闭 (inputClosed
) 或内联 (normal
) 配置中运行 sudo 存在相关风险。 恶意进程可能试图使用未提升的 sudo.exe 和提升的 sudo.exe 进程建立的连接来驱动提升的进程。
inputClosed
配置选项通过关闭输入句柄,来缓解风险。 断开输入句柄与当前控制台窗口的连接意味着未提升的进程无法将输入发送到提升的进程。
inline
配置选项在当前窗口中运行提升的进程,并且该进程能够从当前控制台会话接收输入。 在此配置中,未提升的进程可以在相同的控制台窗口中向提升的进程发送输入,或者从当前窗口的输出中获取信息。
Sudo for Windows 与现有 runas
命令有何不同?
该 sudo
命令提供了一种从当前未提升的命令行上下文中以管理员身份快速提升命令的方法,并且对于来自其他操作系统的一些用户来说很熟悉。 runas
命令提供了一种以任何用户身份运行程序的方式,包括管理员(若你选择的话)。 此时,Windows 上的 sudo
命令不支持以其他用户身份运行程序。 sudo
与 runas
之间的其他主要区别包括:
应考虑特定的用例,并计划使用最能满足需求的命令。 还应考虑在 inputClosed
和 normal
模式中运行 sudo 的安全影响。 建议使用默认 forceNewWindow
配置选项,除非熟悉并适应与其他 sudo
配置相关的风险。
Sudo for Windows 是开源的,欢迎大家参与进来以及提供反馈。 请访问 GitHub,查找 Sudo for Windows 的源代码。
如果正在寻找 Sudo for Windows 未提供的其他功能,请访问 Gerardo Grignoli 的 gsudoGerardo Grignoli,其中包含许多附加功能和配置选项,也可以查阅社区中的其他解决方案。