본문 바로가기

Engineering/Network

maillog 로그중에 NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

728x90
 /var/log/maillog 로그에 계속 "NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied" 이 나타나는 경우가 있다. command 라인에서 mail 테스트를 했을때는 정상적으로 메일전송이 되는 것을 확인이 되는데, 웹서버를 사용해서 메일전송을 할 경우에(웹 어플리케이션에서 메일 전송) 해당 로그가 발생한다.

일단 /var/spool/clientmqueu 디렉토리 권한을 확인하면 smmsp:smmsp 사용자만 쓸 수 있다.
# ls -la
drwxrwx---.  2 smmsp  smmsp   4096 2012-01-10 18:18 clientmqueue

그래서 clientmqueu 디렉토리 권한을 777 로 변경하고(보안상 안좋을듯 한 생각이...)  /etc/group 의 smmsp 의 그룹권한에도 "apache"를 추가해 보았으나, 동일한 오류메시지가 발생한다.

구글 검색을 해보니 누군가 동일하게 작업해서 질문을 올려놨다.(http://www.linuxquestions.org/questions/linux-software-2/php-mail-problem-w-sendmail-361209/ )

답변중에 selinux 설정값 때문인지를 확인해보니, selinux 가 설정되어 있었다.
# cat /selinux/enforce
1

selinux 값을 설정후에는 오류로그가 발생이 안되고, 간단한 php sendmail 코드로 확인해보니 정상적으로 메일이 전송되었다.
# echo 0 > /selinux/enforce 

리눅스 부팅후에도 계속 selinux 를 사용하지 않을려면, selinux 를 off 시켜야한다.
# vi /etc/selinux/config
"SELINUX=disable" 추가

(selinux 참고 사이트)
http://www.crypt.gen.nz/selinux/disable_selinux.html