我希望以非特权用户的身份运行进程,但该进程更改的所有文件只应在阴影文件夹中更改。此外,如果需要的话,我想禁用网络功能。
/和upperdir /temp/fakeroot,unshare -rn,chroot /temp/overlay 安装覆盖unshare -rmn,挂载低/和上位/temp/fakeroot 的覆盖/tmp是/的子文件夹fuse-overlayfs,unshare -rn,chroot 我知道存在的
overlayroot-chroot:基于以上。有人知道怎么做吗?
发布于 2022-10-21 14:28:21
我找到了一种将上述多个命令结合在一起的解决方案。
mkdir -p /tmp/overlay-test/{upper,workdir,mount}unshare -- map-root-user --net --mount或短unshare -rnmmount.mergerfs / /tmp/overlay-test/view -o use_ino,posix_acl=true (选项是可选的)mount -t overlay overlay -o lowerdir=/tmp/overlay-test/view,upperdir=/tmp/overlay-test/upper,workdir=/tmp/overlay-test/workdir /tmp/overlay-test/mountmount --rbind /dev /tmp/overlay-test/mount/dev和mount --rbind /proc /tmp/overlay-test/mount/procchroot /tmp/overlay-test/mount /bin/bash一般的想法是使用unshare来创建一个环境,用户(而不是根用户)可以在其中挂载文件系统。在此之后,mergerfs用于将所有的子挂载(就像许多发行版中的home )合并到一个文件夹中。这个单独的文件夹可以作为覆盖层的较低的值。为了执行命令,需要将dev和proc映射到覆盖文件夹中。这是好的,因为这些文件夹是不可写的用户无论如何。最后但并非最不重要的一点是,可以执行chroot以切换到覆盖-合并-rootfs。在那里所做的所有更改只做了一个upper目录。完成后,不要忘记卸下所有的坐骑进行清理。
https://unix.stackexchange.com/questions/721874
复制相似问题