我试图对一个特定的Python进程进行沙箱化,只允许它访问网络通信和文件系统上的选定数量的文件。我遵循了Ubuntu社区文档站点和铬项目的关于他们的沙拳的文章的指示。
但是,我只想阻止一些Python进程。为了解决这个问题,我已经将Python可执行文件符号链接到另一个位置(称为python sandbox),并对其应用了一个AppArmor配置文件。
当我启动python-sandbox时,我仍然能够在文件系统上打开任意文件并从中读取。怎么了?我做了以下工作:
创建了如下AppArmor配置文件:
#include <tunables/global>
/opt/python-sandbox {
#include <abstractions/base>
#include <abstractions/fonts>
/proc/** r,
/usr/lib/python2.7/** r,
/usr/local/lib/python2.7/** r,
network,
}将其复制到名为/etc/apparmor.d/的opt.python-sandbox目录中(因为符号链接指向/opt/python-sandbox )。
运行apparmor_parser /etc/apparmor.d/opt.python-sandbox。
我做错什么了吗?我应该考虑另一种方法吗?
发布于 2011-07-15 19:17:32
啊哈!我漏掉了什么。显然,众所周知,AppArmor一般不适用于符号链接。将Python可执行文件复制到/opt/python运行良好。
https://serverfault.com/questions/290828
复制相似问题