我正在运行带有 apparmor 2.10.95-0ubuntu2.7 的 Ubuntu 16.04。我经常需要评论质量可疑的软件。我想使用 apparmor 来保护我的系统免受伤害。
我创建了一个 apparmor 通配符配置文件,如下所示:
/home/username/testing/** {
somerules
}
不幸的是,此配置文件无效。只要我输入没有通配符的确切路径,它就会按预期工作:
/home/username/testing/client42/executable {
somerules
}
在手册页上,配置文件似乎支持通配符:
PROFILE = ( PROFILE HEAD ) [ ATTACHMENT SPECIFICATION ] [ PROFILE FLAG CONDS ] '{' ( RULES )* '}'
PROFILE HEAD = [ 'profile' ] FILEGLOB | 'profile' PROFILE NAME
这篇 wiki 文章也这么说。甚至还有用户报告成功。
我错过了什么?
配置文件中的通配符是否需要在配置文件中显式启用?
在 Ubuntu 构建中是否禁用了通配符?
今天解决了这个问题,我发现通配符配置文件在重新启动后按预期工作。看起来将配置文件设置为强制模式
aa-enforce /etc/apparmor.d/<profile>
或重新加载配置文件,如此处和此处apparmor_parser -r /etc/apparmor.d/<profile>
描述的对于通配符配置文件来说是不够的。我不确定通过重新加载服务是否足以激活通配符配置文件,但系统重启肯定是。systemctl reload apparmor