J'ai installé awstats sur mon nouveau serveur Ubuntu Lucid, mais lorsque cron essaie de l'exécuter en tant qu'utilisateur www-data
, il s'en plaint cannot access /var/log/apache2/access.log: Permission denied
.
Dans /usr/share/doc/awstats/README.Debian
ce paragraphe:
Par défaut, Apache stocke (depuis la version 1.3.22-1) les fichiers journaux avec uid = root et gid = adm, vous devez donc soit ...
1) Modifiez les droits des fichiers journaux dans /etc/logrotate.d/apache afin que www-data ait au moins un accès en lecture.
2) Comme 1) mais passez à un utilisateur spécifique et utilisez la fonction suEXEC d'Apache pour exécuter le même utilisateur (et modifiez également le droit de / var / lib / awstats ou utilisez un autre répertoire). C'est plus compliqué, mais les journaux ne sont généralement pas accessibles au serveur (ce qui était probablement le point par défaut d'Apache).
3) Changez awstats.pl en groupe adm (mais attention, vous prenez alors le risque d'autoriser un script CGI à accéder aux trucs d'administration sur la machine!).
J'irais avec 1, mais quelles sont les autorisations recommandées à accorder?
la source
chown www-data:www-data <yourFile>
et puischmod 655 <yourFile>
.chmod 755 /var/log/apache2
etchmod 644 access.log
, mais je voudrais un «c'est le meilleur pratice » -kind de réponse :) Merci pour carillonner à bien!Réponses:
Si vous optez pour le point 1 et qu'il est indiqué que www-data devrait avoir au moins une autorisation de lecture, la recommandation est d'accorder uniquement la lecture.
Vous pouvez modifier la ligne (dans le fichier logrotate):
à
Pour accorder à tous les utilisateurs (www-data inclus) une autorisation de lecture.
Vous devrez modifier les autorisations des fichiers existants dans / var / log / apache2 / pour correspondre à ce paramètre
Ensuite, tous les fichiers peuvent être lus par tous les utilisateurs et tous les fichiers que logrotate créera à l'avenir auront les autorisations appropriées
la source
Dans la plupart des configurations:
les paramètres de propriété et d'autorisations se trouvent dans le fichier /etc/logrotate.d/apache2 , dont le contenu est:
La solution la plus simple consiste à:
1) Remplacez " create 640 root adm " par " create 644 root adm " dans /etc/logrotate.d/apache2 à l' aide de votre éditeur de texte préféré ou, si vous devez tout scripter:
2) Modifiez les autorisations sur /var/log/apache2/access.log et /var/log/apache2/error.log sur 644 .
3) Redémarrez apache.
J'ai vu des gens ajouter les www-data au groupe d'utilisateurs adm comme solution. C'est beaucoup plus d'autorisations pour www-data que je ne suis à l'aise avec.
D'autres options plus sécurisées impliquent la création d'un nouvel utilisateur et de nouveaux groupes pour awstats et l'exécution et l'exécution de awstats en tant que ce nouvel utilisateur / groupe.
la source
/var/log/apache2
tout ce qui se trouve en dessouswww-data
et de rendre les fichiers lisibles en groupe. C'est un peu moins permissif que de les rendre lisibles dans le monde entier.