Permissões do Apache httpd

5

Eu criei um diretório

/xyz/www

Com as seguintes permissões:

-rw-r--r--. 1 myuser developers

Eu editei meu http.conf:

DocumentRoot "/xyz/www/"
<Directory "/xyz/www/">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Eu recebo erro 403: You don't have permission to access / on this server.

Procurando nos registros:

(13)Permission denied: Can't open directory for index: /xyz/www/

Eu tentei recursivamente adicionar 777 permissões, mas ainda tenho o mesmo problema.

    
por DD. 06.06.2012 / 13:35

6 respostas

12

O que você precisa fazer é copiar o mesmo contexto de segurança / var / www / html. Para fazer isso:

# ls -la --context /var/www/html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t .
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t ..
-rw-r--r-- root root user_u:object_r:httpd_sys_content_t index.html

Então você tem que configurá-lo para o seu desejo DocumentRoot da seguinte forma:

# chcon -R system_u:object_r:httpd_sys_content_t /xyz/www
    
por 06.06.2012 / 17:34
3

O seu diretório de destino é NTFS ou ext3? Por favor, verifique o contexto SELinux do diretório de destino usando

ls -a --context /target/directory

Se o contexto do diretório de destino é igual

system_u:object_r:fusefs_t:s0

usando

setsebool -P httpd_use_fusefs on

pode funcionar para você, já que pode ser apenas um problema booleano para o sistema de arquivos. Por favor, confirme os aspectos de segurança dos booleanos, pois não os tenho conhecimento deles.

SELinux Booleanos

    
por 15.09.2012 / 17:11
2

Os diretórios normalmente exigem a permissão x para que os processos acessem arquivos dentro deles. Com as permissões que você tem atualmente, você poderá ls do diretório, mas não cd . Como o diretório é de sua propriedade, o Apache estará em execução com as permissões da terceira coluna.

Experimente chmod +x /xyz/www .

Se você ainda tiver problemas, verifique também as permissões em /xyz/ .

    
por 06.06.2012 / 13:42
1

Você também deve adicionar a seção <Directory /xyz/www> à configuração do apache com algo como

Order allow,deny
Allow from all
    
por 06.06.2012 / 13:38
1

Eu tive o mesmo problema - o comando chcon corrigiu-o.

Eu estava criando um servidor de instalação e queria minhas imagens em /export/install/<image> com um link simbólico na raiz do documento. Eu tinha certeza de que minhas configurações de httpd.conf estavam corretas.

Os diretórios & os arquivos eram 755 & 644 , respectivamente, e o apache usuário pode atravessar a árvore, então o que foi?

Eu usei um comando semelhante ao acima, mas usei a opção reference :

% chcon -R --reference=/var/www/html /export

Poderia ter acabado de desligar selinux , mas quero aprender a viver com isso.

    
por 30.03.2013 / 02:09
0

link

The 'chcon' command may be used to change SELinux security context of a file or files/directories in a similar way to how 'chown' or 'chmod' may be used to change the ownership or standard file permissions of a file.

chcon -Rv --type = httpd_sys_content_t / xyz / www

    
por 06.06.2012 / 17:24