AWStats: không thể truy cập /var/log/apache2/access.log


14

Tôi đã cài đặt awstats trên máy chủ Ubuntu Lucid mới của mình, nhưng khi cron cố chạy nó với tư cách người dùng www-data, nó phàn nàn điều đó cannot access /var/log/apache2/access.log: Permission denied.

Trong /usr/share/doc/awstats/README.Debianđoạn này:

Theo mặc định, các cửa hàng Apache (kể từ phiên bản 1.3.22-1) logfiles với uid = root và gid = adm, vì vậy bạn cần ...

1) Thay đổi quyền của các logfiles trong /etc/logrotate.d/apache để dữ liệu www có ít nhất quyền truy cập đọc.

2) Là 1) nhưng thay đổi thành một người dùng cụ thể và sử dụng tính năng suEXEC của Apache để chạy cùng một người dùng (và cũng thay đổi quyền của / var / lib / awstats hoặc sử dụng thư mục khác). Điều này phức tạp hơn, nhưng sau đó các bản ghi thường không thể truy cập được vào máy chủ (có lẽ là điểm mặc định của Apache).

3) Thay đổi awstats.pl thành nhóm adm (nhưng hãy cẩn thận khi bạn gặp rủi ro khi cho phép truy cập tập lệnh CGI vào nội dung quản trị viên trên máy!).

Tôi muốn đi với 1, nhưng các quyền được đề xuất để cấp là gì?


Hãy thử điều này, không thể hứa nếu nó sẽ hoạt động: chown www-data:www-data <yourFile>và sau đó chmod 655 <yourFile>.
theTuxRacer

1
Chà để làm cho awstats hoạt động là đủ chmod 755 /var/log/apache2chmod 644 access.log, nhưng tôi thích một "đây là cách tốt nhất" - câu trả lời :) Cảm ơn vì đã mặc dù vậy!
Joril

Tôi nghĩ rằng bạn đúng khi đi với số 1 (chỉ cần truy cập đọc, trừ khi có nhu cầu khác về nhu cầu). Điều này cho phép truy cập vào tài khoản người dùng hạn chế và không cấp quyền truy cập mới vào bất cứ điều gì ngoài điều đó.
belacqua

Câu trả lời:


8

Nếu bạn đi đến điểm 1 và nó nói rằng dữ liệu www nên có ít nhất quyền đọc thì khuyến nghị chỉ được cấp.

Bạn có thể thay đổi dòng (trong tệp logrotate):

create 640 root adm

đến

create 644 root adm

Để cung cấp cho tất cả người dùng (bao gồm dữ liệu www).

Bạn sẽ cần thay đổi quyền các tệp tồn tại trong / var / log / apache2 / để khớp với cài đặt này

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

Sau đó, tất cả các tệp có thể được đọc bởi tất cả người dùng và tất cả các tệp mà logrotate tạo trong tương lai sẽ có quyền truy cập


2
Và đối với "all users" để có thể nhìn vào "/ var / log / apache2 /" làm aditionally: chmod a + x / var / log / apache2 /
alfonx

6

Trong hầu hết các thiết lập:

  • awstats chạy như dữ liệu www người dùng apache của bạn ;
  • các tệp nhật ký apache được sở hữu bởi root: adm và có quyền -rw-r ----- (aka: chmod 640 ); và
  • cài đặt quyền sở hữu và quyền có thể được tìm thấy trong tệp /etc/logrotate.d/apache2 , nội dung của nó là:

    /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 }
    

Giải pháp đơn giản nhất là:

1) Thay đổi " tạo 640 root adm " thành " tạo 644 adm adm " trong /etc/logrotate.d/apache2 bằng trình soạn thảo văn bản yêu thích của bạn hoặc, nếu bạn phải kịch bản mọi thứ:

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

2) Thay đổi quyền trên /var/log/apache2/access.log/var/log/apache2/error.log thành 644 .

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

3) Khởi động lại apache.

sudo apachectl -k graceful

Tôi đã thấy mọi người thêm dữ liệu www vào nhóm người dùng adm như một giải pháp. Đó là nhiều quyền hơn cho dữ liệu www so với tôi thấy thoải mái.

Các tùy chọn an toàn khác khác liên quan đến việc tạo một người dùng & nhóm mới cho awstats và làm cho awstats chạy / thực thi như người dùng / nhóm mới này.


Tuy nhiên, một giải pháp khác là thay đổi nhóm /var/log/apache2và mọi thứ theo nó www-datavà làm cho các tệp có thể đọc được. Điều này hơi ít cho phép hơn là làm cho chúng dễ đọc trên thế giới.
Tăng cường bài
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.