Apenas para esclarecimentos, os nomes dos arquivos realmente estão iniciando no "ponto", uma
medida de segurança importante para preservar o conteúdo dos mesmos. Para o nosso exemplo, onde
vamos proteger o diretório digitalbr localizado no nosso diretório padrão do Apache2,
/var/www/htdocs/, digitamos no console:
# vi /var/www/htdocs/digitalbr/.htaccess
Vamos inserir o seguinte conteúdo dentro dele:
Desmembrando as linhas, vamos as explicações:
- AuthType Basic: é o tipo de autorização que será requerida. Ainda não tive a
necessidade de alterar essa linha. ;o)
- AuthName: nesse ítem podemos inserir um comentário sobre o compartilhamento.
Ele deverá vir entre aspas, como em nosso exemplo.
- AuthUserFile: aqui iremos especificar o caminho do arquivo de senhas. Podemos
ter arquivos individuais por diretórios, como no nosso exemplo, como também podemos
usar um arquivo comum para vários deles.
- require valid-user: essa opção é responsável por informar ao Apache como os
usuários serão autenticados. No nosso exemplo o Apache irá procurar por qualquer
usuário contido no arquivo .htpasswd informado no ítem acima. Podemos brincar
com as variações desse comando, outras alternativas seriam:
Require user digitalbr: dessa maneira, informamos ao Apache que apenas o usuário
"digitalbr" poderá acessar o diretório protegido. Muito útil quando você quiser ter apenas um
arquivo de senhas, com vários usuários, para restringir diretórios distintos.
- require group digitalbr: igual o ítem anterior, porém informando todo um grupo
de usuários.
Com essas informações já podemos imaginar mil situações de uso, não? Ainda falta criarmos o
dito cujo arquivo de senhas, o
.htpasswd, lembrando é claro que o nome dele pode variar
conforme o nosso desejo.
Para essa tarefa usaremos uma ferramenta padrão do Apache, o
htpasswd (descobriram o porque
do nome?). Sua sintaxe é bem simples, no console digite:
# htpasswd -c /var/www/htdocs/digitalbr/.htpasswd digitalbr
Após o comando acima o sistema irá solicitar uma senha e com isso, criamos o usuário
digitalbr
dentro do arquivo
/var/www/htdocs/digitalbr/.htpasswd. Em um futuro próximo, caso desejarmos
criar um outro usuário neste mesmo arquivo, apenas retiramos o parâmetro "-c", ficando assim:
# htpasswd /var/www/htdocs/digitalbr/.htpasswd digitalbr2
E se desejarmos apagar um usuário? Simples:
# htpasswd -D /var/www/htdocs/digitalbr/.htpasswd usuario
Deleting password for user usuario
Simples, não? Agora só falta um detalhe, ver funcionando! =)