Отказ записан в журнал ядра. Строка apparmor="DENIED" называет профиль, действие и путь (все поля):
profile — чей это профиль, operation и requested_mask — что программа пыталась сделать (r — прочитать, w — записать), name — к какому пути. Отсюда видно, какой путь добавить в профиль.
Сам профиль пакета не трогают — его перепишет обновление. Нужные пути дописывают в /etc/apparmor.d/local/<имя профиля>: этот файл профиль подключает строкой include if exists <local/...>, и обновление его не трогает. Строка правила — путь и права:
r — чтение, w — запись, /srv/docs/** — все файлы под каталогом. Сам каталог — список его файлов — правило ** не открывает: для него нужна своя строка /srv/docs/ r, (в Вики). apparmor_parser -r перечитывает профиль, и правило действует сразу, в том числе для работающего процесса. Добавляют ровно нужные пути: всё остальное профиль должен держать закрытым.
Верни службе её журнал
Служба lab-docs отдаёт страницы, но не может записать журнал запросов /var/log/docsrv/access.log: профиль разрешает другой путь. Добавь нужный путь на запись в /etc/apparmor.d/local/usr.local.bin.docsrv и перечитай профиль, оставив его в enforce. После этого запрос к службе должен появляться в access.log.
Цели · 0 из 2
- Разрешить профилю запись в access.log ещё не выполнена
- Оставить профиль в enforce ещё не выполнена