Wie man das Problem behebt, dass amvavis für clamav die Meldung "Berechtigung verweigert" gibt

12

Ich habe kürzlich ein frustrierendes Problem bemerkt ... Während der Verarbeitung von E-Mails meldet ein Ubuntu-Server (mit allen angewendeten Updates) "Berechtigung verweigert", wenn er versucht, Anhänge einer Virensuche zu unterziehen.

Apr  2 14:05:20 svr amavis[6376]: (06376-01) (!)run_av (ClamAV-clamd) FAILED - unexpected , output="/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts: lstat() failed: Permission denied. ERROR\n"
Apr  2 14:05:20 svr amavis[6376]: (06376-01) (!)ClamAV-clamd av-scanner FAILED: CODE(0x30cf250) unexpected , output="/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts: lstat() failed: Permission denied. ERROR\n" at (eval 136) line 899.
Apr  2 14:05:20 svr amavis[6376]: (06376-01) (!)WARN: all primary virus scanners failed, considering backups

Wenn ich mir die fraglichen Verzeichnisse ansehe, sehe ich Folgendes:

$ ls -ld /var/lib/amavis/tmp
drwxrwx--- 4 amavis amavis 4096 Apr  2 14:16 /var/lib/amavis/tmp
$ ls -ld /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/
drwxr-x--- 3 amavis amavis 4096 Apr  2 14:05 /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/
$ ls -ld /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts                                                                                                                                                                           
drwxr-x--- 2 amavis amavis 4096 Apr  2 14:16 /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts

Ich habe sichergestellt, dass der clamd-Benutzer Mitglied der amavisd-Gruppe ist - aber das hat nichts geändert. Kann mir jemand genau sagen, welche Komponente welche Berechtigungen benötigt - und ... im Idealfall ... was zu tun ist, um dies zu beheben?

Klarstellung : Ich suche keine Erläuterungen zu den Grundlagen von Berechtigungen. Ich suche nach einer Lösung für dieses spezielle Problem - die zumindest auf den ersten Blick so aussieht, als ob eine Komponente der amavis-Suite (vielleicht clamd) den falschen umask-Wert verwendet. Natürlich kann dieser Fehler auf eine Reihe von Fehlern oder Konfigurationsfehlern zurückzuführen sein. Ich suche speziell nach der am besten geeigneten Lösung für diesen Fall ... wenn eine 'Vanille'-Amavis / Clamav-Installation nicht auf den Inhalt temporärer Ordner zugreifen kann, die sie erstellt, wenn / wenn sie zum Scannen eingehender E-Mails benötigt wird.

Mir ist diese ähnliche (nicht-Ubuntu) Frage bekannt. Die Antwort von Redhat / Centos löst nicht das Problem, das ich mit Ubuntu habe.

Dieses Problem tritt unter "Ubuntu 14.04.2 LTS" auf - es sind keine ausstehenden Updates vorhanden.

aSteve
quelle
Die Gruppe amavishat keine Schreibrechte für /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/und/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts
AB
Versuchen Sie dieschmod -R g+w /var/lib/amavis/tmp
AB
Das Problem ist nicht, dass ich die Berechtigungen zum Erlauben des Schreibens von Gruppen in den Verzeichnissen nicht ändern kann future - mit den richtigen Berechtigungen erstellt werden. In diesem Verzeichnis erweitert amavis die Nachrichten, um Anhänge zu überprüfen. Die Standardeinstellungen funktionierten früher ... jetzt, nach einigen Updates, nicht mehr.
2.
Dann arbeiten Sie an Ihrer Frage.
AB

Antworten:

13

Eine funktionierende Lösung ist zu ändern

AllowSupplementaryGroups false -> true

in /etc/clamav/clamd.conf

Starten Sie den clamav-daemon neu

Krieg
quelle
2
Das hat es für mich gelöst (ich bin auf Debian Jessie). Das Hinzufügen von Clamav zur Amavis-Gruppe löste das Problem nicht.
Chmike
2
Die AllowSupplementaryGroupsOption wurde in den letzten Versionen von clamav (ab Version 0.99.2, 2. Juni 2016 in der Originalversion) gestrichen.
Daniel Vérité
1
+1 Das hat funktioniert. Die genehmigte Antwort unten ist NICHT. Wenn Sie der Ubuntu AmavisNew-Wiki-Seite gefolgt wären (hoffentlich), hätten Sie amavis / clamav bereits als ergänzende Gruppen hinzugefügt. Genehmigte Antwort macht nichts anderes, als dies zu wiederholen - und funktioniert nicht. Ich verwende Standard-pkgs am 16.04.1 LTS. ref: help.ubuntu.com/community/PostfixAmavisNew
bshea
Bestätigt: Problem auch für mich behoben, Ubuntu LTS 16.04.1
6

