AWStats : /var/log/apache2/access.log에 액세스 할 수 없습니다


14

새 Ubuntu Lucid 서버에 awstats를 설치했지만 cron이 사용자로 실행하려고 www-data하면 불평합니다 cannot access /var/log/apache2/access.log: Permission denied.

에서 /usr/share/doc/awstats/README.Debian이 단락이있다 :

기본적으로 Apache는 (버전 1.3.22-1부터) uid = root 및 gid = adm을 가진 로그 파일을 저장하므로 다음 중 하나를 수행해야합니다.

1) www-data가 최소한 읽기 액세스 권한을 갖도록 /etc/logrotate.d/apache에서 로그 파일의 권한을 변경하십시오.

2) 1)과 같이 특정 사용자로 변경하고 Apache의 suEXEC 기능을 사용하여 동일한 사용자로 실행하십시오 (및 / var / lib / awstats의 권한을 변경하거나 다른 디렉토리를 사용하십시오). 이것은 더 복잡하지만 로그는 일반적으로 서버에서 액세스 할 수 없습니다 (아파치 기본 설정일 수 있음).

3) awstats.pl을 그룹 adm으로 변경합니다 (그러나 컴퓨터의 관리자 항목에 CGI 스크립트 액세스를 허용 할 위험이 있습니다!).

나는 1과 함께 갈 것이지만 부여 할 권장 권한은 무엇입니까?


그것이 작동하는 경우이, 캔트 약속을 시도 chown www-data:www-data <yourFile>하고 chmod 655 <yourFile>.
theTuxRacer

1
잘 awstats 그것으로 충분 작동하도록 chmod 755 /var/log/apache2하고 chmod 644 access.log,하지만 난 "이있는 가장의 연습"- 비슷한 대답을하고 싶습니다 :) 생각에 차임 주셔서 감사합니다!
Joril

나는 당신이 # 1로 갈 권리가 있다고 생각합니다 (awstats가 필요로하지 않는 한 읽기 권한으로). 이렇게하면 제한된 사용자 계정에 액세스 할 수 있으며 그 이외의 항목에는 새로운 액세스 권한이 부여되지 않습니다.
belacqua

답변:


8

포인트 1로 가서 www-data에 최소한 읽기 권한이 있어야한다고 권장하면 권장 읽기 권한이 읽기 전용입니다.

logrotate 파일에서 행을 변경할 수 있습니다.

create 640 root adm

create 644 root adm

모든 사용자 (www-data 포함)에게 읽기 권한을 부여합니다.

이 설정과 일치하도록 / var / log / apache2 /에 존재하는 권한 파일을 변경해야합니다.

chmod a+r /var/log/apache2/* #or whatever your path is

그런 다음 모든 사용자가 모든 파일을 읽을 수 있으며 나중에 로그 로테이트로 만드는 모든 파일에 적절한 권한이 부여됩니다.


2
그리고 "모든 사용자"가 "/ var / log / apache2 /"를 추가로 볼 수 있도록 chmod a + x / var / log / apache2 /
alfonx

6

대부분의 설정에서 :

  • awstats는 아파치 사용자로 실행됩니다 www-data .
  • 아파치 로그 파일에 의해 소유 ADM : 루트 및이 ----- -rw-R을 (일명 : chmod를 640 ) 권한; 과
  • 소유권 및 권한 설정은 /etc/logrotate.d/apache2 파일에서 찾을 수 있습니다 . 내용은 다음과 같습니다.

    /var/log/apache2/*.log {
        daily
        missingok
        rotate 60
        compress
        delaycompress
        notifempty
        dateext
        create 640 root adm
        sharedscripts
        postrotate
                /etc/init.d/apache2 reload > /dev/null
        endscript }
    

가장 간단한 해결책은 다음과 같습니다.

1) 자주 사용하는 텍스트 편집기를 사용하거나 모든 것을 스크립팅해야하는 경우 /etc/logrotate.d/apache2 에서 " create 640 root adm "을 " create 644 root adm "으로 변경 하십시오.

sudo sed -i 's/create 640 root adm/create 644 root adm/g' /etc/logrotate.d/apache2

2) /var/log/apache2/access.log/var/log/apache2/error.log 에 대한 권한 을 644로 변경하십시오 .

sudo chmod 644 /var/log/apache2/access.log /var/log/apache2/error.log

3) 아파치를 다시 시작하십시오.

sudo apachectl -k graceful

사람들이 www-data를 adm 사용자 그룹에 솔루션으로 추가하는 것을 보았습니다. 그것은 더 많은 권한입니다 내가 익숙한 것보다 www-data에 입니다.

보다 안전한 다른 옵션으로는 awstats에 대한 새 사용자 및 그룹을 작성하고이 새 사용자 / 그룹으로 awstats를 실행 / 실행하는 것이 포함됩니다.


또 다른 해결책은 그룹 /var/log/apache2과 그 아래의 모든 것을 변경 www-data하고 파일을 그룹이 읽을 수있게 만드는 것입니다. 이것은 그것들을 세계가 읽을 수있게 만드는 것보다 약간 덜 관대합니다.
Reinier Post
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.