AWStats: no se puede acceder a /var/log/apache2/access.log


14

Instalé awstats en mi nuevo servidor Ubuntu Lucid, pero cuando cron intenta ejecutarlo como usuario www-data, se queja de eso cannot access /var/log/apache2/access.log: Permission denied.

En /usr/share/doc/awstats/README.Debianeste párrafo hay:

De forma predeterminada, Apache almacena (desde la versión 1.3.22-1) archivos de registro con uid = root y gid = adm, por lo que debe ...

1) Cambie los derechos de los archivos de registro en /etc/logrotate.d/apache para que www-data tenga al menos acceso de lectura.

2) Como 1), pero cambie a un usuario específico y use la función suEXEC de Apache para ejecutarlo como el mismo usuario (y cambie también el derecho de / var / lib / awstats o use otro directorio). Esto es más complicado, pero los registros generalmente no son accesibles para el servidor (que probablemente era el punto predeterminado de Apache).

3) Cambie awstats.pl a group adm (¡pero tenga en cuenta que entonces corre el riesgo de permitir un acceso de script CGI a cosas de administrador en la máquina!

Yo iría con 1, pero ¿cuáles son los permisos recomendados para otorgar?


Pruebe esto, no puedo prometerle si funcionará: chown www-data:www-data <yourFile>y luego chmod 655 <yourFile>.
theTuxRacer

1
Bueno, para hacer que los awstats funcionen es suficiente chmod 755 /var/log/apache2y chmod 644 access.log, pero me gustaría un "esta es la mejor práctica", una especie de respuesta :) ¡Gracias por hablar!
Joril

Creo que tienes razón para ir con el n. ° 1 (solo con acceso de lectura, a menos que haya algo más que necesite). Esto da acceso a una cuenta de usuario limitada y no otorga nuevo acceso a nada más que eso.
belacqua

Respuestas:


8

Si va al punto 1 y dice que www-data debe tener al menos permiso de lectura, entonces lo recomendado es solo lectura.

Puede alterar la línea (en el archivo logrotate):

create 640 root adm

a

create 644 root adm

Para dar a todos los usuarios (datos de www incluidos) permiso de lectura.

Deberá cambiar los archivos existentes de permisos en / var / log / apache2 / para que coincida con esta configuración

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

Entonces todos los archivos pueden ser leídos por todos los usuarios y todos los archivos que logrota crear en el futuro tendrán los permisos adecuados


2
Y para que "todos los usuarios" puedan ver "/ var / log / apache2 /" hacer adicionalmente: chmod a + x / var / log / apache2 /
alfonx

6

En la mayoría de las configuraciones:

  • awstats se ejecuta como su usuario de apache www-data ;
  • los archivos de registro de apache son propiedad de root: adm y tienen permisos -rw-r ----- (también conocido como: chmod 640 ); y
  • la configuración de propiedad y permisos se puede encontrar en el archivo /etc/logrotate.d/apache2 , cuyo contenido es:

    /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 solución más simple es:

1) Cambie " create 640 root adm " a " create 644 root adm " en /etc/logrotate.d/apache2 usando su editor de texto favorito o, si tiene que escribir todo:

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

2) Cambie los permisos en /var/log/apache2/access.log y /var/log/apache2/error.log a 644 .

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

3) Reiniciar apache.

sudo apachectl -k graceful

He visto a personas agregar los datos de www al grupo de usuarios adm como una solución. Esos son muchos más permisos para www-data de los que me siento cómodo.

Otras opciones más seguras implican crear un nuevo usuario y grupos para awstats y hacer que los awstats se ejecuten / ejecuten como este nuevo usuario / grupo.


Otra solución sería cambiar el grupo /var/log/apache2y todo lo que está debajo de él www-datay hacer que los archivos sean legibles en grupo. Esto es un poco menos permisivo que hacerlos legibles en todo el mundo.
Reinier Post
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.