Como permitir o acesso a um diretório e não permitir acesso a um subdiretório no Apache?

3

Eu fiz esta pergunta na lista de discussão do apache , mas não recebi a resposta eu quero.

Eu quero permitir um diretório "/ var / www / html / ldap" para dois usuários de acordo com os IPs (192.168.1.2 192.168.1.7):

<Directory /var/www/html/ldap>
      Order allow,deny
      Allow from 192.168.1.2 192.168.1.7
      Satisfy any
      AuthName "LDAP Authentication"
      AuthType Basic

      AuthBasicProvider ldap
      AuthzLDAPauthoritative off
      AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
      Require valid-user
</Directory>

mas eu não quero permitir um subdiretório para 192.168.1.7 (eu quero que seja permitido apenas para 192.168.1.2):

Eu tentei adicionar:

<Directory /var/www/html/ldap/manager>
      Order allow,deny
      Allow from 192.168.1.2
      Satisfy any
      AuthName "LDAP Authentication"
      AuthType Basic

      AuthBasicProvider ldap
      AuthzLDAPauthoritative off
      AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
      Require valid-user
</Directory>

mas parece que 192.168.1.7 pode chegar ao diretório manager porque é parte do diretório ldap, como posso proibir isso?

ATUALIZAÇÃO:

como Raza sugere que eu tentei algo assim:

para o diretório principal:

 <Directory /var/www/html/ldap>
          Order allow,deny
          Allow from 192.168.1.2 192.168.1.7
          Satisfy any
          AuthName "LDAP Authentication"
          AuthType Basic

          AuthBasicProvider ldap
          AuthzLDAPauthoritative off
          AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
          Require valid-user
    </Directory>

para o subdiretório:

 <Directory /var/www/html/ldap/manager>
          Order Deny,Allow
          Deny From All
          Allow From 192.168.1.2
          Satisfy any
          AuthName "LDAP Authentication"
          AuthType Basic

          AuthBasicProvider ldap
          AuthzLDAPauthoritative off
          AuthLDAPURL ldap://192.168.1.3/dc=example,dc=com?uid?sub?(objectClass=*)
          Require valid-user
    </Directory>

Nota:

Eu não quero ser solicitado para autenticação (LDAP AUTH) para 192.168.1.2 e 192.168.1.7 em ambos os diretórios (main-directory e subdiretório).

    
por Networker 23.07.2014 / 20:30

2 respostas

3

Que tal usar uma regra de reescrita para impedir que o sistema 192.168.1.7 atinja o subdiretório?

RewriteEngine on
RewriteCond   %{REMOTE_ADDR}   ^192\.168\.1\.7$  [NC]
RewriteCond   %{REQUEST_URI}   ^/ldap/manager/.* [NC]
RewriteRule   ^(.*)$           -                 [R=404,L]

Editado a partir da resposta original; isso agora envia de volta um código de erro 'proibido'.

    
por 29.07.2014 / 11:56
3

Você pode criar .htaccess com a seguinte opção, arquivo em um diretório que não deseja mostrar a listagem.

     Order Deny,Allow
     Deny From All
     Allow From 192.168.1.2

etapas:

cd /var/www/html/ldap/manager
vi .htaccess (use your favorite editor)
copy/past the following :
    Order Deny,Allow
    Deny From All
    Allow From 192.168.1.2
    
por 23.07.2014 / 20:34