Apparmor
AppArmor 如何將配置文件與程序匹配?
AppArmor 配置文件可以與流程匹配的所有方式有哪些?一個似乎是基於路徑的(例如,
/sbin/dhclient
配置文件在/sbin/dhclient
執行時應用)但這是由於/sbin/dhclient
出現在sbin.dhclient
配置文件中還是因為sbin.dhclient
命名方式?此外,對於非基於路徑的配置文件匹配(例如
docker-default
配置文件),AppArmor 如何告知將配置文件應用到哪些程序?
AppArmor 配置文件使用文件名的命令的錯位路徑只是一個約定。來自
man 7 apparmor
:配置文件傳統上儲存在文件
/etc/apparmor.d/
名下的文件中,約定將/
in 路徑名替換為.
(除了 root/
),因此配置文件更易於管理(例如,/usr/sbin/nscd
配置文件將命名為usr.sbin.nscd
)。如果配置文件名稱包含文件 glob,則適用於與該 glob 匹配的文件。來自AppArmor 核心策略參考:
AppArmor 使用附件規範來確定配置文件將附加到哪些執行檔。如果未提供備用配置文件名稱,則附件規範也用作配置文件名稱,如果未指定附件規範,則必須提供配置文件名稱。
配置文件的名稱在 AppArmor 中非常重要。它不僅提供使用者可以關聯到配置文件規則集的名稱,而且還用於標記、ipc,並且在名稱是附件規範的情況下,它確定配置文件附加到哪些執行檔。