如何在非管理员用户 WSL 发行版上执行管理员操作?

如何在非管理员用户 WSL 发行版上执行管理员操作?

我在非管理员 Windows 帐户上安装了 WSL 发行版。

一些 WSL 操作需要提升权限(例如--mount --bare)。

但是管理员帐户无法看到非管理员用户的发行版。 github issue 指出这是正常的:

这是预期的行为:分发版是按用户安装的,而不是按机器安装的。

那么,除了向该用户授予管理员权限(我不想这样做)之外,我如何在发行版上运行我的 WSL 提升操作?

环境:Windows 10 22H2 [版本 10.0.19045.4170] WSL 2.1.5.0

答案1

这个问题是在 bug-report 中提出的 挂载 Linux 磁盘需要管理员权限 #6414

用户 OneBlue 的回答如下:

当将分区附加到 WSL2 时,即使只挂载了该分区,也必须将整个磁盘从 Windows 分离并附加到 WSL2。

根据设计,需要管理员访问权限才能执行此操作,因为用户在 WSL 中具有 root 访问权限,因此如果用户没有管理员访问权限,则可以使用 wsl --mount 来绕过文件系统 ACL。

这是出于安全考虑,因为安装磁盘使 WSL 用户能够管理员访问其上的所有文件,因此完全绕过了安全性。

存在允许以管理员身份运行特定应用程序的产品,而无需用户知道管理员密码。这样的产品也许可以解决您的问题,通过运行 wsl --mount

一些免费产品可以做到这一点:

相关内容