2010-02-07 16 views
8

Sono su un pacchetto di hosting condiviso su uno stack LAMP senza accesso alla shell.403 Forbidden on symlink in web root

È possibile creare collegamenti simbolici tramite la funzione PHP symlink().

Diciamo che la mia radice web è /home/www/user1/public

Diciamo che ho una vera e propria directory chiamata /home/www/user1/public/real_dir

E crea un link simbolico chiamato /home/www/user1/public/fake_dir indicando real_dir

Perché dovrei avere un 403 Forbidden quando si tenta di accedere a www.mydomain.com/fake_dir ma non quando si tenta di accedere a www.mydomain.com/real_dir?

Non dovrebbe essere un problema di diritti perché quando creo un file in PHP, posso accedervi.

Ho provato a spegnere e riaccendere FollowSymlinks in .htaccess (era acceso), ma senza fortuna.

Potrebbe essere che FollowSymlinks è definito come non sovrascrivibile in un file .htaccess? O c'è qualcos'altro da sapere quando si lavora con Symlink in Apache?

risposta

4

Apache deve essere configurato per consentire l'accesso alla directory sul filesystem. Questo deve essere fatto da un amministratore di sistema inserendo una direttiva Directory> < nei file di configurazione di apache (httpd.conf).

Dato che la directory reale è all'interno della web root che devono essere accessibili, ma FollowSymLinks potrebbero non sono stati abilitati per la directory - questo deve anche essere aggiunto alla direttiva < Directory>.

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

+0

Quindi se non è configurato in questo modo e 'FollowSymlinks' è disattivato, provare ad accedere a un collegamento simbolico (anche se il target è anche nella web root) genererà un 403? È questa la ragione? –

+0

Mi spiace, ho appena riletto la tua domanda e ho visto che la vera directory si trova nella web root, quindi sarà accessibile, tuttavia FollowSymLinks potrebbe non essere abilitato. Ho aggiornato la mia risposta per riflettere questo. – Sam

+0

-1 Questa non è ancora una risposta alla domanda dell'OP. OP sembra perfettamente consapevole dell'opzione 'FollowSymlinks'. Ma chiede se l'impostazione di questo da '.htaccess' può essere annullata da httpd.conf. –

0

Questo è possibile problema di sicurezza SELinux.

cat/selinux/enforce se il valore è 1, impostarlo su 0, quindi riavviare apache.

+0

L'OP non ha accesso alla shell, come indicato nella prima riga della sua domanda. –

Problemi correlati