Posts Tagged ‘configuração’

Acertando o formato de data do Trac

July 28th, 2008

Uma das várias funcionalidades interessantes que o Trac oferece, além do próprio controle de mudança (que é fundamental para a Gerência de Configuração de Software), é o relatório dos eventos por data, o timeline. Entretanto, muitas vezes a data é apresentada no formato americano (MM/DD/YYYY) e não no formato que usamos aqui no Brasil (DD/MM/YYYY).

A boa notícia é que é muito simples acertar isso. O que define o formato de apresentação de data usado pelo Trac é o Locale configurado no servidor. Sendo assim, basta mudar o Locale para que o formato fique no formato desejado.

Uma das maneiras de fazer isso é configurar uma variável de ambiente do Apache. No Debian, basta acrescentar a seguinte linha no arquivo /etc/apache2/envvars:

export LC_ALL=pt_BR.UTF-8

Não esqueça de pelo menos fazer o reload do Apache depois.

Qual o diretório adequado para os repositórios do Subversion?

June 6th, 2008

O Linux já vem com uma estrutura padrão de diretórios: no /etc ficam os arquivos de configuração, no /tmp ficam todos os arquivos temporários do sistema, e assim por diante. Mas onde devem ficar os repositórios do Subversion?

Nos inúmeros artigos e blogs espalhados pela internet cada um dá seu palpite: alguns sugerem /opt/svn, outros /var/svn e já vi até mesmo uso do /home. Qual deles seria o diretório mais adequado?

Vamos eliminar primeiramente o /home. Num servidor em que os repositórios serão utilizados por vários desenvolvedores, o diretório /home não serve pois é destinado às áreas dos usuários. Por um repositório numa área de usuário representaria um projeto do usuário e não da equipe. Outro problema seriam as permissões de leitura e escrita.

O que vai decidir mesmo o diretório mais adequado é a finalidade do diretório dentro da estrutura já planejada do Linux. Mas onde está descrito qual a finalidade de cada diretório?

Existe um padrão chamado FHS (Filesystem Hierarchy Standard) que define a finalidade dos principais diretórios em um sistema operacional Linux ou do tipo Unix. Por este padrão, o diretório /opt serve para pacotes opcionais e /var para os arquivos transientes e temporários das aplicações, tais como arquivos de log. Sendo assim, nem um, nem outro é o ideal para se por os repositórios.

O candidato ideal é o diretório /srv cuja finalidade é armazenar os dados dos serviços oferecidos pelo sistema, o que é exatamente o que o Subversion faz ao disponibilizar seus repositórios.

Resumindo, nossa recomendação é para usar o diretório /srv para por os repositórios de acordo com o padrão:

/srv
    svn/
        repos1/
        repos2/
       ...

Autenticação Básica do Subversion usando Apache 2

June 3rd, 2008

O Apache 2, além de funcionar como servidor do repositório, fornece vários serviços complementares ao Subversion, tais como compressão de dados, criptografia e autenticação. Este artigo vai falar um pouco a respeito de como configurar a autenticação do Subversion usando a autenticação básica do Apache 2.

Conforme consta na wikipedia, autenticação “… é um processo que busca verificar a identidade digital do usuário de um sistema, normalmente, no momento em que ele requisita um log in (acesso) em um programa ou computador”. O modo mais comum de autenticação envolve um nome de usuário (username) e senha (password).

Como funciona o processo de autenticação do Apache?

O processo de autenticação segue a seguinte seqüência:

  1. O cliente faz uma requisição
  2. O Apache identifica que a requisição é sobre um recurso protegido por uma autenticação básica e envia como resposta um header de código 401 Authentication Required indicando que o cliente deve fornecer as credenciais do usuário
  3. O cliente (por exemplo, o firefox) pede ao usuário para fornecer o nome do usuário e a senha e repassa para o Servidor;
  4. O Apache verifica se o nome fornecido de usuário está numa lista pré-aprovada e se a senha correspondente está correta, e só então libera o recurso requisitado.

Criando um Recurso Protegido por Autenticação Básica

O primeiro passo para exigir uma identificação é inserir na seção Location de acesso aos repositórios do Subversion a sub-seção que exige a autenticação básica:

<Location /svn>
        DAV svn
        SVNParentPath /srv/svn

        # sub-seção referente à autenticação
        AuthType Basic
        AuthName "Repositórios do Subversion"
        AuthUserFile /srv/svn/autenticacao
        Require valid-user
</Location>

Esta configuração do jeito que está permitirá o acesso à leitura e escrita a todos os usuários autenticados a todos os repositórios localizados a partir do diretório /srv/svn. Falta agora fornecer o arquivo de autenticação /srv/svn/autenticacao.

O arquivo de autenticação contém uma relação de nomes de usuários e senhas. Na verdade, não são as senhas que são armazenadas, e sim o hash da senha. Isso torna o arquivo mais seguro pois o processo de hash é unidirecional e impossibilita descobrir o conteúdo original a partir do código gerado.

A verificação é feita usando a senha fornecida para gerar o hash novamente. Caso o hash seja o mesmo que o registrado, então a senha está correta.

O Próprio Usuário Gerando Seu Login e Senha

Para gerar e manter um arquivo com nomes de usuários e suas respectivas senhas criptografadas, utiliza-se o comando htpasswd. O nome do usuário e a senha são passados como parâmetros pela linha de comando ou digitados quando a execução do comando solicita. O inconveniente é que o usuário ou não pode escolher seu login e senha ou precisa estar presente para fornecer a senha desejada. Se o desenvolvedor está em São Paulo e a equipe de suporte está no Rio de Janeiro, por exemplo, a situação fica mais complicada ainda.

Minha sugestão é usar um jeito que o próprio desenvolvedor possa enviar ao pessoal do suporte o login e a senha que deseja. Para isso, deve:

  1. Visitar o site: http://aspirine.org/htpasswd_en.html
  2. Criar a senha desejada senha;
  3. Copiar e mandar palavra criptografada ao encarregado de adicionar a linha ao arquivo de autorização lá no servidor.

Pronto! Simples e prático!

Considerações Finais

A autenticação básica funciona muito bem para empresas com um número pequeno de desenvolvedores pois é fácil e rápido de configurar e resolve bem o problema, sem dores de cabeça para o pessoal do suporte técnico.

Só a autenticação não é tudo. Ainda falta configurar a parte de autorização, mas isso fica pra outra oportunidade…