AppArmor 如何将配置文件与进程进行匹配?

AppArmor 如何将配置文件与进程进行匹配?

AppArmor 配置文件可以通过哪些方式与进程进行匹配?一个似乎是基于路径的(例如,执行/sbin/dhclient时应用配置文件/sbin/dhclient),但这是由于/sbin/dhclient出现在sbin.dhclient配置文件中还是因为命名方式sbin.dhclient

另外,对于基于非路径的配置文件匹配(例如,对于docker-default配置文件),AppArmor 如何告知将配置文件应用到哪些进程?

答案1

AppArmor 配置文件使用命令的损坏路径作为文件名只是一种约定。从man 7 apparmor:

传统上,配置文件存储在/etc/apparmor.d/文件名下的文件中,惯例是将/路径名中的 in 替换为. (根除外/),以便配置文件更易于管理(例如, /usr/sbin/nscd配置文件将被命名为usr.sbin.nscd)。

如果配置文件名称包含文件 glob,则应用到与该 glob 匹配的文件。从AppArmor 核心策略参考:

AppArmor 使用附件规范来确定配置文件将附加到哪些可执行文件。如果未提供备用配置文件名称,则附件规范也用作配置文件名称;如果未指定附件规范,则必须提供配置文件名称。

配置文件的名称在 AppArmor 中非常重要。它不仅提供用户可以与配置文件规则集关联的名称,而且还用于标记、ipc,并且在名称是附件规范的情况下,它确定配置文件附加到哪些可执行文件。

相关内容