如何(合法地)将自己放入chroot沙箱后访问文件?

Val*_*ron 4 c c++ unix linux chroot

更改Linux C++程序,为用户提供有限的文件访问权限.因此,程序自己chroot到一个沙箱,其中包含用户可以获得的文件.一切顺利.

但是,现在,程序需要根据自己的需要访问某些文件(而不是用户),但它们位于沙箱之外.我知道chroot允许访问在chroot 之前打开的文件,但在这种情况下,所需的文件可能会有数百个,所以打开它们对于可能需要的那对夫妇来说显然是不切实际的.

有办法获取文件吗?

pax*_*blo 8

将它们复制到沙箱中或在打开之前打开它们chroot.认真.如果有办法做到这一点,就会有办法让它变得允许其他访问,并使你的保护毫无用处.

沙箱的重点是要完全避免你想要实现的目标.


m42*_*42a 5

如果文件全部位于 1 个目录中,您可以使用 mount 将它们绑定到沙箱内的目录。

mount --bind /path/to/files /sandbox/files
Run Code Online (Sandbox Code Playgroud)

您可以通过 访问文件/sandbox/files/。如果您不希望用户看到它们,请隐藏mount --bind /path/to/files /sandbox/.files目录.files