Während der clamdBenutzer Mitglied der amavisGruppe war, wurde der clamdProzess als clamav(nicht clamd) Benutzer ausgeführt.

Das Hinzufügen clamavzur amavisGruppe löste das Problem.

aSteve
quelle
2

Da es AllowSupplementaryGroupsdas nicht mehr gibt, habe ich zum Schluss jeden Benutzer der anderen Gruppe hinzugefügt:

usermod -a -G clamav amavis
usermod -a -G amavis clamav

(und alles neu starten, nur um sicher zu gehen)

/etc/init.d/clamav-daemon restart
/etc/init.d/amavis restart
/etc/init.d/postfix restart

In diesem /var/lib/amavis/tmpFall müssen Sie die Ordnerberechtigung nicht mehr ändern (und ich bin mir nicht sicher, ob diese Berechtigungen beim nächsten Upgrade von apt-get unverändert bleiben ...).

Am schlimmsten
quelle
Das voreingestellte Paket am 16.04.1 hat die Direktive AllowSupplementaryGroupsin der Hauptkonfiguration. Sie veröffentlichen irreführende Informationen. Wenn die Direktive in neueren Versionen nicht vorhanden ist - warum funktioniert das Hinzufügen der zusätzlichen Gruppen zu jedem Konto für Sie? ES IST NOCH IN DER KONFIGURATION am 16.04.1, weil es nicht mehr benutzt wird? Hmm. Zeig mir den Beweis. Übrigens hat das Umschalten von 'TRUE' dazu geführt, dass am 16.04.1 alles funktioniert hat. ref: help.ubuntu.com/community/PostfixAmavisNew#Troubleshooter
bshea
Dies ist nicht der Fall, wenn AllowSupplementaryGroups nicht vorhanden ist. Und außerdem muss es auf true gesetzt werden, damit es tatsächlich funktioniert.
user3021729
Grep from source ver 0.99.2 clamd / clamd.c- if (optget (optts, "AllowSupplementaryGroups") -> enabled) {clamd / clamd.c- # ifdef HAVE_INITGROUPS clamd / clamd.c: if (initgroups (opt-> strarg, user-> pw_gid)) {clamd / clamd.c: fprintf (stderr, "FEHLER: initgroups () fehlgeschlagen. \ n"); clamd / clamd.c-optfree (opts); clamd / clamd.c - return 1; clamd / clamd.c-} clamd / clamd.c- # else
Ding-Yi Chen
0

Ich habe mich umgesehen und keine Informationen darüber gefunden, was ich getan habe. Zuerst habe ich das betreffende Laufwerk abgemeldet und dann das Laufwerk erneut gemountet.

ls -l /dev
sudo umount /dev/sdd4
sudo mkdir /mnt
sudo mount /dev/sdd4 /mnt
Klint Krossa
quelle
-5

Haben Sie versucht, dies im Terminal einzugeben:

       sudo -i
       gksu thunar

und wenn thunar nicht installiert ist, geben Sie dies im Terminal ein:

        sudo apt-get install thunar 

und schreibe die Erlaubnis für das Verzeichnis:

       /var/lib/amavis

und dies ist Whit Thunar, und es könnte gut funktionieren auf diese Weise.

Michael
quelle
4
Thunar Berechtigungen festlegen? OH MEIN GOTT.
AB
2
Und dann auf einem Server?
AB
Mishael, Sie können dies verwenden, um die Berechtigung zu ändern, wenn Sie die GUI (gtk2 + xfce) bereits wie Ubuntu Desktop Edition installiert haben. Das OP erwähnte hier die Verwendung von Ubuntu Server. Das bedeutet, dass keine GUI installiert ist und Sie stattdessen die CLI / Befehlszeile verwenden müssen. eq: sudo chmod -R +rw /var/lib/amavis(-R für rekursiv)
user.dz
Versuchen Sie dieses ulimet -i unbegrenzt, und es könnte auf diese Weise gut funktionieren.
Michael