Tengo ubuntu 16.04 LTS y estoy ejecutando mi aplicación web php a través de Apache (php-fpm). Estoy poco preocupado por los archivos y permisos de directorio. Muchos enlaces sugieren que debo mantener el propietario www-data o apache (depende del usuario de mi servidor web) para el directorio de mi aplicación web. Todos los directorios deben tener 755 y todos los archivos deben tener 644. Los archivos con 644, el Directorio con 755 y el propietario del directorio de la aplicación web (recursivo) son root o ubuntu, me parece bien, pero mi aplicación yii no puede crear archivos en tiempo de ejecución y activos, por lo que no puedo iniciar sesión tan bien como los usuarios no pueden cargar archivos en directorios de carga.
Si le doy 777 recursivo al directorio de subidas, comienza a funcionar bien, pero un intruso puede cargar un archivo malicioso en él y todos los archivos son 777, por lo que simplemente puede eliminarlos todos.
Si le doy 777 a la carpeta solamente, no los archivos, entonces los usuarios no pueden modificar el archivo cargado, es decir, una funcionalidad, por lo que la funcionalidad no funciona, por razones de seguridad está bien.
Si hago propietario de www-data de las subidas del directorio 755, significa que el usuario puede cargar archivos, modificar archivos porque www-data tiene permiso de lectura y escritura para el directorio y el contenido, pero el intruso también tiene el mismo permiso para su archivo malicioso. . En este caso, también puede eliminar todos los archivos.
Resumen Si conservo 755 para todos los archivos y 644 para todos los archivos con propietario www-data del directorio de la aplicación web de forma recursiva. Todo funciona bien, no necesito dar 777 a las cargas, el tiempo de ejecución o los recursos, puede crear archivos dentro de estos directorios cuando el usuario utiliza la aplicación web, pero un intruso también puede crear archivos php en estos directorios con el propietario de www-data, lo que significa: También tiene permiso completo de modificación a todos los archivos de todos los directorios. No quiero manejar esto en Apache para hacer que la ejecución de archivos php esté prohibida dentro de las cargas. Para diferentes aplicaciones web, este nombre es diferente y muchas aplicaciones usan múltiples directorios para cargar. No quiero negar todo para archivos php de carpetas subidas. Debe haber permisos correctos que podrían manejar esto mejor.
Por favor, sugiera.