Permessi file non corretti per LAMP [chiuso]

-1

Ho installato Apache 2.4.6 sul mio server e ho la seguente configurazione dell'host virtuale:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName foobar1.com
    DocumentRoot /home/john/foobar1/foobar1.com
    <Directory /home/john/foobar1/foobar1.com>
        Options -Indexes +FollowSymLinks +MultiViews
        Require local
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /home/john/foobar1/logfiles/error.log
    LogLevel warn
    CustomLog /home/john/foobar1/logfiles/access.log combined
</VirtualHost>

Ogni volta che provo a visualizzare link (ho aggiunto 127.0.0.1 foobar1.com al mio file hosts) ottengo il seguente errore: [core:error] [pid 23238] (13)Permission denied: [client 127.0.0.1:49853] AH00035: access to / denied (filesystem path '/home/john/foobar1/foobar1.com') because search permissions are missing on a component of the path

Il file appartiene all'utente "john" e si trova anche nel gruppo "john". Le autorizzazioni che ho usato sono: chmod -R go-rwx (per la radice del documento) chmod -R g + rw (per la radice del documento) chmod -R o + r (per la radice del documento)

Posso visualizzare il mio sito solo quando imposto i permessi del file su 777 ... qualcosa che so è un grosso punto debole della sicurezza. Perché posso visualizzare il mio sito solo con l'impostazione 777?

    
posta John Crawford 01.09.2013 - 12:04
fonte

1 risposta

1

Questo perché il daemon Apache non è in esecuzione come utente john . Il demone Apache, almeno sui sistemi RHEL / Fedora, sono in esecuzione come apache dell'utente.

Per leggere effettivamente i file nella tua directory DocumentRoot , i permessi della directory di DocumentRoot devono essere drwxr-xr-x. .

Inoltre, sii avvisato che se il tuo server ha Selinux abilitato, la tua cartella DocumentRoot molto probabilmente ha il contesto Selinux sbagliato che bloccherà l'accesso di Apache alla directory. È buona norma conservare tutte le directory DocumentRoot in /var/www (per le distro basate su RHEL, altre distro potrebbero avere radici Web diverse). Un'alternativa sarà cambiare il contesto Selinux della directory DocumentRoot con chcon -R -t httpd_sys_content_t /home/john/foobar1/foobar1.com .

    
risposta data 01.09.2013 - 12:11
fonte

Leggi altre domande sui tag