13. Acesso ao repositório apenas para leitura

É possível garantir acesso apenas de leitra a repositórios usando autenticação por senha. Para restrição quando o usuário tem acesso local deve-se utilizar os métodos padrões de restrições de arquivos do sistema operacional em uso.

Pode-se fazer com que um usuário tenha acesso de leitura a um repositório de duas maneiras diferentes: por inclusão ou por exclusão.

13.1. Acesso para leitura pelo método de inclusão

O método de inclusão possui este nome pois implica na inclusão dos usuários em um arquivo chamado readers. Este arquivo é formado por um nome de usuário em cada linha (estes devem ser os mesmos do primeiro campo do arquivo passwd do CVS) e termina com uma linha em branco.

Este arquivo fica em $CVSROOT/CVSROOT/readers.

Exemplo 2. Exemplo de um arquivo readers

    anonimo
    anonymous
            

13.2. Acesso para leitura pelo método de exclusão

Este método funciona impedindo que os que não estejam explicitamente listados com acesso de escrita façam alterações nos arquivos do CVS. O formato do arquivo writersé o mesmo que o do arquivo readers.

Este arquivo fica em $CVSROOT/CVSROOT/writers.

Exemplo 3. Exemplo de um arquivo writers

    godoy
    ricardo
            

13.3. Conflitos

Como funciona o sistema de decisão se um usuário pode ou não escrever em um repositório?

Se o arquivo readers existe e o usuário está listado nele, então ele terá apenas acesso para leitura. Se o arquivo writers existe e o arquivo não está listado nele, então ele terá acesso apenas para leitura. Se nenhuma dessas condições for satisfeita, o usuário terá acesso apenas para leitura.

É óbvio que é gerado um conflito caso o usuário pertença aos dois arquivos. Esse conflito é resolvido da maneira mais conservativa possível visando proteger os dados do repositório: tal usuário terá acesso apenas para leitura.