2013-01-20 9 views
6

Ho installato apache 2.2 in centos 6. Tutto ha funzionato correttamente quando la cartella apache era nella posizione predefinita /var/www/html. Quindi ho configurato un host virtuale nella cartella home degli utenti. Dopo che apache ha iniziato a mostrare Forbidden You don't have permission error quando ho provato a passare a localhost o 127.0.0.1 dal browser.Non si dispone di errore di autorizzazione in Apache in CentOS

questo è il codice che ho usato in httpd.conf

<VirtualHost *:80> 
     DocumentRoot "/home/anjan/workspace/mfs" 
     ServerName anjan-centOS 
     <Directory "/home/anjan/workspace/mfs"> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride All 
       Order Deny,Allow 
       Allow from all 
     </Directory> 
</VirtualHost> 

Ho anche disabilitato SElinux come è stato detto in alcuni articoli, ma invano. Se qualcuno potesse aiutarmi sarebbe molto apprezzato.

+0

Questo sembra un problema di autorizzazioni di base, non un problema di Apache. In quale utente viene eseguito Apache? Quell'utente ha accesso a '/ home/anjan/workspace/mfs'? – larsks

+1

Un buon modo per controllare se apache può leggere la directory è 'sudo -u apache ls/home/anjan/worskapce/mfs' –

+0

@CoreyHenderson Ho cambiato il permesso di file di ogni file e cartella in' -rw-rw-rw -'ma ancora senza fortuna. Tutte le idee perché? – th1rdey3

risposta

6

Ho risolto il problema. Dopo aver interferito con il permesso del sistema ho scoperto che il user "anjan" che è proprietario di /home/anjan aveva un'autorizzazione di lettura/scrittura/esecuzione su /home/anjan ma che lo group "anjan", creato quando user "anjan" era stato creato, non aveva alcuna autorizzazione.

ls -l /home/ 

mostrato

drwx------. 28 anjan anjan 4096 Jan 21 13:19 anjan 

così ho cambiato il permesso con questo comando

chmod -R 770 /home/anjan 
ls -l /home/ 
drwxrwx---. 28 anjan anjan 4096 Jan 21 13:19 anjan 

ho scoperto sotto il quale utente il mio apache è in esecuzione da this thread. Stava funzionando sotto user "apache"

così ho aggiunto user "apache" a group "anjan" con questo comando.

usermod -G anjan,apache apache 

dopo che voilà. Non più Errore proibito.

P.S. Ho fatto tutto come utente root.

UPDATE Sembra che il collegamento fornito sia stato interrotto ora. Heres un altro.

Giusto per essere sicuri (per evitare futuri collegamenti interrotti), copiare il comando qui. In tipo terminale -

ps axo user,group,comm | grep apache 
+0

Completamente funzionato per RHEL! Questo era il collegamento mancante. Grazie per questo! – rcd

1

Questo è (per me almeno) un design dubbio. Significa fondamentalmente che l'utente Apache ha accesso WRITE a tutti i file dell'utente inclusi i segreti, ad esempio le chiavi ssh.

Non divertente se un cracker attacca l'apache.

Una modifica semplice sarebbe durante l'esecuzione come 'Anjan':

chmod -R g-rwx ~ # undo the unsafe -R first 
chmod g+rx ~ ~/workspace 
chmod -R g+rx ~/workspace/mfs 

Se apache è un membro del gruppo 'Anjan'.

Il mio consiglio è di usare ACL: s se il filesystem lo supporta.

SELinux è in esecuzione?Dovrebbe essere così e se è ancora il caso che la politica di SELinux blocchi l'accesso di apache a workspace/mfs un numero di messaggi da sealert dovrebbe essere evidente in var/log/messages. Questo problema viene in genere risolto con un uso giudizioso di setsebol.

disabilitare SELinux perché qualcosa non funziona e raccomandando che il metodo è njaa ....

Il problema originale è che corre Apache come se stessa e causa di questo è accasciato in altra categoria nel calcolo delle autorizzazioni.

chmod o+rx ~anjan/ ~anjan/workspace/ ~anjan/workspace/mfs 

dovrebbe essere sufficiente.

CentOS 6 è una versione gratuita (come nella birra gratis) di RedHat Enterprise Linux e come tale il documento di RedHat https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/ è una necessità.

+0

Hai fatto un punto valido. Ma nel mio caso stavo impostando un ambiente di sviluppo è per questo che ho inserito i codici nella home directory degli utenti. Ma per la produzione penso che non sia una buona idea inserire i codici nella home directory di qualsiasi utente. – th1rdey3

Problemi correlati