config: path "/var/lib/spamassassin/4.000000" is inaccessible: Permission denied

Chris741

New Member
This happens when spamd.service is restarted. I recently upgraded my server from Debian Bullseye to Bookworm.

These are entries in my /etc/group:
spamass-milter:x:119:
debian-spamd:x:120:spamass-milter,amavis
amavis:x:121:vmail,clamav
clamav:x:122:

The directory is owned by debian-spamd. On the command line I can access that directory as user debian-spamd and amavis.
What may be wrong?
 
Mir fällt da auf, dass das Verzeichnis /var/lib/spamassassin/3.004002 gesetzt ist mit drwxr-xr-x für Verzeichnisse und drwxr-xr-- für Dateien.

Hingegen ist das Verzeichnis /var/lib/spamassassin/4.000000 gesetzt mit drwxr-x--- für Verzeichnisse und Dateien. Also andere Nutzer als der Benutzer "debian-spamd" und Gruppenmitglieder der Gruppe "debian-spamd" dürfen weder das Verzeichnis betreten noch Dateien dort lesen.

D. h. wenn der User des Dienstes doch nicht debian-spamd ist, dann darf der da gar nichts lesen und es würde die Meldung erklären.

D. h. Du könntest mal chmod o+rx für Verzeichnisse im 4.000000 setzen und o+r für Dateien. (Tip: find VERZEICHNIS -type d bzw. -type f ...... -exec chmod .... )
 
Last edited:
Mir fällt da auf, dass das Verzeichnis /var/lib/spamassassin/3.004002 gesetzt ist mit drwxr-xr-x für Verzeichnisse und drwxr-xr-- für Dateien.

Hingegen ist das Verzeichnis /var/lib/spamassassin/4.000000 gesetzt mit drwxr-x--- für Verzeichnisse und Dateien. Also andere Nutzer als der Benutzer "debian-spamd" und Gruppenmitglieder der Gruppe "debian-spamd" dürfen weder das Verzeichnis betreten noch Dateien dort lesen.

D. h. wenn der User des Dienstes doch nicht debian-spamd ist, dann darf der da gar nichts lesen und es würde die Meldung erklären.

D. h. Du könntest mal chmod o+rx für Verzeichnisse im 4.000000 setzen und o+r für Dateien. (Tip: find VERZEICHNIS -type d bzw. -type f ...... -exec chmod .... )
Ich hatte schon mal die Rechte auf 777 gesetzt. Brachte keinen Unterschied.
 
Ich würde hier jetzt mal auf die Suche gehen, wo das genaue Startkommando des Programmes ist, das diesen Fehler wirft. Anschließend würde ich das versuchen manuell aufzurufen, als der User, in dem gleichen Verzeichnis, mit dem es auch in dem Script bzw. in dem Unit-File definiert ist. So würde ich versuchen die Fehlermeldung zu reproduzieren.

Falls das noch keine Erkenntnisse gibt, würde ich das ermittelte Kommando mal mit strace starten (strace -o /tmp/debug.strace DAS_KOMMANDO) und mir dann die Ausgabe anschauen. Viele Fehlercodes, nach denen man im strace-Output schauen kann, beginnen mit "ENO". Also z. B. in der strace-Ausgabedatei nach ENO greppen.
 
Ich würde hier jetzt mal auf die Suche gehen, wo das genaue Startkommando des Programmes ist, das diesen Fehler wirft. Anschließend würde ich das versuchen manuell aufzurufen, als der User, in dem gleichen Verzeichnis, mit dem es auch in dem Script bzw. in dem Unit-File definiert ist. So würde ich versuchen die Fehlermeldung zu reproduzieren.

Falls das noch keine Erkenntnisse gibt, würde ich das ermittelte Kommando mal mit strace starten (strace -o /tmp/debug.strace DAS_KOMMANDO) und mir dann die Ausgabe anschauen. Viele Fehlercodes, nach denen man im strace-Output schauen kann, beginnen mit "ENO". Also z. B. in der strace-Ausgabedatei nach ENO greppen.
Das Programm wird über systemd gestartet. In spamd.service sind die Einträge:
EnvironmentFile=-/etc/default/spamd
ExecStart=/usr/sbin/spamd --pidfile=/run/spamd.pid $OPTIONS

Wenn ich das Kommando starte:
sudo /usr/sbin/spamd --pidfile=/run/spamd.pid --create-prefs --max-children 5 --helper-home-dir

also als root, erhalte ich ebenfalls die Fehlermeldungen. Direkt als root kann ich das Verzeichnis aber lesen.
Ich werde es jetzt mit strace versuchen.
 
Zeig' doch mal das Unit-File (Das von Dir Gezeigte, ist doch nicht das ganze Unit-File, oder?) und den Inhalt der Datei /etc/default/spamd.

Im Übrigen sind Befehle und Inhalte von Textdateien deutlich besser lesbar, wenn Sie in Code-Tags gesetzt werden:

[‍code]
EnvironmentFile=-/etc/default/spamd
ExecStart=/usr/sbin/spamd --pidfile=/run/spamd.pid $OPTIONS
[‍/code]

Sieht dann so aus:
Code:
EnvironmentFile=-/etc/default/spamd
ExecStart=/usr/sbin/spamd --pidfile=/run/spamd.pid $OPTIONS

Man kann auch einfach das Icon verwenden. In der Icon-Leiste beim editieren des Beitrages das Icon mit den drei übereinanderliegenden Punkten und darunter das </> Symbol.
 
Last edited:
spamd.service:
Code:
[Unit]
Description=Perl-based spam filter using text analysis
After=syslog.target network-online.target

[Service]
Type=simple
PIDFile=/run/spamd.pid
EnvironmentFile=-/etc/default/spamd
ExecStart=/usr/sbin/spamd --pidfile=/run/spamd.pid $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=null
StandardError=null
Restart=always

ProtectSystem=full
PrivateTmp=true
PrivateDevices=true
ProtectHostname=true
ProtectClock=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
RestrictNamespaces=true
LockPersonality=true
RestrictRealtime=true
RestrictSUIDSGID=true

[Install]
WantedBy=multi-user.target


Code:
# /etc/default/spamd
# Duncan Findlay

# WARNING: please read README.spamd before using.
# There may be security risks.

# Options
# See man spamd for possible options. The -d option is automatically added.

# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.

OPTIONS="--create-prefs --max-children 5 --helper-home-dir"

# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Note that this setting is not used when spamd is managed by systemd
PIDFILE="/run/spamd.pid"

# Set nice level of spamd
#NICE="--nicelevel 15"
 
Woran lag es denn?
Ich vermute, diese Zeile:
Code:
OPTIONS="--create-prefs --max-children=5 --helper-home-dir=/var/lib/spamassassin --username=debian-spamd --listen=* --allowed-ips=10.0.0.0/8 --syslog=/var/log/spamassassin/spamd.log"

in /etc/default/spamassassin
 
Back
Top