Что Firefox AppArmor ограничивает / разрешает?

Я знаю, что профили AppArmor находятся в /etc/apparmor.d/, но я не знаю, как их интерпретировать. Любой перевод был бы поучительным.

6
задан 27 June 2011 в 22:55

2 ответа

Единственное, что сбивает с толку - это коды, и вы интерпретируете их так:

'r'  read
'w'  write
'm'  memory map as executable
'k'  file locking
'l'  creation hard links
'ix' execute and inherit this profile
'Px' execute under another profile, after cleaning the environment
'Ux' execute unconfined, after cleaning the environment

Остальная часть файла - это, в основном, каталоги, файлы и библиотеки, иногда с некоторыми параметрами (например, PROC и HOME, который кажется простым для понимания), и делает регулярные выражения, чтобы сделать его более гибким, а иногда и «отрицать» или «владельца» перед линией (для меня это самоочевидно: они запрещают доступ и ограничивают действия в случае, если это владелец делает их).

Относительно PROC:

Пример:

# for networking
  network inet stream,
  network inet6 stream,
  @{PROC}/[0-9]*/net/if_inet6 r,
  @{PROC}/[0-9]*/net/ipv6_route r,

и сделать

cd /proc/
ls *

Показать все каталоги с цифрами? Они соответствуют каждому запущенному процессу. Если какой-либо из них содержит каталог net (network) и содержит файл if_net6 или ipv6_route, они считаются read.

0
ответ дан 27 June 2011 в 22:55

См. Access Modes, Rule Qualifiers и #include mechanism в справочной странице ...

man apparmor.d

Справочная страница объясняет это довольно многословно. Что касается вашего вопроса о @{PROC}, то есть переменные, которые могут быть установлены во включаемых файлах. Из справочной страницы apparmor.d (5) ...

Некоторые из абстракций основаны на переменных, которые установлены в файлах в каталоге /etc/apparmor.d/tunables/. Эти переменные в настоящее время @{HOME} и @{HOMEDIRS}. Переменные не могут быть установлены в области видимости профиля; они могут быть установлены только перед профилем. Поэтому любые профили, которые используют абстракции, должны либо #include <tunables/global>, либо иным образом обеспечивать, чтобы @{HOME} и @{HOMEDIRS} были установлены перед началом определения профиля. Утилиты aa-autodep(8) и aa-genprof(8) автоматически генерируют #include <tunables/global> в сгенерированных профилях.

Если вы посмотрите в /etc/apparmor.d/tunables/global, вы увидите, что есть еще один #include <tunables/proc>. Содержимое этого файла ...

# Copyright (C) 2006 Novell/SUSE... GNU GPLv2... more license info...
# @{PROC} is the location where procfs is mounted.
@{PROC}=/proc/

Итак, @{PROC} - это просто абстрактная переменная, указывающая на файловую систему proc (5) .

0
ответ дан 27 June 2011 в 22:55

Другие вопросы по тегам:

Похожие вопросы: