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 *

查看所有带数字的目录? 这些对应于每个运行过程。 如果它们中的任何一个包含目录netnetwork )并且包含文件if_net6ipv6_route ,则认为它们被read

请参见手册页中的Access ModesRule 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)文件系统的抽象变量。