我可以在没有管理员权限的情况下使用/ proc创建chroot环境吗?

时间:2018-02-12 10:18:31

标签: linux sandbox sudo chroot

我正在尝试制作一个chroot,沙盒构建环境,它在继续构建应用程序之前从Git checkout创建。其中一个要求是执行git checkout和调用构建的开发人员不需要在主机上拥有管理员权限。

unshare -r chroot

工作正常 - 除了没有/ proc这意味着许多standeard东西不会工作。 创建/ proc的各种方法我发现mount需要sudo权限。

Docker这样做但是开发人员必须处于“docker”组中,这有效地为他们提供了不受控制的root访问权限 - 然后给予他们sudo权限。

我找到了“proot”进行某种仿真来做到这一点。然而,这会有一些性能损失。

2 个答案:

答案 0 :(得分:0)

您还需要一个安装命名空间,该命名空间将使您能够执行递归绑定安装(以及没有子安装的普通绑定安装)。 <script> function addRow(imgURL) { const carddiv = document.createElement('carddiv'); carddiv.className = 'card'; carddiv.style = "width: 18rem;" carddiv.innerHTML = ` <img src="`+ imgURL +`" class="card-img-top home-card-image-restrict" alt="..."> <div class="card-body"> <h5 style="text-align: center;" class="card-title">Marli</h5> <button type="button" class="btn btn-secondary btn-lg btn-block">See Gallery</button> </div> </div> `; document.getElementById('displayCards').appendChild(carddiv); } </script> <?php $files = scandir('images/Marli'); foreach($files as $file) { echo $file, "<br>"; echo '<script type="text/javascript">addRow(', $file, ');</script>'; } ?>和挂载tmpfs的功能,因此请使用pivot_root

使用pid名称空间,您还可以挂载procfs的新实例。

答案 1 :(得分:0)

我最终使用了bubblewrap(bwrap)。对于使用ttys的一些事情,我不得不让它与伪uid 0一起运行。

如果我现在应该这样做,我会使用Podman。