# Guia do Linux/Avançado/Apache/Especificando opções/permissões para as páginas
## Especificando opções/permissões para as páginas

As opções de restrição podem tanto ser especificadas nas diretivas <Directory>, <Location> ou <Files> quanto nos arquivos .htaccess (ou outro nome de arquivo de controle de acesso especificado pela opção AccessFileName do arquivo de configuração do Apache). Cada diretiva de acesso é especificada entre <tags> e devem ser fechadas com </tag> (como na linguagem HTML). As seguintes diretivas de acesso são válidas no Apache:

### Directory

    As restrição afetará o diretório no disco especificado, consequentemente a página armazenada nele. Por exemplo:
O acesso ao diretório /var/www será permitido somente ao computador com o endereço IP 10.1.0.1.

### DirectoryMatch

    Funciona como a diretiva <Directory> mas trabalha com expressões regulares como argumento. Por exemplo:
Bloqueará o acesso ao diretório /www e sub-diretórios dentro dele.

### Files

    As restrições afetarão os arquivos do disco que conferem com o especificado. É possível usar os coringas ? e * como no shell. Também podem ser usadas expressões regulares especificando um "~" após Files e antes da expressão. Por exemplo:
Bloqueia o acesso a todos os arquivos com a extensão .txt
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png (note que o "~" ativa o modo de interpretação de expressões regulares).

### FilesMatch

    Permite usar expressões regulares na especificação de arquivos (equivalente a diretiva <Files ~ "expressão">). Por exemplo:
Bloqueia o acesso a arquivos gif, jpg, jpeg, bmp, png.

### Location

    As restrições afetarão o diretório base especificado na URL e seus sub-diretórios. Por exemplo:
Bloqueia o acesso de todos os usuários ao diretório /security da URL (a explicação porque o acesso é bloqueado neste caso será explicado em [#s-s-apache-acesso-restr-autor Autorização, Seção 12.7.1]).

### LocationMatch

    Idêntico a diretiva <Location> mas trabalha com expressões regulares. Por exemplo:
Bloqueará URLs que contém a substring "/extra/data" ou "/special/data".
O uso das diretivas <Directory> e <Files> é apropriada quando você deseja trabalhar com permissões a nível de diretórios/arquivos no disco local (o controle do proxy também é feito via <Directory>), o uso da diretiva <Location> é adequado para trabalhar com permissões a nível de URL. A ordem de processamento das diretivas de acesso são processadas é a seguinte:
* A diretiva <Directory> (com exceção de <DirectoryMatch>) e os arquivos .htaccess são processados simultaneamente. As definições dos arquivos .htaccess substituem as de <Directory>)
* Expressões regulares de <DirectoryMatch>, <Directory>.
* <Files> e <FilesMatch> são processados simultaneamente.
* <Location> e <LocationMatch> são processados simultaneamente.
Normalmente é encontrado a opção Options dentro de uma das diretivas acima, a função desta diretiva é controlar os seguintes aspectos da listagem de diretórios:

### All

    Todas as opções são usadas exceto a MultiViews. É a padrão caso a opção Options não seja especificada.

### ExecCGI

    Permite a execução de scripts CGI.

### FollowSymLinks

    O servidor seguirá links simbólicos neste diretório (o caminho não é modificado). Esta opção é ignorada caso apareça dentro das diretivas <Location>, <LocationMatch> e <DirectoryMatch>.

### Includes

    É permitido o uso de includes no lado do servidor.

### IncludesNOEXEC

    É permitido o uso de includes do lado do servidor, mas o comando #exec e #include de um script CGI são desativados.

### Indexes

    Se não existir um arquivo especificado pela diretiva <DirectoryIndex> no diretório especificado, o servidor formatará automaticamente a listagem ao invés de gerar uma resposta de acesso negado.

### MultiViews

    Permite o uso da Negociação de conteúdo naquele diretório. A negociação de conteúdo permite o envio de um documento no idioma requisitado pelo navegador do cliente.

### SymLinksIfOwnerMatch

    O servidor somente seguirá links simbólicos se o arquivo ou diretório alvo tiver como dono o mesmo user ID do link. Esta opção é ignorada caso apareça dentro das diretivas <Location>, <LocationMatch> e <DirectoryMatch>.
Múltiplos parâmetros para Options podem ser especificados através de espaços. OBS1: A opção Options não tem efeito dentro da diretiva FILES. OBS2: Tanto faz usar maiúsculas quanto minúsculas nas diretivas de configuração, opções e parâmetros de configuração do Apache, a capitalização apenas ajuda a leitura e interpretação: SymLinksIfOwnerMatch (LinksSimbólicosSeDonoConferir). As opções especificadas para o diretório afetam também seus sub-diretórios, a não ser que sejam especificadas opções separadas para o sub-diretório:
Ao acessar o diretório /var/www/focalinux, as permissões usadas serão de /var/www, ao menos que uma diretiva <Directory> ou <Location> seja especificada:
As opções e restrições de acesso de /var/www/focalinux serão EXATAMENTE as especificadas no bloco da diretiva <Directory /var/www/focalinux> e somente os includes serão permitidos. Para adicionar ou remover uma opção individual definidas por diretivas anteriores, podem ser usado os sinais " " ou "-", por exemplo:
As opções Indexes e FollowSymLinks são definidas para o diretório /var/www, então as permissões do diretório /var/www/focalinux serão FollowSymLinks (do diretório /web/docs) e Includes (adicionada) e o parâmetro Indexes não terá efeito neste diretório. É permitido fazer um aninhamento das diretivas <Directory> e <Files>:
Neste caso, somente os arquivos LEIAME-DONO.txt existentes no diretório /var/www e seus sub-diretórios serão bloqueados. Se a diretiva <Files> for usada fora de uma estrutura <Directory>, ela terá efeito em todos os arquivos disponibilizados pelo servidor. Este é excelente método para proteger os arquivos de acesso, senhas e grupos, conforme será explicado mais adiante. Qualquer outro tipo de aninhamento de diretivas resultará em um erro de configuração ao se tentar carregar/recarregar o Apache. Um exemplo de diretiva incorreta:
O correto é:
Espero que tenha observado o erro no exemplo acima. OBS1: Você pode verificar se a configuração do apache está correta digitando apache -t como usuário root, se tudo estiver correto com suas configurações ele retornará a mensagem: "Syntax OK". OBS2: Se Options não for especificado, o padrão será permitir tudo exceto MultiViews. OBS3: Qualquer restrição afetará o diretório atual e todos os seus sub-diretórios! Defina permissões de sub-diretórios específicos separadamente caso precise de um nível de acesso diferente. Veja também a seção sobre arquivos OverRide (.htaccess) para detalhes sobre este tipo de arquivo. OBS4: A diretiva de acesso "<Directory />" não afetará outros sistemas de arquivos montados dentro de seus subdiretórios. Caso uma diretiva de acesso padrão não seja especificada para outros sistemas de arquivos, o acesso será automaticamente negado.