如果dmesg可以看到如下的审计信息, 则说明是AppArmor拦截的snap应用, 关键信息apparmor="DENIED"
audit: type=1400 audit(1431384420.408:319): apparmor="DENIED" operation="mkdir" profile="snap.foo.bar" name="/var/lib/foo" pid=637 comm="bar" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
修改apparmor的配置文件放过拒绝的文件即可name="/var/lib/foo"
, 这里即是被拒绝的文件
需要注意的是, snap
应用和普通程序(例如apt
安装的程序)的配置文件路径不同
snap应用的apparmor
配置文件在/var/lib/snapd/apparmor/profiles/
目录
普通程序的apparmor
配置文件在/etc/apparmor.d/
目录
配置文件的名称一般是可执行程序的全路径, 把/
替换成了.
修改配置文件, 找到类似/usr/bin/xxx {
开头的地方, 在{
后添加规则
/var/lib/foo rw,
使用apparmor_parser
命令, 重新加载配置文件即可
sudo apparmor_parser -r 配置文件路径
apparmor
的配置文件还是挺复杂的, 详细配置见参考资料
参考资料
配置文件组件和语法
Debugging snaps
apparmor_parser - loads AppArmor profiles into the kernel
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/8121.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏微信支付宝扫一扫,打赏作者吧~
休息一下~~