userns

LXC - 使用生成的 apparmor 配置文件,但 apparmor 状态显示不受限制
userns

LXC - 使用生成的 apparmor 配置文件,但 apparmor 状态显示不受限制

我一直在使用非特权lxc容器(以 root 身份运行,但具有用户命名空间),并使用以下配置来利用 apparmor: lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1 当容器运行时,我看到确实生成了 apparmor 配置文件,并且它已加载到系统日志中。例如: Jan 15 04:00:16 localhost kernel: [1315978.637961] audit: type=1400 audit(1673776816.182:395): apparmor="STATUS...

Admin

如何有选择地为一个可执行文件或用户启用 unprivileged_userns_clone?
userns

如何有选择地为一个可执行文件或用户启用 unprivileged_userns_clone?

与仅相比,如何CLONE_NEWUSER以更细粒度的方式启用kernel.unprivileged_userns_clone? 我希望通过禁用非 rootCAP_SYS_ADMIN或 BPF 等新的复杂功能来保持内核 API 攻击面的可管理性,同时也有选择地允许某些特定程序使用它。 例如,chrome-sandbox想要CLOSE_NEWUSER或 suid-root 才能正常运行,但我不希望所有程序都能够使用如此复杂的技巧,只有少数经过批准的程序。 ...

Admin

用户命名空间:如何仅为给定程序安装文件夹
userns

用户命名空间:如何仅为给定程序安装文件夹

