AWStats: impossibile accedere a /var/log/apache2/access.log


14

Ho installato awstats sul mio nuovo server Ubuntu Lucid, ma quando cron tenta di eseguirlo come utente www-data, si lamenta cannot access /var/log/apache2/access.log: Permission denied.

In /usr/share/doc/awstats/README.Debianc'è questo paragrafo:

Per impostazione predefinita, Apache memorizza (dalla versione 1.3.22-1) i file di log con uid = root e gid = adm, quindi è necessario ...

1) Modificare i diritti dei file di log in /etc/logrotate.d/apache in modo che i dati www abbiano almeno l'accesso in lettura.

2) Come 1) ma passa a un utente specifico e usa la funzione suEXEC di Apache per eseguire lo stesso utente (e cambia anche il diritto di / var / lib / awstats o usa un'altra directory). Questo è più complicato, ma in genere i log non sono accessibili al server (che probabilmente era il punto del default di Apache).

3) Cambia awstats.pl nel gruppo admin (ma fai attenzione che stai correndo il rischio di consentire l'accesso a uno script CGI agli elementi admin sulla macchina!).

Vorrei andare con 1, ma quali sono le autorizzazioni consigliate da concedere?


Prova questo, non posso promettere se funzionerà: chown www-data:www-data <yourFile>e poi chmod 655 <yourFile>.
theTuxRacer

1
Beh, per far funzionare Awstats è sufficiente chmod 755 /var/log/apache2e chmod 644 access.log, ma mi piacerebbe un tipo di risposta "questa è la migliore pratica" :) Grazie per averci dato una risposta!
Joril,

Penso che tu abbia ragione a scegliere il numero 1 (con accesso in sola lettura, a meno che non ci sia qualcos'altro di cui ha bisogno Awstats). Questo dà accesso a un account utente limitato e non garantisce un nuovo accesso a nulla oltre a quello.
belacqua,

Risposte:


8

Se si va per il punto 1 e si dice che i dati www dovrebbero avere almeno l'autorizzazione di lettura, si consiglia di leggere solo il consiglio consigliato.

È possibile modificare la riga (nel file logrotate):

create 640 root adm

per

create 644 root adm

Per dare a tutti gli utenti (dati www inclusi) il permesso di leggere.

Dovrai modificare le autorizzazioni dei file esistenti in / var / log / apache2 / in modo che corrispondano a questa impostazione

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

Quindi tutti i file possono essere letti da tutti gli utenti e tutti i file che logroteranno in futuro avranno le autorizzazioni appropriate


2
E per "tutti gli utenti" essere in grado di esaminare "/ var / log / apache2 /" fare aditionally: chmod a + x / var / log / apache2 /
alfonx

6

Nella maggior parte delle configurazioni:

  • awstats viene eseguito come www-data dell'utente apache ;
  • i file di log di apache sono di proprietà di root: adm e dispongono delle autorizzazioni -rw-r ----- (aka: chmod 640 ); e
  • le impostazioni di proprietà e permessi sono disponibili nel file /etc/logrotate.d/apache2 , il cui contenuto è:

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

La soluzione più semplice è:

1) Cambia " crea 640 root adm " in " create 644 root adm " in /etc/logrotate.d/apache2 usando il tuo editor di testo preferito o, se devi scrivere tutto:

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

2) Modificare le autorizzazioni su /var/log/apache2/access.log e /var/log/apache2/error.log su 644 .

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

3) Riavvia apache.

sudo apachectl -k graceful

Ho visto persone aggiungere i dati www al gruppo utenti adm come soluzione. Sono molte più le autorizzazioni per i dati www di quelle a mio agio.

Altre opzioni più sicure riguardano la creazione di un nuovo utente e gruppi per awstats e la creazione / esecuzione di awstats come questo nuovo utente / gruppo.


Un'altra soluzione sarebbe quella di cambiare il gruppo di /var/log/apache2e tutto ciò che lo contiene www-datae rendere i file leggibili dal gruppo. Questo è leggermente meno permissivo che renderli leggibili dal mondo.
Reinier Post,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.