私は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
2 つの簡単な解決策があります。1 つ目は適切なファイルを確認することです。
- このコマンドで実行中のカーネルの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 パッケージのインストールを回避するための他の解決策は、最初の条件を削除し、 にチェックインする 2 番目の条件のみを使用することです/boot/config-$(uname -r)
。
最初の方法を使用してテストしたところ、Maldetect が現在起動しています。最終的な修正を待つ間、どちらの解決策も機能するはずです。
よろしく