Cara memperbaiki amvavis yang melaporkan "izin ditolak" untuk clamav

12

Baru-baru ini saya melihat ada niggle yang membuat frustrasi ... Saat memproses email, Server Ubuntu (dengan semua pembaruan diterapkan) melaporkan "Izin ditolak" ketika mencoba memindai lampiran virus.

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

Ketika saya melihat direktori yang dimaksud, saya melihat ini:

$ 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

Saya memastikan pengguna clamd adalah anggota grup amavisd - tetapi ini tidak memperbaiki apa pun. Adakah yang bisa memberitahu saya, secara khusus, komponen mana yang menginginkan izin apa - dan ... idealnya ... apa yang harus dilakukan untuk memperbaikinya?

Klarifikasi : Saya tidak mencari penjelasan tentang dasar-dasar izin. Saya mencari solusi yang tepat untuk masalah khusus ini - yang, sekilas, setidaknya, terlihat seperti komponen suite amavis (mungkin clamd) menggunakan nilai umask yang salah. Tentu saja, kesalahan ini mungkin muncul sebagai akibat dari sejumlah bug atau gangguan konfigurasi. Saya mencari, secara khusus, untuk resolusi yang paling tepat untuk kasus ini ... di mana instalasi 'vanilla' amavis / clamav gagal mengakses konten folder sementara yang dibuatnya ketika diperlukan untuk memindai email masuk.

Saya sadar ini sama (non-Ubuntu) pertanyaan. Jawaban Redhat / Centos tidak memecahkan masalah yang saya alami dengan Ubuntu.

Masalah ini ditemukan pada "Ubuntu 14.04.2 LTS" - tidak ada pembaruan yang tertunda.

aSteve
sumber
Grup amavistidak memiliki izin menulis untuk /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/dan/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts
AB
Coba inichmod -R g+w /var/lib/amavis/tmp
AB
Masalahnya bukan bahwa saya tidak dapat mengubah izin untuk mengizinkan grup menulis di direktori ... Masalahnya adalah saya tidak tahu bagaimana memastikan bahwa direktori yang dibuat di bawah / var / lib / amavis / tmp / - in masa depan - buatlah dengan izin yang benar. Direktori ini tampaknya menjadi tempat amavis memperluas pesan untuk memeriksa lampiran. Default digunakan untuk bekerja ... sekarang, setelah beberapa pembaruan, tidak.
aSteve
Kemudian kerjakan pertanyaan Anda.
AB

Jawaban:

13

Solusi yang berfungsi adalah berubah

AllowSupplementaryGroups false -> true

di /etc/clamav/clamd.conf

restart clamav-daemon

perang
sumber
2
Inilah yang memecahkannya untuk saya (saya menggunakan Debian Jessie). Menambahkan clamav ke grup amavis tidak menyelesaikannya.
chmike
2
The AllowSupplementaryGroupspilihan telah dijatuhkan dalam versi terbaru dari clamav (0.99.2+, Jun 2, 2016 di hulu).
Daniel Vérité
1
+1 Ini berfungsi. Jawaban yang disetujui di bawah ini TIDAK. Jika Anda mengikuti halaman wiki Ubuntu AmavisNew (mudah-mudahan), Anda sudah menambahkan amavis / clamav sebagai grup tambahan satu sama lain. Jawaban yang disetujui tidak melakukan apa pun kecuali mengulangi ini - dan tidak berhasil. Saya menjalankan pkg default pada 16.04.1 LTS. ref: help.ubuntu.com/community/PostfixAmavisNew
bshea
Dikonfirmasi: masalah tetap bagi saya, juga, Ubuntu LTS 16.04.1
6

Sementara clamdpengguna adalah anggota amavisgrup, clamdproses berjalan sebagai pengguna clamav(bukan clamd).

Menambahkan clamavke amavisgrup memecahkan masalah.

aSteve
sumber
2

Karena AllowSupplementaryGroupstidak ada lagi, saya mengakhiri dengan menambahkan setiap pengguna ke grup lain, seperti ini:

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

(dan restart semuanya hanya untuk memastikan)

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

Dengan ini, tidak perlu mengubah izin folder pada /var/lib/amavis/tmp(dan saya tidak yakin izin tersebut akan dibiarkan seperti pada upgrade apt-get berikutnya ...)

Terburuk
sumber
Pkg default pada 16.04.1 memiliki arahan AllowSupplementaryGroupsdalam konfigurasi utama. Anda memposting informasi yang menyesatkan. Jika arahan tidak ada dalam versi yang lebih baru - lalu mengapa menambahkan grup tambahan ke setiap akun berfungsi untuk Anda? ITU MASIH DI KONFIG pada 16.04.1 karena tidak digunakan lagi? Hmm. Tunjukkan bukti. BTW mengganti 'BENAR' ini membuat semuanya berfungsi pada 16.04.1. ref: help.ubuntu.com/community/PostfixAmavisNew#Troubleshooting
bshea
Ini tidak benar bahwa AllowSupplementaryGroups tidak ada. Dan terlebih lagi Anda harus mengaturnya agar benar-benar membuatnya bekerja.
user3021729
Grep dari sumber ver 0.99.2 clamd / clamd.c- if (optget (opts, "AllowSupplementaryGroups") -> diaktifkan) {clamd / clamd.c- # ifdef HAVE_INITGROUPS clamd / clamd.c: if (initgroups (opt->> strarg, user-> pw_gid)) {clamd / clamd.c: fprintf (stderr, "ERROR: initgroups () gagal. \ n"); clamd / clamd.c- optfree (opts); clamd / clamd.c- return 1; clamd / clamd.c-} clamd / clamd.c- # else
Ding-Yi Chen
0

Saya mencari-cari dan tidak menemukan informasi apa pun yang saya lakukan. Pertama-tama saya melepas drive yang dimaksud kemudian memasang kembali drive tersebut.

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

Sudahkah Anda mencoba memasukkan ini di terminal:

       sudo -i
       gksu thunar

dan jika thunar tidak diinstal masukkan ini di terminal:

        sudo apt-get install thunar 

dan membuat izin membaca dan menulis untuk direktori:

       /var/lib/amavis

dan ini sedikit pun, dan mungkin akan bekerja dengan baik dengan cara ini.

Michael
sumber
4
Thunar untuk mengatur izin? OH TUHAN.
AB
2
Dan kemudian di server?
AB
Mishael, Anda dapat menggunakan ini untuk mengubah izin ketika Anda memiliki GUI (gtk2 + xfce) sudah diinstal seperti edisi desktop Ubuntu. OP di sini menyebutkan penggunaan Ubuntu Server. Itu berarti Tidak Ada GUI yang diinstal dan Anda harus menggunakan CLI / command line sebagai gantinya. eq: sudo chmod -R +rw /var/lib/amavis(-R untuk rekursif)
user.dz
Coba ulimet -i ini tanpa batas, dan mungkin akan bekerja dengan baik dengan cara ini.
Michael