A situação: host Debian12, apache2 httpd servindo git CGI (localizado em /repos/git
) para clonagem de repositórios. Repos são armazenados no /repos
diretório e são de propriedade do git
usuário para habilitar acesso ssh a eles (por exemplo, para poder escrever no console).git push [email protected]:repos/repo.git
O problema é que, ao executar git clone https://example.com/repos.git
quando tudo é propriedade do usuário git, o git CGI imprime isso em stderr
:
(13)Permission denied: [client <ip>:<port>] AH00035: access to /repos.git/info/refs denied (filesystem path '/repos/git') because search permissions are missing on a component of the path
e os comandos clone funcionam bem se eu executar chown -R www-data:www-data /repos
. Mas dessa forma, não consigo acessar o repositório via ssh ( fatal: detected dubious ownership in repository at /repos/repo.git
no cliente, mesmo quando git
o usuário está dentro www-data
do grupo)
Tentei fazer o diretório ser de propriedade de use git
e group www-data
e habilitar sharedRepository=0640
na configuração (eu também tentei valores diferentes), mas então o script CGI falha com esse dubious ownership
erro. Tentei configurar a configuração global, tentei fazer diretório 2777
e 0666
permissões, mas nada funciona.
Para esclarecer, eu realmente não gosto de fazer login como www-data
usuário para acesso ssh a repositórios git. E eu sinto que deve haver algo sharedRepository
que eu possa executar, mas não consigo entender o que deveria ser.
PS: Não preciso, gitweb
pois estou executando o cgit
, e apache2
a configuração deveria (pelo menos em teoria) ser irrelevante aqui.