Negar todos os arquivos em um determinado diretório usando arquivos

5

Estou tentando proteger o módulo mod_userdir no apache.

Atualmente, a estrutura de diretórios dos sites dos meus usuários é

/ home / {user} / domínios / {domain} / public_html / site

O problema é que vários dos meus usuários armazenam arquivos que não devem ser armazenados no diretório / domains / (arquivos privados), mas sim, e id preferem trabalhar em volta dele para fazê-los se mover eles.

Basicamente eu neguei acesso a todos os diretórios em / {domain} /, exceto os arquivos public_html, no entanto, ainda podem ser visualizados.

Aqui está minha configuração de usermod.conf.

<IfModule mod_userdir.c>
    UserDir /home/*/domains
    UserDir disabled root
    <Directory /home/*/domains/*/*>
            Order allow,deny
            Deny from all
    </Directory>

    <FilesMatch /home/*/domains/*/*>
            Order deny,allow
            Deny from all
    </FilesMatch>
    <Directory /home/*/domains/*/public_html>
            Order allow,deny
            Allow from all
    </Directory>

    <Directory /home/*/domains>
            AllowOverride FileInfo AuthConfig Limit Indexes
            Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
            <Limit GET POST OPTIONS>
                    Order allow,deny
                    Allow from all
            </Limit>
            <LimitExcept GET POST OPTIONS>
                    Order deny,allow
                    Deny from all
            </LimitExcept>
    </Directory>

Você pode ver como tentei remover o acesso aos arquivos em / {domain} /, mas isso não está funcionando.

Qualquer ajuda seria apreciada.

    
por Brad Morris 29.07.2011 / 20:16

2 respostas

1

Talvez o seu problema esteja na diretiva FilesMatch; O FilesMatch usa o regex para corresponder as diretivas, portanto, para obter o que você deseja, você deve escrever:

<FilesMatch "/home/.*/domains/.*/.*">
    Order deny,allow
    Deny from all
</FilesMatch>
    
por 29.07.2011 / 20:28
1

Eu não acredito que você possa especificar um caminho em qualquer uma das diretivas de arquivos. E também não parece que você realmente precisa da diretiva FilesMatch, já que você não está realmente usando nenhum padrão complexo para exigir o regex. Eu costumo colocar minhas diretivas de arquivos dentro do diretório para simplificar.

Isso pareceu funcionar para mim com uma configuração semelhante à sua. Em / var / www / domains existe 1/2 / e 3 / each com vários arquivos html. Nenhum deles está acessível agora.

<Directory /var/www/domains/*/>
        Options None
        AllowOverride None
        Order Allow,Deny
        Deny from All
        <Files *>
                Order Allow,Deny
                Deny from All
        </Files>
</Directory>
    
por 29.07.2011 / 21:48