我试图让一个应用程序使用管理单元,并遇到了一些有关AppArmor权限的问题。看来,为了使我的应用程序能够充分发挥功能,它需要一些自定义的AppArmor规则,而这些规则不是由任何现有接口提供的。
我能够通过在/var/lib/ AppArmor /apparmor/ profile /下进行快速安装之后手动向应用程序的配置文件中添加其他规则来工作,如下所示:
/sys/devices/** r,
/sys/class/net/eth0/address r,
/dev/sda1 r,
capability sys_rawio,是否有一种方法可以让Snap在安装时自动配置这些脚本,还是需要维护自定义的后安装脚本才能进行这些更改?
此页的底部显示了yaml语法,这表明它可能是可能的:
services:
- name: bar # uses 'default' template with 'network-client' cap
- name: baz # uses 'default' template with specified caps
caps:
- network-client
- norf-framework_client
- name: qux # uses 'nondefault' template with no caps
security-template: nondefault
- name: quux
security-policy: # uses custom security policy as defined by relative paths
apparmor: meta/quux.aa
seccomp: meta/quux.sc但这指的是Ubuntu15.10(我使用的是16.04),它似乎使用了目前不受管理单元支持的语法(例如“服务”而不是“应用程序”)。谢谢你能提供的任何帮助。
发布于 2016-07-10 11:51:04
在16.04中,使用在管理单元代码中定义的“接口”来实现这一点,该接口是由您的快照定义中的自定义模式驱动的。有一堆已经定义好了,看起来您需要的是:
你不太可能得到一个毯子/sys/设备/*登陆,但我怀疑你实际上需要特定类型的访问特定类型的设备,这些都可以设计和降落。
解决您需要的最好的地方是在freenode IRC上的#snappy中,与zyga聊天以获得描述现有接口的代码的指针。应该是个简单的补丁。
https://askubuntu.com/questions/796809
复制相似问题