Saya menginstal awstats pada server Lucid Ubuntu baru saya, tetapi ketika cron mencoba menjalankannya sebagai pengguna www-data
, komplain itu cannot access /var/log/apache2/access.log: Permission denied
.
Di /usr/share/doc/awstats/README.Debian
sana ada paragraf ini:
Secara default, Apache menyimpan (sejak versi 1.3.22-1) file log dengan uid = root dan gid = adm, jadi Anda harus ...
1) Ubah hak file log di /etc/logrotate.d/apache sehingga www-data memiliki setidaknya akses baca.
2) As 1) tetapi ubah menjadi pengguna tertentu, dan gunakan fitur suEXEC dari Apache untuk dijalankan sebagai pengguna yang sama (dan ubah juga hak / var / lib / awstats atau gunakan direktori lain). Ini lebih rumit, tetapi kemudian log umumnya tidak dapat diakses ke server (yang mungkin merupakan titik dari standar Apache).
3) Ubah awstats.pl ke grup adm (tetapi berhati-hatilah bahwa Anda kemudian mengambil risiko mengizinkan akses skrip CGI ke hal-hal admin di mesin!).
Saya akan memilih 1, tetapi izin apa yang disarankan untuk diberikan?
sumber
chown www-data:www-data <yourFile>
dan kemudianchmod 655 <yourFile>
.chmod 755 /var/log/apache2
danchmod 644 access.log
, tapi saya ingin "ini adalah praktik terbaik" -jenis jawaban :) Terima kasih telah ikut serta!Jawaban:
Jika Anda memilih poin 1 dan mengatakan bahwa www-data harus memiliki setidaknya membaca izin maka yang direkomendasikan adalah hibah hanya dibaca.
Anda dapat mengubah baris (dalam file logrotate):
untuk
Untuk memberikan izin membaca kepada semua pengguna (termasuk www-data).
Anda harus mengubah izin file yang ada di / var / log / apache2 / untuk mencocokkan pengaturan ini
Maka semua file dapat dibaca oleh semua pengguna dan semua file yang membuat logrotate di masa depan akan memiliki izin yang memadai
sumber
Di sebagian besar pengaturan:
pengaturan kepemilikan dan izin dapat ditemukan di file /etc/logrotate.d/apache2 , isinya adalah:
Solusi paling sederhana adalah dengan:
1) Ubah " buat 640 root adm " menjadi " create 644 root adm " di /etc/logrotate.d/apache2 menggunakan editor teks favorit Anda atau, jika Anda harus menulis semuanya:
2) Ubah izin pada /var/log/apache2/access.log dan /var/log/apache2/error.log ke 644 .
3) Mulai ulang apache.
Saya telah melihat orang menambahkan www-data ke grup pengguna adm sebagai solusi. Itu jauh lebih banyak izin untuk data-www daripada yang nyaman bagi saya.
Opsi lain yang lebih aman melibatkan pembuatan pengguna baru & grup untuk awstats dan membuat awstats dijalankan / dieksekusi sebagai pengguna / grup baru ini.
sumber
/var/log/apache2
dan semua yang ada di bawahnyawww-data
agar file-file tersebut dapat dibaca oleh grup. Ini sedikit kurang permisif daripada membuatnya mudah dibaca.