Назад | Перейти на главную страницу

Плагины Munin-node в Debian 10 не могут читать из домашних каталогов. Debian 9 отлично работает

Я использую полностью установленную по умолчанию версию Debian Buster. Я установил munin-node, который сообщает о себе как версию 2.0.49.

У меня есть собственный плагин /etc/munin/plugins. Это сценарий оболочки, который просто выводит значение из файла в домашний каталог пользователя: /home/peter/value.txt.

Я могу netcat localhost 4949 для взаимодействия с узлом munin.

Если я выпущу list команда, затем мой плагин является включен вместе со всеми значениями по умолчанию, поэтому munin-node распознает, что плагин существует и является исполняемым, и т. д. Но когда я пытаюсь запустить плагин, выдавая fetch , я получаю ошибку отказа в разрешении, когда плагин пытается открыть файл в домашнем каталоге пользователя. Чтобы повторить; плагин сам выполняется, но не может прочитать файл в домашнем каталоге.

Некоторые факты:

Я считаю, что есть что-то в том, как служба запускается Debian /etc/init.d/munin-node скрипты, вызывающие это. Возможно AppArmour?

Ответ заключается в том, что пакет munin-node в Debian 10 включает /lib/systemd/system/munin-node.service, который устанавливает ProtectHome=true. В пакете munin-node Debian 9 нет этого файла.

Настройка ProtectHome=read-only это одно решение, или даже ProtectHome=false чтобы включить доступ для записи. Однако ProtectHome флаг существует не зря. Настройка плагина для чтения данных из другого места (за пределами /home) возможно лучшее решение.

Видеть Вот для обсуждения проблемы, а также компромисса между безопасностью и удобством.