Обновление с Debian 10 до Debian 11 пошло не так

Обновление с Debian 10 до Debian 11 пошло не так

Я только что обновился с 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. Оба решения должны работать, ожидая окончательного исправления.

С уважением

Связанный контент