我想在没有 root 访问权限的非 FHS 系统 (NixOs) 上伪造 FHS 系统。为此,我需要使用用户名空间在根目录安装一些文件夹(例如安装/tmp/mylib到/lib)(我没有看到任何其他解决方案)。 不幸的是,我找不到如何让它工作:我试图遵循本教程,但是当我复制代码时它失败了(我什至无法启动 bash): $ gcc userns_child_exec.c -lcap -o userns_child_exec $ id uid=1000(myname) gid=100(users) groups=100(users),1(wheel),17(au...

Admin

为什么创建大小为 1 的用户命名空间可以工作,但大小 >1 会失败
userns

为什么创建大小为 1 的用户命名空间可以工作,但大小 >1 会失败

我正在尝试非特权 Linux 容器,并且正在编写一个创建极简容器的 Go 程序。程序分叉自身并在进程中创建名称空间。但是,由于某种原因,如果我将用户命名空间大小设置为大于 1,则以普通用户身份运行时会失败。 cmd := exec.Command("/proc/self/exe", "run-container") cmd.SysProcAttr = &syscall.SysProcAttr{ Cloneflags: syscall.CLONE_NEWUSER | syscall.CLONE_NEWUTS | s...

Admin

RLIMIT_NPROC 还是用户命名空间谁会获胜?
userns

RLIMIT_NPROC 还是用户命名空间谁会获胜?

根据配置,非特权(非 root)进程可以创建用户命名空间。 RLIMIT_NPROC限制进程数量每个用户。 如果我输入用户命名空间,我是否可以创建具有不同 UID 的进程,从而超出我的真实值RLIMIT_NPROC? ...

Admin

Ping 在新的 C 容器中不起作用
userns

Ping 在新的 C 容器中不起作用

我一直在用 C 从头开始​​编写自己的 Linux 容器。我从几个地方借用了代码并提供了一个基本版本命名空间&cgroups。 基本上,我克隆一个新的流程与所有克隆_新*为创建新的命名空间的标志克隆的过程。 我还通过插入来设置 UID 映射0 0 1000进入uid_map和gid_map文件。我想确保根容器内部被映射到根外部。 对于文件系统,我使用的基本映像拉紧创建于反引导程序。 现在,我正在尝试从容器内部设置网络连接。我用了这用于设置容器内接口的脚本。该脚本创建了自己的新网络命名空间。我对其进行了稍微编辑,以通过脚本将创建的进程的网络命名...

Admin

为什么我不能在用户命名空间内绑定挂载“/”?
userns

为什么我不能在用户命名空间内绑定挂载“/”?

为什么这不起作用? $ unshare -rm mount --bind / /mnt mount: /mnt: wrong fs type, bad option, bad superblock on /, missing codepage or helper program, or other error. 这些工作正常: $ unshare -rm mount --bind /tmp /mnt $ unshare -rm mount --bind /root /mnt $ $ uname -r # Linux kernel versi...

Admin

基于 Debian 的 Linux
userns

基于 Debian 的 Linux

我的 Linux 内核必须配置为用户命名空间构建时,但它们的使用在启动后受到限制,并且必须明确启用。我应该使用哪个 sysctl? (如果启用此功能,这将允许运行隔离命令,例如unshare --user --map-root-user --mount-proc --pid --fork,然后执行chroot无需成为 root——Linux 的一项备受期待的功能。) ...

Admin

如何将一个 UID 映射到用户命名空间内的另一个 UID (!= 0)?
userns

如何将一个 UID 映射到用户命名空间内的另一个 UID (!= 0)?

如何将 UID 1000 映射到用户命名空间内的另一个常规 UID(不是 root/0)? 编辑:对于任何感兴趣的人,https://linuxcontainers.org/lxc/manpages/man5/lxc.container.conf.5.html列出了一个lxc.init_uid似乎与此相关的选项,但我的 LXC 版本无法识别该选项。如果有人设法让它发挥作用,请告诉我。 ...

Admin

为什么 UID 0 无法处理到用户命名空间中 SUID 文件的硬链接?
userns

为什么 UID 0 无法处理到用户命名空间中 SUID 文件的硬链接?

考虑以下以 root 权限运行的用户命名空间 shell 的记录(命名空间内的 UID 0,外部无特权): # cat /proc/$$/status | grep CapEff CapEff: 0000003cfdfeffff # ls -al total 8 drwxrwxrwx 2 root root 4096 Sep 16 22:09 . drwxr-xr-x 21 root root 4096 Sep 16 22:08 .. -rwSr--r-- 1 nobody nobody 0 Sep 16 22:09 file #...

Admin

是否允许将一个范围的从属 ID 分配给两个不同的用户?
userns

是否允许将一个范围的从属 ID 分配给两个不同的用户?

定义从属ID的系统上是否允许为不同用户分配相同范围的从属用户和组ID? 请提供您的答案的来源。 这里的想法是利用lxc-usernsexec来自非特权用户帐户的东西以及具有可以自动启动的 root 用户 LXC 来宾。即,非特权用户应该能够模拟与 root 相同的从属 ID。 ...

Admin

如何列出与我的主机的所有连接,包括与 LXC 访客的连接?
userns

如何列出与我的主机的所有连接,包括与 LXC 访客的连接?

我尝试了netstat和lsof,但似乎无法看到与我的 LXC 客人的连接。 有没有办法实现这一目标...全部马上来客人吗? 本质上,让我感到困惑的是,只要我以超级用户身份运行,我就可以看到来宾的进程。我还可以看到veth为每个访客动态创建的界面。为什么我看不到原本可见的进程上的连接? ...

Admin

无法连接到我的非特权 LXC 来宾中的 sshd。该怎么办?
userns

无法连接到我的非特权 LXC 来宾中的 sshd。该怎么办?

因此,您通过定义配置了非特权 LXC 来宾 lxc.id_map = u 0 1000000000 10000 lxc.id_map = g 0 1000000000 10000 当然,将这些从属 UID/GID 范围分配给现有用户 ( usermod --add-sub-uids ...)。 然而,每当你ssh host得到: Read from socket failed: Connection reset by peer 但是,在来宾内部,您可以清楚地看到 正在sshd运行(例如,使用lsof -i :22)。 可能出了什么问题? ...

Admin

是否可以在 Linux 系统中注册“虚拟”用户/组 ID?
userns

是否可以在 Linux 系统中注册“虚拟”用户/组 ID?

Linux 中是否有标准化机制可用于将用户名与用户 ID 绑定在一起,而无需实际创建可以登录的系统帐户? 鉴于能够连接到 Windows 服务器并向用户提供 UID,这似乎是可能的。通常处于较高的数字范围内。 我需要/想要的目的是能够为仅作为从属 ID 存在的组和用户分配有意义的名称(用户名)。 我认为这可以通过与以下相关的事情来完成国家安全局(5)但空手而来。 一些背景 在主机系统上,通常使用 64k UID(和 GID),但是0..2^32-1范围是可用的用户 ID。因此,我们可以将整个范围中的子范围分配为给定用户的从属 ID。例如,我...

Admin

归档 LXC 来宾时如何保存用户 UID/GID 映射?
userns

归档 LXC 来宾时如何保存用户 UID/GID 映射?

我想归档一个已配置为作为非特权 LXC 容器运行的现有 LXC 容器(请参阅这个问题)。 如何保存用于的所有文件系统元数据店铺文件/文件夹所有权的映射 UID 和 GID? 注意:我知道映射本身发生在主机上,但我的意思是,内部userns有许多 UID 和 GID,它们都在主机上映射到非特权用户,但在来宾中仍然解析为不同的 UID和 GID。因此,无论是什么魔法使这些东西在文件系统级别保持连接,我都想将其保存在存档中(tar 或 7z 或类似文件)。 ...

Admin