文件系统的轻量级用户空间沙箱

文件系统的轻量级用户空间沙箱

我想欺骗一个非恶意进程,让它认为它正在写入目录,$HOME/abc/def/而实际上它正在写入$HOME/xyz/def(前一个路径是硬编码的,由于各种原因它对我不起作用)。该$HOME/abc/def/目录根本不应该存在。我考虑过使用用户命名空间+文件系统命名空间在其上挂载 aufs 文件系统,但我失败了(挂载完成表明权限不足)。

是否可以使用用户+文件系统名称空间?如果没有,创建为单个程序创建此类文件系统命名空间的 suid 程序是否存在任何风险(该设置目前安全性较低,但我更愿意具有安全意识)?或者也许有现有的解决方案可以做到这一点?

答案1

使用符号链接还不够吗?例子:

[root@talara ~]# ls -la /tmp/home/
total 12
drwxr-xr-x  3 root root 4096 Jul  5 16:01 .
drwxrwxrwt. 9 root root 4096 Jul  5 16:01 ..
drwxr-xr-x  2 root root 4096 Jul  5 16:01 123
lrwxrwxrwx  1 root root   13 Jul  5 16:01 321 -> /tmp/home/123
[root@talara ~]# touch /tmp/home/321/ACTIVITY_TEST
[root@talara ~]# ls -la /tmp/home/123/
total 8
drwxr-xr-x 2 root root 4096 Jul  5 16:02 .
drwxr-xr-x 3 root root 4096 Jul  5 16:01 ..
-rw-r--r-- 1 root root    0 Jul  5 16:02 ACTIVITY_TEST
[root@talara ~]#

这足以欺骗硬编码的脚本或程序。

相关内容