2010-02-07 23 views
8

Estoy en un paquete de alojamiento compartido en una pila LAMP sin acceso a shell.403 Prohibido en enlace simbólico en raíz web

Puedo crear enlaces simbólicos usando la función symlink() de PHP.

Digamos que mi web raíz es /home/www/user1/public

Digamos que tengo un directorio real llamado /home/www/user1/public/real_dir

Y puedo crear un enlace simbólico llamado /home/www/user1/public/fake_dir señalando real_dir

qué iba a conseguir un 403 Forbidden al intentar acceder al www.mydomain.com/fake_dir pero no al intentar acceder al www.mydomain.com/real_dir?

No debería ser un problema de derechos porque cuando creo un archivo en PHP, puedo acceder a eso de acuerdo.

Intenté cambiar FollowSymlinks de vez en cuando en .htaccess (estaba encendido), pero no tuve suerte.

¿Podría ser que FollowSymlinks se defina como no sobrescribible en un archivo .htaccess? ¿O hay algo más que tener en cuenta al trabajar con los enlaces simbólicos en Apache?

Respuesta

4

Apache se debe configurar para permitir el acceso al directorio en el sistema de archivos. Esto debe hacerlo un administrador del sistema insertando una directiva < Directory> en los archivos de configuración de apache (httpd.conf).

Dado que el directorio real está dentro de la raíz web, debe ser accesible, pero FollowSymLinks puede no haber sido habilitado para el directorio; esto también debe agregarse a la directiva < Directorio>.

Ver http://httpd.apache.org/docs/2.0/mod/core.html#directory

+0

Entonces, si no está configurado de esa manera, y 'FollowSymlinks' está desactivado, intentar acceder a un enlace simbólico (aunque el destino también esté en la raíz web) aumentará un 403? ¿Es este el motivo? –

+0

Lo siento, simplemente volví a leer su pregunta y vi que el directorio real está en la raíz web, por lo que será accesible, sin embargo, es posible que FollowSymLinks no esté habilitado. He actualizado mi respuesta para reflejar esto. – Sam

+0

-1 Esto todavía no es una respuesta a la pregunta de OP. OP parece perfectamente consciente de la opción 'FollowSymlinks'. Pero pregunta si la configuración de '.htaccess' se puede anular desde httpd.conf. –

0

Esto es posible problema de seguridad de SELinux.

cat/selinux/enforce si el valor es 1, ajústelo a 0, luego reinicie apache.

+0

El OP no tiene acceso de shell, como se indica en la primera línea de esta pregunta. –