mayoría de las respuestas no son del todo cierto o detallada .. .No olvide safe_mode
comprueba si el propietario de la SCRIPT coincide con el propietario del archivo que desea acceder. No tiene nada que ver con el usuario httpd: grupo.
Por ejemplo, su httpd podría ejecutarse como apache:daemon
, su script es propiedad de some_user:users
y el archivo que desea escribir en some_other_user:users
.
Si no activa safe_mode_gid
, el guión no será capaz de acceder al archivo porque los usuarios no coinciden.
Este es un fenómeno común cuando una secuencia de comandos crea una carpeta y luego trata de crear archivos dentro de esta carpeta.
creación La carpeta tiene éxito porque la carpeta principal es propiedad del mismo usuario que el script de crearlo (lo más probable, que fue subido por "some_user").
PERO, la carpeta creada ahora es propiedad del usuario httpd, digamos apache:daemon
Si safe_mode
es activo, usted no será capaz de crear un archivo dentro de esta carpeta ya que el dueño del script (some_user
) doesn no coincide con el propietario de la carpeta (apache
).
Incluso si activa safe_mode_gid
, no funcionará porque el grupo de scripts es "usuarios" mientras que el grupo de carpetas es "daemon".
La mejor solución es establecer el mismo grupo para los usuarios de ftp y httpd. No olvide que también debe permitir el acceso de escritura al grupo en la carpeta "grabable", y esto es menos seguro ya que todos sus usuarios están en el mismo grupo, un proceso httpd podría acceder a los archivos de otros usuarios desde que se activa safe_mode_gid
.
En realidad, debe combinar safe_mode_gid
+ open_basedir
y configurar el inicio del usuario como valor open_basedire
para evitar esto.
HTH