Firefox AppArmor限制/允许什么?
我知道AppArmor配置文件位于/etc/apparmor.d/
,但我不知道如何解释它。 任何翻译都会有启发性。
唯一令人困惑的是代码,你的解释如下:
'r'读 '写' '''内存映射为可执行文件 'k'文件锁定 'l'创建硬链接 'ix'执行并inheritance此配置文件 在清理环境后,'Px'在另一个配置文件下执行 清理环境后,'Ux'执行无限制
文件的其余部分主要是目录,文件和库,有时候前面有一些参数(比如PROC和HOME,看起来很容易理解)和正则表达式,使它更灵活,有时在前面的’拒绝’或’所有者’ line(这些似乎对我来说是不言自明的:他们拒绝访问并限制操作,以防它是所有者执行它们)。
关于PROC:
例:
#用于网络 网络inet流, 网络inet6流, @ {PROC} / [0-9] * / net / if_inet6 r, @ {PROC} / [0-9] * / net / ipv6_route r,
并做
cd / proc / ls *
查看所有带数字的目录? 这些对应于每个运行过程。 如果它们中的任何一个包含目录net
( network
)并且包含文件if_net6
或ipv6_route
,则认为它们被read
。
请参见手册页中的Access Modes
, Rule Qualifiers
和#include mechanism
…
man apparmor.d
该手册页非常详细地解释了它。 关于@{PROC}
问题,可以在包含文件中设置变量。 从apparmor.d(5)手册页…
一些抽象依赖于
/etc/apparmor.d/tunables/
目录中的文件中设置的变量。 这些变量目前是@{HOME}
和@{HOMEDIRS}
。 无法在配置文件范围中设置变量; 它们只能在配置文件之前设置。 因此,任何使用抽象的配置文件都应该#include
或者确保在启动配置文件定义之前设置@{HOME}
和@{HOMEDIRS}
。aa-autodep(8)
和aa-genprof(8)
实用程序将在生成的配置文件中自动发出#include
。
如果你查看/etc/apparmor.d/tunables/global
你会看到另一个#include
。 该文件的内容是….
# Copyright (C) 2006 Novell/SUSE... GNU GPLv2... more license info... # @{PROC} is the location where procfs is mounted. @{PROC}=/proc/
所以@{PROC}
只是一个指向proc(5)文件系统的抽象变量。