Cómo arreglar amvavis reportando "permiso denegado" para clamav

12

Recientemente he notado una molestia frustrante ... Al procesar el correo electrónico, un Servidor Ubuntu (con todas las actualizaciones aplicadas) informa "Permiso denegado" cuando intenta escanear archivos adjuntos de 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

Cuando miro los directorios en cuestión, veo esto:

$ 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

Me aseguré de que el usuario clamd sea miembro del grupo amavisd, pero esto no solucionó nada. ¿Alguien puede decirme, específicamente, qué componente quiere qué permisos, e ... idealmente, qué hacer para solucionar esto?

Aclaración : no estoy buscando explicaciones sobre los fundamentos de los permisos. Estoy buscando una solución adecuada para este problema específico, que, a primera vista, al menos, parece que un componente de la suite de amavis (quizás clamd) está utilizando el valor umask incorrecto. Por supuesto, esta falla puede haber surgido como resultado de una serie de errores o fallas de configuración. Estoy buscando, específicamente, la resolución más adecuada para este caso ... donde una instalación 'vainilla' de amavis / clamav no puede acceder al contenido de las carpetas temporales que crea cuando es necesario para escanear el correo electrónico entrante.

Soy consciente de esta pregunta similar (no Ubuntu). La respuesta de Redhat / Centos no resuelve el problema que experimento con Ubuntu.

Este problema se encuentra en "Ubuntu 14.04.2 LTS": no hay actualizaciones pendientes.

aSteve
fuente
El grupo amavisno tiene permisos de escritura para /var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/y/var/lib/amavis/tmp/amavis-20150402T140519-06376-PZcyHfOt/parts
AB
Prueba estochmod -R g+w /var/lib/amavis/tmp
AB
El problema no es que no pueda cambiar los permisos para permitir la escritura grupal en los directorios ... El problema es que no sé cómo garantizar que los directorios creados en / var / lib / amavis / tmp / - en futuro: cree con los permisos correctos. Este directorio parece ser donde amavis expande mensajes para inspeccionar archivos adjuntos. Los valores predeterminados solían funcionar ... ahora, después de algunas actualizaciones, no funciona.
aSteve
Entonces trabaje en su pregunta.
AB

Respuestas:

13

Una solución de trabajo es cambiar

AllowSupplementaryGroups false -> true

en /etc/clamav/clamd.conf

reiniciar clamav-daemon

guerra
fuente
2
Esto es lo que me resolvió (estoy en Debian Jessie). Agregar clamav al grupo amavis no lo resolvió.
chmike
2
La AllowSupplementaryGroupsopción se ha eliminado en versiones recientes de clamav (0.99.2+, 2 de junio de 2016 en sentido ascendente).
Daniel Vérité
1
+1 Esto funcionó. La respuesta aprobada a continuación NO. Si seguiste la página wiki Ubuntu AmavisNew (con suerte), ya habrías agregado amavis / clamav como grupos complementarios entre sí. La respuesta aprobada no hace más que repetir esto, y no funciona. Estoy ejecutando pkgs predeterminados en 16.04.1 LTS. ref: help.ubuntu.com/community/PostfixAmavisNew
bshea
Confirmado: problema resuelto para mí también, Ubuntu LTS 16.04.1
6

Mientras el clamdusuario era miembro del amavisgrupo, el clamdproceso se ejecutaba como el clamav(no clamd) usuario.

Agregar clamaval amavisgrupo resolvió el problema.

aSteve
fuente
2

Como AllowSupplementaryGroupsya no existe, terminé agregando cada usuario al otro grupo, así:

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

(y reinicie todo solo para estar seguro)

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

Con esto, no es necesario cambiar el permiso de carpeta /var/lib/amavis/tmp(y no estoy seguro de que esos permisos se dejarán como está en la próxima actualización de apt-get ...)

Peor
fuente
El paquete predeterminado en 16.04.1 tiene la directiva AllowSupplementaryGroupsen la configuración principal. Estás publicando información engañosa. Si la directiva no existe en las versiones más nuevas, ¿por qué le resulta útil agregar los grupos suplementarios a cada cuenta? ¿TODAVÍA ESTÁ EN LA CONFIGURACIÓN el 16.04.1 porque ya no se usa? Hmm Muéstrame la prueba. Por cierto, cambiar este 'VERDADERO' hizo que todo funcionara en 16.04.1. ref: help.ubuntu.com/community/PostfixAmavisNew#Troubleshooting
bshea
Esto no es cierto que AllowSupplementaryGroups no existe. Y lo que es más, debe configurarlo como verdadero para que realmente funcione.
user3021729
Grep desde la fuente ver 0.99.2 clamd / clamd.c- if (optget (opts, "AllowSupplementaryGroups") -> habilitado) {clamd / clamd.c- # ifdef HAVE_INITGROUPS clamd / clamd.c: if (initgroups (opt-> strarg, user-> pw_gid)) {clamd / clamd.c: fprintf (stderr, "ERROR: initgroups () falló. \ n"); clamd / clamd.c- optfree (opta); clamd / clamd.c- return 1; clamd / clamd.c-} clamd / clamd.c- # else
Ding-Yi Chen
0

Estaba mirando alrededor y no encontré ninguna información sobre lo que hice. Primero desmonté la unidad en cuestión y luego la volví a montar.

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

¿Has intentado ingresar esto en la terminal?

       sudo -i
       gksu thunar

y si no está instalado thunar, ingrese esto en la terminal:

        sudo apt-get install thunar 

y haga permiso para leer y escribir para el directorio:

       /var/lib/amavis

y esto es con Thunar, y podría funcionar bien de esta manera.

Miguel
fuente
44
Thunar para establecer permisos? DIOS MIO.
AB
2
¿Y luego en un servidor?
AB
Mishael, puedes usar esto para cambiar el permiso cuando tienes GUI (gtk2 + xfce) ya instalada como la edición de escritorio de Ubuntu. El OP aquí mencionó el uso de Ubuntu Server. Eso significa que no hay GUI instalada y, en su lugar, debe usar CLI / línea de comando. eq: sudo chmod -R +rw /var/lib/amavis(-R para recursivo)
user.dz
Pruebe este ulimet -i sin límites, y podría funcionar bien de esta manera.
Michael