不用再右键“以管理员身份运行”了:为 Windows 11开启原生 sudo 功能(微软官方)

原始链接在: 不用再右键“以管理员身份运行”了:为 Windows 11开启原生 sudo 功能(微软官方) - 小众软件

在 Windows 中,会经常遇到权限不足的情况,这时需要使用右键选择「以管理员身份运行」程序。
而在 Linux 中,只需要在命令前添加 sudo 就能实现提权。

其实 Windows 11 有一个自带的 Sudo 功能,微软在 2024 年就推出了这个与 Linux 同名同功能的工具。

Sudo for Windows 需要 Windows 11

注意,这项功能需要 Windows 11 24H2 才能使用,并不支持 Windows 10。

青小蛙曾经遇到的问题是这样的,打开命令提示符,进入对应文件夹,运行,然后提示:需要管理员权限。你必须重写开一个「以管理员身份运行」的命令提示符,非常之麻烦,非常之讨厌。

现在,使用 Sudo for Windows,你只需要在需要管理员权限时,在命令行最前面添加一个 sudo 即可,不用重写打开窗口了。

注:该命令仅针对命令行,无法在图形界面下使用(不过,你可以通过 sudo notepad 来启动一个管理员权限的记事本)

与 Unix/Linux 上的 sudo 的关系

Sudo for Windows 与 Linux 上的 sudo 项目无任何关系,只是微软重新为 Windows 实现的,相同功能、相同名称的工具。 😂

开启方式

需要在 Windows 11 24H2 以上系统设置中,进入 系统 > 高级 > 终端,打开启用 sudo 即可:

不过注意这里有三种运行方式:

  1. 在新窗口中:新的拥有管理员权限的窗口
  2. 禁止输入:当前窗口拥有管理员权限,但不能输入
  3. 内联:在当前窗口中提权,可以输入(与 Linux sudo 类似)

与 runas、gsudo 的区别

Windows 下还有其他的工具可以实现相同的功能,比如 runas 与 gsudo,具体区别如下:

项目 runas gsudo Sudo for Windows
描述 换个账户运行程序 第三方 sudo(体验最像) 微软官方 sudo
常见写法 runas /user:xxx cmd gsudo xxx sudo xxx
是否需要密码 ✅ 需要输入账户密码 ❌ 不需要(UAC) ❌ 不需要(UAC)
默认在哪执行 新窗口 / 新进程 当前终端 默认新窗口(可改)
是否接近 Linux sudo ❌ 完全不像 ✅ 很接近 ⚠️ 部分接近(还在完善)
能否提升 GUI 程序 ✅ 可以 ✅ 可以 ✅ 可以

原文:https://www.appinn.com/sudo-for-windows/

捉虫

之前好像有人实现了Windows上的sudo,这玩意甚至被scoop收录了。
Windows原生集成sudo之前我是用这个的,我记得这玩意可以像*nix一样把终端开头变成#

就是 gsudo

1 个赞

这样处理之后是全局程序以管理员权限运行?

?这指的是命令行能直接sudo,不用以管理员运行后手动cd到指定目录了

我之前用的这个

所以是单程序管理员权限运行?

是不是等效成这样?

不是,临时以管理员权限运行

我去,终于可以 inline 以管理员权限运行了。被迫每次重新打开一个实例折磨了多少年了都。

1 个赞

话说,大家都不用 cygwin 了吗?大家平时用 windows 终端是搭配 wsl 使用吗?

windows10其实也能用,从windows11 复制出来放在C:\Windows\System32\目录下就行了

默认新窗口,还得自己调,而且还是微软的软件…感觉还是留在 gsudo 或者 psutils 最安心

不一样。

  • 您这个是以管理员身份、不带参数地运行单个应用程序
  • sudo 一般是在命令提示符中运行命令用的

如果只是需要用个处理文本的小程序(比如 awksedpaste 等),其实可以直接用 Busybox-w32。

对于其他大型程序,似乎现在用 MSYS2 的比较多。

gsudo都用了好多年了

感谢解答

涨知识了

:nerd_face:

说句题外话,其实 Linux 上也不止 sudo 这一种提权方法。其他的还有:

1 su

这个是比较传统的方法,执行 su 后,会打开一个以 root 身份运行的 shell。

但出于安全考虑,Ubuntu 禁用了这一命令。

2 doas

准确点说这个是从 OpenBSD 那边移植过来的,使用上和 sudo 差不多,但配置文件更简单。

我在 FreeBSD 和 Debian 上都用过,作为一个外行,感觉和 sudo 没什么区别。

3 pkexec

主要用于图形界面。用法一般也是 pkexec [命令],不过执行它后一般会打开一个窗口,要求你输入 root 密码。

如果需要以 root 身份运行一些带 GUI 的应用程序,一般可以用 pkexec。(当然,出于安全考虑,一般不太建议直接以 root 身份运行带 GUI 程序)操作方法如下:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY [命令]

4 admin://

如果需要在文件管理器中,以 root 身份访问某一路径,可以在地址栏中输入:

admin://[路径]

比如要访问 /usr/share/icons/,可访问地址 admin:///usr/share/icons/

如果是要编辑某个配置文件,也可以用类似的方法。比如要用 gedit 编辑 /etc/hosts,则可执行命令:

gedit admin:///etc/hosts

在以上两个案例中,文件管理器和文本编辑器仍是以普通用户身份运行的,但借助 admin:// 协议,它们临时获得了以管理员身份访问/编辑文件的权限。

如果有 KDE 话,还有个 kdesu 命令,可以使用管理员权限运行软件。

比如 kdesu kate 打开 kate 方便编辑 /etc/ 下的文件。

而且这条命令还支持 -r 参数意为使用实时 CPU 调度。

1 个赞