Configuración óptima de propietario/permisos para un directorio de sitio web que se ejecuta en Apache

Configuración óptima de propietario/permisos para un directorio de sitio web que se ejecuta en Apache

Estoy ejecutando Ubuntu en mi servidor virtual y he configurado bastantes configuraciones relacionadas con mi tema. Pero no estoy realmente seguro de si está configurado correctamente.

Mi configuración actual es la siguiente:

Apache2:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid

Leí artículos sobre cómo agregar un usuario adicional, por ejemplo, sudo adduser apacheque ejecuta el servidor Apache, entonces, ¿cuál es una buena opción?

Directorios de sitios web:

drwxr-xr-x 5 www-data:www-data 4.0K Feb  5 04:16 mysite/

Este directorio, por ejemplo, se encuentra en /var/www. La configuración de mi carpeta dentro del directorio es chmod 755y mis archivos son 644. ¿Debería ser propiedad de www-data o de mi nombre de usuario?

Me alegraría que pudiera brindarme algunas de las mejores prácticas al respecto. ¡Gracias por el consejo!

Respuesta1

Lo más importante que he aprendido es no darle a Apache acceso de escritura a nada que no necesite escribir también, por ejemplo, caché, usuario o directorios de descarga en los que pueda cargar cosas.

Así que tome posesión de todo con algo como sudo chown user:useren el directorio del sitio web y otorgue a la ootra parte los permisos necesarios...

Reemplace user:usercon un usuario y grupo que desee.

En los directorios puedes usar un comando como:

sudo chmod o+rx /var/www/'directory' #make directory read and executable for other
sudo chmod o-wx /var/www/'directory'/'files' #remove write and execute from files
sudo chmod o+r  /var/www/'directory'/'files' #add read to files

También puedes usar un findcomando que sea un poco avanzado pero que facilite un poco el trabajo, algo como (después de haber poseído los archivos con):

chown user:user /var/www/ -R # this is only an example.. 
  • directorios
find /var/www/ -type d -exec sudo chmod o+rx {} \; 
  • archivos
find /var/www/ -type f -exec sudo chmod o-wx {} \;
find /var/www/ -type f -exec sudo chmod o+r {} \;

Intenté ser lo más descriptivo posible. Puedo explicar más si es necesario. Esto habla de permisos aproximadamente a la mitad:

http://www.linuxforums.org/forum/servers/5270-apache-conf-html-permissions.html

información relacionada