clamav에 대해 "permission denied"를보고하는 amvavis를 수정하는 방법


12

최근에 불만이 생겼습니다 ... 이메일을 처리 할 때 우분투 서버 (모든 업데이트가 적용된)는 바이러스 검사 첨부 파일을 시도 할 때 "권한이 거부되었습니다"라고보고합니다.

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 설치가 인바운드 이메일을 스캔 할 때 생성 할 때 또는 임시 폴더의 내용에 액세스하지 못하는 경우.

비슷한 (비 우분투) 질문을 알고 있습니다. Redhat / Centos 답변은 우분투에서 겪는 문제를 해결하지 못합니다.

이 문제는 "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 /-에 디렉토리가 생성되도록하는 방법을 모른다는 것입니다 미래-올바른 권한으로 작성하십시오. 이 디렉토리는 amavis가 첨부 파일을 검사하기 위해 메시지를 확장하는 위치 인 것 같습니다. 기본적으로 작동하는 데 사용되었습니다 ... 이제 일부 업데이트 후에는 작동하지 않습니다.
aSteve

그런 다음 질문에 답하십시오.
AB

답변:


13

효과적인 해결책은 변화하는 것입니다

AllowSupplementaryGroups false-> true

/etc/clamav/clamd.conf에

클라 마브 데몬 다시 시작


2
이것이 나를 위해 해결 한 것입니다 (Debian Jessie에 있습니다). Amavis 그룹에 clamav를 추가해도 문제가 해결되지 않았습니다.
chmike

2
AllowSupplementaryGroups옵션은 최근 버전의 clamav (0.99.2+, 2016 년 6 월 2 일 업스트림)에서 삭제되었습니다.
Daniel Vérité

1
+1 효과가있었습니다. 아래의 승인 된 답변은 해당되지 않습니다. Ubuntu AmavisNew 위키 페이지를 따라 간 경우 (아마도) amavis / clamav를 서로 보완 그룹으로 추가했을 것입니다. 승인 된 답변은 이것을 반복하지 않고 작동하지 않습니다. 16.04.1 LTS에서 기본 pkg를 실행하고 있습니다. 심판 : 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의 기본 pkg AllowSupplementaryGroups는 기본 구성에 지시문 이 있습니다. 잘못된 정보를 게시하고 있습니다. 지시문이 최신 버전에 존재하지 않는 경우 왜 각 계정에 보충 그룹을 추가하면 효과가 있습니까? 더 이상 사용되지 않기 때문에 16.04.1의 구성에 여전히 적용됩니까? 흠. 증거를 보여줘 이 'TRUE'를 BTW로 전환하면 모든 것이 16.04.1에서 작동했습니다. 심판 : help.ubuntu.com/community/PostfixAmavisNew# 문제 해결
bshea

AllowSupplementaryGroups가 존재하지 않는 것은 아닙니다. 또한 실제로 작동하게하려면 true로 설정해야합니다.
user3021729

소스 버전 0.99.2에서 grep / clamd.c- if (optget (opts, "AllowSupplementaryGroups")-> enabled) {clamd / clamd.c- # ifdef HAVE_INITGROUPS clamd / clamd.c : if (initgroups (opt-> strarg, user-> pw_gid)) {clamd / clamd.c : fprintf (stderr, "오류 : initgroups () 실패. \ n"); clamd / clamd.c-optfree (opts); clamd / clamd.c- 리턴 1; clamd / clamd.c-} clamd / clamd.c- # else
Ding-Yi Chen

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

이것은 부엉이입니다. 이런 식으로 잘 작동 할 것입니다.


4
Thunar가 권한을 설정 하시겠습니까? 세상에
AB

2
그리고 서버에서?
AB

Mishael, Ubuntu 데스크탑 에디션과 같은 GUI (gtk2 + xfce)가 이미 설치되어있는 경우이를 사용하여 권한을 변경할 수 있습니다. 여기서 OP는 Ubuntu Server 사용을 언급했습니다. 즉, GUI가 설치되어 있지 않으며 대신 CLI / 명령 줄을 사용해야합니다. eq : sudo chmod -R +rw /var/lib/amavis(재귀의 경우 -R)
user.dz

이 ulimet -i를 무제한으로 사용하면 이런 식으로 작동 할 수 있습니다.
Michael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.