如何使用用户命名空间沙箱?

如何使用用户命名空间沙箱?

READMEhttps://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_portable/64bit/指示我在运行之前ungoogled-chromium使用用户命名空间沙盒设置我的系统,以便浏览器的沙盒能够正常工作。我该怎么做?

我的环境:Ubuntu Desktop 22.04 LTS。假设我的管理员用户的用户名是leo

答案1

它是什么?

这是一项内核功能,允许非特权用户创建命名空间,这些命名空间可以在这些包含/沙盒的命名空间上以提升的权限运行隔离进程,例如利用unshare

$ whoami
ubuntu
$
$ unshare --map-root-user
#
# whoami
root
#

举例来说,您当前的有效用户和组 ID 将映射到新创建的用户命名空间中的超级用户 UID 和 GID,这使得即使在非特权运行时也可以方便地获得管理新创建命名空间的各个方面所需的功能(例如在网络命名空间中配置接口或在挂载命名空间中挂载文件系统)。

通常,您不需要自己设置这样的用户命名空间,而是需要该功能的应用程序应根据需要自动执行该操作。

如何使用它?

它应该在 Ubuntu 的最新版本上默认启用...使用以下命令检查:

sysctl kernel.unprivileged_userns_clone

如果打印:

kernel.unprivileged_userns_clone = 1

正如它应该的那样,那么你就可以开始了,并且你的应用程序设置为利用该功能将运行良好......你可以通过列出创建/使用的命名空间来看到这种情况运行您在问题中链接的提取的便携式 ungoogled-chromium 档案中的脚本./chrome-wrapper,例如:

lsns -o ns,pid,type,command | grep 'ungoogled-chromium'

但是,如果它输出:

kernel.unprivileged_userns_clone = 0

这意味着它被禁用...然后,您可以使用以下命令启用它直到下次重新启动:

sudo sysctl -w kernel.unprivileged_userns_clone=1

您可以通过添加以下行来使更改永久生效:

kernel.unprivileged_userns_clone=1

到文件/etc/sysctl.conf

相关内容