Como corrigir a "permissão negada" do relatório amvavis para o clamav

12

Recentemente, notei uma pequena quantidade frustrante ... Ao processar um email, um servidor Ubuntu (com todas as atualizações aplicadas) relata "Permissão negada" ao tentar anexar uma verificação de vírus.

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

Quando olho para os diretórios em questão, vejo o seguinte:

$ 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

Assegurei-me de que o usuário clamd fosse membro do grupo amavisd - mas isso não corrigiu nada. Alguém pode me dizer, especificamente, qual componente deseja quais permissões - e ... idealmente ... o que fazer para corrigir isso?

Esclarecimento : Não estou procurando explicações sobre os fundamentos das permissões. Estou procurando uma solução apropriada para esse problema específico - que, à primeira vista, pelo menos, parece que um componente do pacote amavis (talvez clamd) esteja usando o valor errado umask. Obviamente, essa falha pode ter surgido como resultado de vários bugs ou falhas de configuração. Estou procurando, especificamente, a resolução mais apropriada para este caso ... em que uma instalação amavis / clamav 'baunilha' falha ao acessar o conteúdo de pastas temporárias que ele cria, quando necessário para verificar o email de entrada.

Estou ciente dessa pergunta semelhante (não-Ubuntu). A resposta Redhat / Centos não resolve o problema que tenho no Ubuntu.

Este problema foi encontrado no "Ubuntu 14.04.2 LTS" - não há atualizações pendentes.

aSteve
fonte
O grupo amavisnão tem permissões de gravação para /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/e/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts
AB
Tente issochmod -R g+w /var/lib/amavis/tmp
AB
O problema não é que não posso alterar as permissões para permitir a gravação em grupo nos diretórios ... O problema é que não sei como garantir que os diretórios criados em / var / lib / amavis / tmp / - in future - seja criado com as permissões corretas. Esse diretório parece ser o local onde o amavis expande mensagens para inspecionar anexos. Os padrões costumavam funcionar ... agora, depois de algumas atualizações, não funciona.
precisa saber é
Então trabalhe na sua pergunta.
AB

Respostas:

13

Uma solução funcional é mudar

AllowSupplementaryGroups false -> true

em /etc/clamav/clamd.conf

reinicie o clamav-daemon

guerra
fonte
2
Foi isso que resolveu para mim (estou no Debian Jessie). Adicionar clamav ao grupo amavis não o resolveu.
chmike
2
A AllowSupplementaryGroupsopção foi descartada nas versões recentes do clamav (0.99.2+, 2 de junho de 2016 no upstream).
Daniel Vérité
1
+1 Isso funcionou. A resposta aprovada abaixo NÃO. Se você seguisse a página wiki do Ubuntu AmavisNew (espero), já teria adicionado o amavis / clamav como grupos suplementares um ao outro. A resposta aprovada não repete isso - e não funciona. Estou executando os pacotes padrão no 16.04.1 LTS. ref: help.ubuntu.com/community/PostfixAmavisNew
bshea
Confirmado: problema corrigido para mim, também, Ubuntu LTS 16.04.1
6

Enquanto o clamdusuário era um membro do amavisgrupo, o clamdprocesso estava sendo executado como o clamav(não clamd) usuário.

A adição clamavao amavisgrupo resolveu o problema.

aSteve
fonte
2

Como AllowSupplementaryGroupsnão existe mais, terminei adicionando cada usuário ao outro grupo, assim:

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

(e reinicie tudo apenas para ter certeza)

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

Com isso, não há necessidade de alterar a permissão da pasta /var/lib/amavis/tmp(e não tenho certeza de que essas permissões serão deixadas como estão na próxima atualização do apt-get ...)

Pior
fonte
O pkg padrão no 16.04.1 tem a diretiva AllowSupplementaryGroupsna configuração principal. Você está postando informações enganosas. Se a diretiva não existe em versões mais recentes - por que a adição dos grupos suplementares a cada conta funciona para você? Ainda está no Config em 16.04.1 porque não é mais usado? Hmm. Mostre-me a prova. BTW mudar este 'TRUE' fez tudo funcionar em 16.04.1. ref: help.ubuntu.com/community/PostfixAmavisNew#Troubleshooting
bshea
Isso não é verdade que AllowSupplementaryGroups não existe. E mais, você precisa configurá-lo como verdadeiro para realmente fazê-lo funcionar.
user3021729
Grep da fonte ver 0.99.2 clamd / clamd.c- if (optget (opta, "AllowSupplementaryGroups") -> ativado) {clamd / clamd.c- # ifdef HAVE_INITGROUPS clamd / clamd.c: if (initgroups (opt-> strarg, usuário-> pw_gid)) {clamd / clamd.c: fprintf (stderr, "ERRO: initgroups () falhou. \ n"); clamd / clamd.c- optfree (opta); clamd / clamd.c- retorna 1; clamd / clamd.c-} clamd / clamd.c- # else #
Ding-Yi Chen
0

Eu estava olhando em volta e não encontrei nenhuma informação sobre o que fiz. Primeiro, desmontei a unidade em questão e depois a remontei.

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

Você já tentou inserir isso no terminal:

       sudo -i
       gksu thunar

e se o thunar não estiver instalado, digite-o no terminal:

        sudo apt-get install thunar 

e faça permissão de leitura e gravação para o diretório:

       /var/lib/amavis

e isso é thunar, e pode funcionar bem dessa maneira.

Michael
fonte
4
Thunar para definir permissões? AMD.
AB
2
E então em um servidor?
AB
Mishael, você pode usar isso para alterar a permissão quando já tiver a GUI (gtk2 + xfce) instalada como o Ubuntu desktop edition. O OP aqui mencionou o uso do Ubuntu Server. Isso significa que nenhuma GUI está instalada e você deve usar a CLI / linha de comando. eq: sudo chmod -R +rw /var/lib/amavis(-R para recursivo)
user.dz 11/11/2015
Experimente este ulimet -i ilimitado e pode funcionar bem dessa maneira.
Michael