2008-08-11 24 views
6

De acuerdo con la PHP Safe Mode Docs en safe_mode_gid:¿Qué es PHP GID en modo seguro?

Por defecto, el modo seguro se compara un UID comprobar al abrir archivos. Si desea relajar esto en una comparación de GID, active safe_mode_gid. Si se debe usar UID (FALSE) o GID (TRUE) para verificar el acceso al archivo.

Para un script PHP que se ejecuta en un servidor web, ¿cuál es la diferencia entre un control UID (identificador de usuario) y un control GID (identificador de grupo)?

Respuesta

1

verificación Modo Seguro UID se utiliza para evitar que los usuarios accedan a los archivos de otras personas. GID se usa para evitar que un GRUPO de usuarios acceda a otros archivos GROUPS.

2

Esto sólo se permitirá que un poco más de flexibilidad en la configuración de su servidor web. Usando safe_mode_gid, usted debe ser capaz de ejecutar PHP individuo/httpd procesos para cada usuario en el sistema, sino dar a cada proceso la capacidad de leer algunos archivos compartidos, siempre y cuando todos ellos están ejecutan como el mismo grupo (GID) y los archivos compartidos son propiedad de este grupo.

2

Por ejemplo el nombre de usuario y de grupo del servidor web Apache es : www,

si configura su UID para comprobar, el proceso php solamente tendrá acceso a cualquier fichero titularidad del usuario apache . Así que si usted tiene otro servidor web que se ejecuta en el sistema, por ejemplo Tomcat con el nombre de usuario y grupo de Tomcat: www, todos los archivos creados por el proceso de Tomcat no ser accesibles por php, ya que es propiedad del usuarioTomcat .

Pero si en lugar de utilizar cheque GID, los archivos creados por el proceso de Tomcat serán legibles por el proceso php porque el pertenecer al mismo grupo www

1

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

Cuestiones relacionadas