Contexto: Estou criando um gancho gitolite3 para um repositório específico, que contém alguma lógica e css foo do meu site.
então o que realmente acontece é
O conteúdo em /var/www/nginx/
se parece com:
drwxrwxr-x. nginx git system_u:object_r:httpd_sys_content_t:s0 foo
.git
é especial:
drwxrwxr-x. git git system_u:object_r:httpd_sys_content_t:s0 .git
Para garantir que todos os subdiretórios tenham os direitos de acesso adequados que usei:
chown nginx:git -Rf ./webfoo
chmod g+rw -Rf ./webfoo
chown git:git -Rf ./webfoo/.git
[Isto é apenas um bônus, você pode pular isso.]
O gancho de gitolite3
#!/bin/bash
cd /var/www/nginx/webfoo || exit
unset GIT_DIR
echo "where: $(pwd)"
git pull -f origin deploy-me-branch
remote: where: /var/www/nginx/webfoo
remote: From /home/gitolite/repositories/webfoo
remote: c092ee2..07274a6 master -> origin/master
remote: error: unable to unlink old '.gitignore' (Permission denied)
remote: error: unable to unlink old 'templates/fancypost.html' (Permission denied)
remote: error: unable to unlink old 'templates/layout.html' (Permission denied)
/var/log/audit/audit.log
não contém nenhum acesso negado.
Atualização: Mesmo o login em git
localmente também não funciona. Portanto, isso provavelmente não está relacionado com o contexto de segurança do SELinux / file .
Por que isso não funciona como eu esperava?