由于AppArmor拦截导致snap程序异常的问题

如果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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值