如何告诉 SELinux 允许 python 脚本执行“所有操作”

如何告诉 SELinux 允许 python 脚本执行“所有操作”

我是 SELinux 的新手,这让我很头疼。我有一个 python 服务,它在我的主目录 (my_script.py) 上运行 python 脚本。我一直在运行该服务,查看 SELinux 阻止了它的哪些方面,并添加了一个新的 SElinux 模块

    allow this access for now by executing:
# ausearch -c 'my_script.py' --raw | audit2allow -M my_script
# semodule -X 300 -i my_script.pp

然而,每次我添加一个新模块时,它都会阻止我的脚本的另一个方面(读取文件、写入文件、然后读取套接字等)。我相信我现在有大约 10 个模块,并且我很难跟踪所有模块其中。我还担心我的脚本可能会做一些 SELinux 不喜欢但在测试过程中没有出现的事情。有没有办法告诉 SELinux,请让 my_script.py 做它想做的事(读、写、重命名等)?我正打算禁用 SELinux,但真的不愿意。谢谢!

答案1

是的你可以。创建您自己的 SELinux 域 ( mypythonapp_t) 并创建该域permissive。带有属于许可标签的文件领域被允许执行所有操作,因此被排除在 SELinux 强制执行之外。您可以宽松地运行您的应用程序,同时系统的其余部分仍然受到 SELinux 的保护。

https://selinuxproject.org/page/PermissiveDomainRecipe,https://danwalsh.livejournal.com/24537.html。有关如何创建自己的策略的优秀指南,请参阅https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_selinux/writing-a-custom-selinux-policy_using-selinux

相关内容