Как исправить сообщение amvavis «в доступе отказано» для clamav


12

Недавно я заметил расстраивающий нюх ... При обработке электронной почты сервер Ubuntu (со всеми примененными обновлениями) сообщает «Отказано в доступе» при попытке сканирования вложений на вирусы.

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

Когда я смотрю на эти каталоги, я вижу это:

$ 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

Я убедился, что пользователь clamd является членом группы amavisd, но это ничего не исправило. Может кто-нибудь сказать мне, в частности, какой компонент хочет, какие разрешения - и ... в идеале ... что нужно сделать, чтобы это исправить?

Пояснение : я не ищу объяснения основ разрешений. Я ищу решение, подходящее для этой конкретной проблемы, которая, по крайней мере, на первый взгляд выглядит так, как будто компонент из пакета amavis (возможно, clamd) использует неправильное значение umask. Конечно, эта ошибка могла возникнуть в результате ряда ошибок или ошибок конфигурации. В частности, я ищу наиболее подходящее решение для этого случая ... когда «vanilla» amavis / clamav не может получить доступ к содержимому временных папок, которые он создает как / когда требуется для сканирования входящей электронной почты.

Мне известен этот похожий (не Ubuntu) вопрос. Ответ Redhat / Centos не решает проблему, с которой я столкнулся в Ubuntu.

Эта проблема встречается в "Ubuntu 14.04.2 LTS" - нет ожидающих обновлений.


Группа amavisне имеет права на запись для /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/и/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts
AB

Попробуйте этоchmod -R g+w /var/lib/amavis/tmp
AB

Проблема не в том, что я не могу изменить разрешения, чтобы разрешить групповую запись в каталогах ... Проблема в том, что я не знаю, как обеспечить создание каталогов в / var / lib / amavis / tmp / - in будущее - создаваться с правильными разрешениями. Похоже, в этом каталоге amavis расширяет сообщения для проверки вложений. По умолчанию работали ... теперь, после некоторых обновлений, это не так.
августа

Тогда работай над своим вопросом.
AB

Ответы:


13

Рабочим решением является изменение

AllowSupplementaryGroups false -> true

в /etc/clamav/clamd.conf

перезапустите clamav-daemon


2
Это то, что решило это для меня (я на Debian Jessie). Добавление clamav в группу amavis не решило проблему.
chmike

2
AllowSupplementaryGroupsВариант уронили в последних версиях ClamAV (0.99.2+, июнь 2, 2016 в вверх по течению).
Даниэль Верите

1
+1 Это сработало. Утвержденный ответ ниже не делает. Если бы вы следили за страницей вики Ubuntu AmavisNew (надеюсь), вы бы уже добавили amavis / clamav в качестве дополнительных групп друг к другу. Утвержденный ответ не делает ничего, кроме как повторяет это - и не работает. Я использую pkgs по умолчанию на 16.04.1 LTS. ref: help.ubuntu.com/community/PostfixAmavisNew
bshea


Подтверждено: исправлена ​​проблема и для меня, Ubuntu LTS 16.04.1

6

Пока clamdпользователь был членом amavisгруппы, clamdпроцесс выполнялся как clamav(не clamd) пользователь.

Добавление clamavв amavisгруппу решило проблему.


2

Поскольку AllowSupplementaryGroupsбольше не существует, я закончил, добавив каждого пользователя в другую группу, например так:

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

(и перезагрузите все, чтобы быть уверенным)

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

При этом нет необходимости менять разрешение папки /var/lib/amavis/tmp(и я не уверен, что эти разрешения останутся такими же, как при следующем обновлении apt-get ...)


Пакет по умолчанию для 16.04.1 имеет директиву AllowSupplementaryGroupsв основном конфиге. Вы публикуете вводящую в заблуждение информацию. Если директива отсутствует в более новых версиях, то почему для вас работает добавление дополнительных групп к каждой учетной записи? 16.04.1 все еще в конфиге, потому что он больше не используется? Хм. Покажи мне доказательства. Кстати, переключив это «TRUE», все заработало 16.04.1. ref: help.ubuntu.com/community/PostfixAmavisNew#
Устранение

Это не правда, что AllowSupplementaryGroups не существует. И более того, вы должны установить значение true, чтобы оно действительно работало.
user3021729

Grep из исходного кода версии 0.99.2 strarg, user-> pw_gid)) {clamd / clamd.c: fprintf (stderr, "ОШИБКА: сбой initgroups (). \ n"); clamd / clamd.c- optfree (опции); clamd / clamd.c- возврат 1; clamd / clamd.c-} clamd / clamd.c- # else
Дин-И Чен

0

Я искал вокруг и не нашел никакой информации о том, что я сделал. Сначала я размонтировал диск, а затем перемонтировал диск.

ls -l /dev
sudo umount /dev/sdd4
sudo mkdir /mnt
sudo mount /dev/sdd4 /mnt

-5

Вы пытались ввести это в терминале:

       sudo -i
       gksu thunar

и если thunar не установлен, введите это в терминале:

        sudo apt-get install thunar 

и сделать разрешение на чтение и запись для каталога:

       /var/lib/amavis

и это с thunar, и это может нормально работать.


4
Thunar для установки разрешений? О, МОЙ БОГ.
AB

2
А потом на сервере?
AB

Мишель, вы можете использовать это, чтобы изменить разрешение, когда у вас уже установлен графический интерфейс (gtk2 + xfce), как Ubuntu для настольных компьютеров. ОП упоминал здесь использование Ubuntu Server. Это означает, что графический интерфейс не установлен, и вместо этого вы должны использовать CLI / командную строку. eq: sudo chmod -R +rw /var/lib/amavis(-R для рекурсивного)
user.dz

Попробуйте этот ulimet -i без ограничений, и он может нормально работать таким образом.
Майкл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.