Creo que ya paso tiempo, y a lo mejor ya …

Comment on ¿ Cómo saber el usuario que ejecuta apache desde PHP ? by Carlos Sánchez.

Creo que ya paso tiempo, y a lo mejor ya lo solucionaste el problema, como dices tienes un problema lógico muy grande, lo que no entiendo es porque el dueño es ftp, no importa que lo hallas subido por ftp. Ahora cuando visualizas un archivo desde internet (el navegador) en realidad quien esta viendo el archivo es el usuario “www-data” o a veces wwwdata ese usuario depende del sistema operativo que manejes (la version de apache que manejes no siempre trabaja con el mismo usuario), cuando tu generas una archivo y tiene permisos, en realidad son 777, Dueño-Grupo-Otros, el dueño como viste en tu caso era root o era ftp, el grupo era igual a veces root a veces ftp, ¿esto porque?, Cuando creas un usuario en linux, en realidad creas 2 cosas un usuario y un grupo, un usuario y un grupo con el mismo nombre donde el unico integrante es el usuario con el mismo nombre, ¡asi es se cran los 2!, cuando creas un archivo de cualquier forma por defecto el dueño de dicho archivo va a ser el usuario que lo creo y el grupo es el grupo que contiene dicho usuario solamente, los permisos para el resto de los usuarios esta en otros.

En tu caso www-data esta en otros entonces el permiso que importa es el ultimo incluso puedes ponerle chown 007 y va a accesar igual que el 777, si tu vas crear contenido dentro de dicha carpeta mediante php debe de tener permiso 7, no hay de otra (en realidad www-data o apache en tu caso, porque quien accesa es el navegador al final apache es el que accesa a dicho archivo). el donde pones el 7 depende de ti si haces que el dueño de la carpeta sea tu usuario de apache entonces los permisos pueden ser 700, porque el dueño seria www-data, si www-data lo metes en un grupo y quieres que el grupo tenga los permisos 070, o simplemente dejas a www-data en “otros” le pones 007, en donde este el usuario no importa, de eso te encargas tu.

Que un usuario tenga 2 dueños es raro e incongruente, para eso existen los grupos, pero aun asi tu puedes manejar todos los usuarios con los 3 permisos 777, solo es que sepas como hacerlo y no te enredes tanto, una carpeta para darle acceso y no se cree en el necesita permisos 5 y un archivo para accesar a el necesitas 4, el 7 solo es cuando el programa va a crear archivos dentro de esa carpeta, por cuestion de seguridad va fuera de tu dominio pero eso es otra historia.

Tu problema es que no sabes como se manejan los permisos de forma efectiva, y el 777 o 007 no importa como lo tengas pero en tu caso que es cache, es obligatorio la seguridad seria en la ubicación de dicha carpeta no tanto en el permiso.

¡Espero sirva, tarde pero sin sueño!