PHP script permiso denegado

Imagen de Freestate

Forums: 

Hola a todos.

Recientemente instale un servidor web en un CentOS 5.2 y todo estaba funcionando muy bien hasta que se tuvo la necesidad de implementar un portal en el cual hay un modulo para hacer uploads de imagenes (jpeg) al sitio. Al hacer el upload apache me indicaba un error de permisos de escritura sobre el folder donde se debian almacenar las imagenes. Despues de checar los permisos me di cuenta del problema


ls -la fotos

drwxr-xr-x 2 ftpuser ftpgroup

Solo el usuario ftpuser tiene permisos de escritura y el script de php lo ejecuta otro usuario (apache o nobody) supongo, y es por ello que me bota un permiso denegado en el error_log.

Claro que cuando le pongo 777 al folder todo funciona bien... pero no es el caso, no quiero dejar el folder con esos permisos.

Despues de investigar un poco lei que necesitaba php suEXEC del cual ya casi no encontre informacion de como implementarlo. O bien suPHP, del cual si encontré informacion. Esto para que los scripts se ejecuten con el ID del usuario dueño del script... en este caso ftpuser y de esta manera tenga permisos de escritura.

Pero despues de "instalarlo" no note ningun cambio y el problema siendo el mismo.

Por otro lado lei que tengo que tener a php instalado como cgi en lugar de tenerlo como modulo del httpd para que suPHP funcione.

Despues lei que no es aconsejable tener a php instalado como cgi que porque consume mas recursos, que se cuelga a veces, en fin, puntos de vista contradictorios... es por eso que recurro al foro.

¿Que me aconsejan hacer para resolver mi problema?... Cualquier comentario es bien recibido.

Saludos!

Para esa clase de directorio

Imagen de acl

Para esa clase de directorio en que quieres que todo mundo pueda escribir, puedes usar el sticky bit. Es la misma técnica que se usa para los permisos de /tmp. Para activar sticky corre 'chmod 1777 /ruta/al/directorio' y con ellos usuario podrán todos escribir dentro, pero solo el usuario que creó el archivo (el dueño) lo podrá borrar. Otra forma podría ser que requieras que el usuario se autentique antes de hacer el upload y tendrías una carpeta para cada usuario donde podrían subir sus archivos.