AWStats: /var/log/apache2/access.log dosyasına erişemiyor


14

Yeni Ubuntu Lucid sunucuma awstats yükledim, ancak cron bunu kullanıcı olarak çalıştırmaya çalıştığında www-dataşikayet ediyor cannot access /var/log/apache2/access.log: Permission denied.

Gelen /usr/share/doc/awstats/README.Debianbu paragrafın var:

Varsayılan olarak Apache (sürüm 1.3.22-1'den beri) günlük dosyalarını uid = root ve gid = adm ile depolar, bu nedenle ...

1) www-data en azından okuma erişimine sahip olacak şekilde /etc/logrotate.d/apache içindeki günlük dosyalarının haklarını değiştirin.

2) 1 olarak), ancak belirli bir kullanıcı olarak değiştirin ve aynı kullanıcı olarak çalıştırmak için Apache'nin suEXEC özelliğini kullanın (ve / var / lib / awstats'ın hakkını da değiştirin veya başka bir dizin kullanın). Bu daha karmaşıktır, ancak daha sonra günlüklere genellikle sunucu tarafından erişilemez (muhtemelen Apache varsayılanının noktasıdır).

3) awstats.pl dosyasını grup kabulüne göre değiştirin (ancak daha sonra makinedeki yönetici öğelerine bir CGI komut dosyasının erişimine izin verme riskini aldığınıza dikkat edin!).

1 ile giderdim, ancak önerilen izinler nelerdir?


Bunu deneyin, işe yarayacaksa söz veremem: chown www-data:www-data <yourFile>ve sonra chmod 655 <yourFile>.
TheTuxRacer

1
Awstats çalışmak için yeterli chmod 755 /var/log/apache2ve yeterli chmod 644 access.log, ama ben istiyorum "Bu en iyi uygulama" -çev çeşit :) Ama chiming için teşekkürler!
Joril

Sanırım # 1 ile gitmek haklısın (awstats'ın ihtiyacı olan başka bir şey yoksa, sadece okuma erişimi ile). Bu, sınırlı bir kullanıcı hesabına erişim sağlar ve bunun ötesinde hiçbir şeye yeni erişim izni vermez.
belacqua

Yanıtlar:


8

1. noktaya giderseniz ve www-data'nın en azından okuma iznine sahip olması gerektiğini söylüyorsa, önerilen sadece okuma izni verilir.

Satırı değiştirebilirsiniz (logrotate dosyasında):

create 640 root adm

için

create 644 root adm

Tüm kullanıcılara (www verileri dahil) okuma izni vermek için.

/ Var / log / apache2 / dizinindeki mevcut dosyaları bu ayarla eşleşecek şekilde değiştirmeniz gerekir

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

Daha sonra tüm dosyalar tüm kullanıcılar tarafından okunabilir ve ileride logrotate oluşturacak tüm dosyalar adecuate izinlerine sahip olacaktır.


2
"Tüm kullanıcılar" ın "/ var / log / apache2 /" içine bakabilmesi için ek olarak şunları yapın: chmod a + x / var / log / apache2 /
alfonx 21

6

Çoğu kurulumda:

  • awstats, apache kullanıcısı www-data olarak çalışır ;
  • apache günlük dosyaları root'a aittir : adm ve -rw-r ----- (aka: chmod 640 ) izinlerine sahiptir; ve
  • sahiplik ve izin ayarları /etc/logrotate.d/apache2 dosyasında bulunabilir , içeriği:

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

En basit çözüm:

1) En sevdiğiniz metin düzenleyicisini kullanarak /etc/logrotate.d/apache2 içindeki " 640 kök adm oluştur " ifadesini " 644 kök adm oluştur " olarak değiştirin veya her şeyi komut dosyası yapmanız gerekiyorsa:

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

2) Değişim üzerindeki izinleri /var/log/apache2/access.log ve /var/log/apache2/error.log için 644 .

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

3) Apache'yi yeniden başlatın.

sudo apachectl -k graceful

Kullanıcıların www-data'yu adm kullanıcı grubuna bir çözüm olarak eklediklerini gördüm. Bu www-data için rahat olduğumdan çok daha fazla izin .

Diğer daha güvenli seçenekler, awstats için yeni bir kullanıcı ve gruplar oluşturmayı ve awstats'ın bu yeni kullanıcı / grup olarak çalıştırılmasını / yürütülmesini içerir.


Yine başka bir çözüm, grubun /var/log/apache2ve altındaki her şeyin değiştirilmesi www-datave dosyaların grup tarafından okunabilir hale getirilmesi olacaktır. Bu, onları dünya tarafından okunabilir kılmaktan biraz daha az izin vericidir.
Reinier Mesaj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.