É 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.
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.
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.
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.