<Location>
corresponde a URLs, portanto, o URL webdav/myuser
é coberto apenas pela primeira regra com a restrição mais permissiva. Você precisaria mudar para <Directory>
ou alterar o segundo bloco para <Location /webdav/myuser>
Na raiz (/ var / www / webdav /) do meu compartilhamento do webdav eu tenho duas pastas:
valid
myuser
Gostaria que a pasta valid
fosse acessível a qualquer usuário válido. Então eu fiz:
Alias /webdav /var/www/webdav/
<Location /webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
</Location>
e gostaria que a pasta myuser
fosse acessada somente por myuser
, então:
Alias /myuser /var/www/webdav/myuser
<Location /myuser>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require user myuser
</Location>
Problema: Outro usuário (não myuser) está obtendo acesso ao webdav / myuser /.
O que estou fazendo de errado?
<Location>
corresponde a URLs, portanto, o URL webdav/myuser
é coberto apenas pela primeira regra com a restrição mais permissiva. Você precisaria mudar para <Directory>
ou alterar o segundo bloco para <Location /webdav/myuser>
Ainda estou curioso sobre como a abordagem <Directory>
seria usada pelo @Sven.
Mas o seguinte parece resolver o problema:
Alias /webdav /var/www/webdav/
<Location /webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
</Location>
Alias /webdav/myuser /var/www/webdav/myuser
<Location /webdav/myuser>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require user myuser
</Location>