![有没有办法在 apparmor 本地覆盖文件中覆盖帽子/儿童配置文件?](https://linux22.com/image/1144006/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%9C%A8%20apparmor%20%E6%9C%AC%E5%9C%B0%E8%A6%86%E7%9B%96%E6%96%87%E4%BB%B6%E4%B8%AD%E8%A6%86%E7%9B%96%E5%B8%BD%E5%AD%90%2F%E5%84%BF%E7%AB%A5%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
随 ejabberd 16.04 一起分发的 apparmor 配置文件导致在执行 ejabberdctl 脚本时将审计条目写入系统日志,类似于以下内容。
Dec 28 13:44:09 xxx kernel: [846824.223510] audit: type=1400 audit(1482954249.017:51607): apparmor="DENIED" operation="file_mmap" profile="/usr/sbin/ejabberdctl//su" name="/bin/su" pid=26155 comm="su" requested_mask="m" denied_mask="m" fsuid=0 ouid=0
如果我修改 /etc/apparmor.d/usr.sbin.ejabberdctl 中 apparmor 配置文件内的 su hat:
/bin/su r,
到:
/bin/su rm,
然后重新加载配置文件,脚本不再出现段错误并按预期运行。我不需要修改分布式配置文件,而是想知道是否可以对 /etc/apparmor.d/local/usr.sbin.ejabberdctl 进行此更改。当我在对分布式配置文件进行更改之前尝试此操作时,我收到此错误。
# apparmor_parser -r /etc/apparmor.d/usr.sbin.ejabberdctl
Multiple definitions for hat su in profile (null) exist,bailing out.