Документацию по любой директиве systemd можно найти в man system.directives
. Оттуда я обнаружил, что CapabilityBoundingSet=
документирован в man systemd.exec
.
Это привело меня к man 7 capabilities
, где документированы различные возможности. Найдя там слово "модуль", я нашел следующее, что похоже на нужную вам возможность:
CAP_SYS_MODULE Загружать и выгружать модули ядра
Непонятно, почему эта возможность не включена по умолчанию. Возможно, обычные случаи использования OpenVPN не нуждаются в ней.
Минимальный способ добавить эту возможность в конфигурацию systemd пакета - это "drop-in unit". Создайте этот файл:
/etc/systemd/system/openvpn@.service.d/add-module-loading.conf
С таким содержимым:
[Service]
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_READ_SEARCH CAP_AUDIT_WRITE CAP_SYS_MODULE
Это расширит сервис с существующими возможностями плюс CAP_SYS_MODULE
.
Я также сомневался насчет systemd
, но мне многое понравилось. Система timer
- долгожданное обновление системы cron 20-летней давности.