Я только что обновился с Debian 10 до Debian 11 с помощьюэти инструкции. Кажется, все прошло гладко, за исключением maldet, который дает сбой.
Вот ошибка:
maldet[2117]: maldet(2117): {mon} kernel does not support inotify(), aborting
systemd[1]: maldet.service: Can't open PID file /usr/local/maldetect/tmp/inotifywait.pid (yet?) after start: Operation not permitted
systemd[1]: maldet.service: Failed with result 'protocol'.
systemd[1]: Failed to start Linux Malware Detect monitoring - maldet.
Мой файл /usr/lib/systemd/system/maldet.service содержит:
[Unit]
Description=Linux Malware Detect monitoring - maldet
After=network.target
[Service]
EnvironmentFile=/usr/local/maldetect/conf.maldet
ExecStart=/usr/local/maldetect/maldet --monitor USERS
ExecStop=/usr/local/maldetect/maldet --kill-monitor
Type=forking
PIDFile=/usr/local/maldetect/tmp/inotifywait.pid
[Install]
WantedBy=multi-user.target
Перед обновлением я убедился, что все службы работают правильно, и во время обновления выбрал «N» (нет), отказавшись от замены моих пользовательских файлов конфигурации... так что ничего не должно было измениться.
Также я использую Linux 5.10.0-8-amd64 и maldet 1.6.4
Может ли кто-нибудь помочь мне разобраться? Спасибо.
решение1
Проблема заключается в состоянии в файле/usr/local/maldetect/внутренние функции:
if [ -f "/boot/System.map-$(uname -r)" ]; then
ksup=`grep -i inotify_ /boot/System.map-$(uname -r)`
if [ -z "$ksup" ]; then
eout "{mon} kernel does not support inotify(), aborting." 1
exit
fi
elif [ -f "/boot/config-$(uname -r)" ]; then
ksup=`grep -m1 CONFIG_INOTIFY /boot/config-$(uname -r)`
if [ -z "$ksup" ]; then
eout "{mon} kernel does not support inotify(), aborting." 1
exit
fi
fi
Он выполняет grep для файла./boot/System.map-$(uname -r)но в Debian 11 содержимоеffffffffffffffff B The real System.map is in the linux-image-<version>-dbg package
Я вижу два быстрых решения. Первое — проверить нужный файл:
- Установите пакет dbg для работающего ядра с помощью этой команды
apt install linux-image-$(uname -r)-dbg
- Замените путь к файлу условия, чтобы он указывал на правильный вариант
sed -i 's#/boot/System.map#/lib/debug/boot/System.map#' /usr/local/maldetect/internals/functions
Чтобы избежать установки пакета dbg, другим решением является удаление первого условия и использование только второго, которое проверяется в /boot/config-$(uname -r)
.
Я использовал первый для тестирования, сейчас запускается Maldetect. Оба решения должны работать, ожидая окончательного исправления.
С уважением