
SO: Servidor Ubuntu 10.04 LTS
Tenho um problema estranho com permissões e não consigo rastrear o que está causando isso.
A configuração é a seguinte:
As pastas do repositório Git (e os arquivos nelas contidos) são de propriedade do root, e o grupo que usamos para os projetos tem direitos rws, por exemplo:
ll /path/to/project
drwxrwsr-x 7 root project 4096 2013-03-14 19:19 project
Nosso usuário jenkins é membro de todos os grupos que criamos para os projetos, inclusive o do exemplo. O aplicativo jenkins é iniciado pelo usuário jenkins para garantir que ele tenha acesso total às pastas do projeto.
Se eu remover os direitos de leitura e execução de "outros" nessas pastas git, nossas compilações falharão, informando:
fatal: '/path/to/project' does not appear to be a git repository
ps: não há SELinux em jogo
Responder1
Suponho que sejam suas permissões com subdiretórios no repositório.
# Set the same ownerships for every file and directory within the repository
sudo chown -R root:project /path/to/project
# Remove permissions for others on all files
sudo chmod o-rwx $(find /path/to/project -not -type d)
Se você quiser que os membros do grupo devolvam as alterações:
# Set permissions for all subdirectories
sudo chmod 2770 $(find /path/to/project -type d)
Se você quiser que os membros do grupo tenham acesso somente leitura:
# Remove write permissions for group members for every file
sudo chmod g-w $(find /path/to/project -not -type d)
# Set permissions for all subdirectories
sudo chmod 2750 $(find /path/to/project -type d)
Agora, contanto que o usuário jenkins seja membro do grupo do projeto, ele poderá clonar o repositório git sem problemas.
No entanto, se você tiver o SELinux habilitado em seu sistema, as coisas podem ficar um pouco mais complicadas.
Boa codificação :)