Description: Ubuntu 22.04.1 LTS
Release: 22.04
Estou tentando cronometrar alguns comandos git sob o usuário www-data
e não funciona.
Para solucionar o problema, tentei executar sudo -u www-data git show
mas ele retornafatal: detected dubious ownership in repository
Se eu executar sudo -u www-data git diff --shortstat
ele retornawarning: Not a git repository. Use --no-index to compare two paths outside a working tree
Eu também tentei adicionar emsudoers
www-data ALL=(ALL) NOPASSWD: /usr/bin/git show
# and also
www-data ALL=(ALL) NOPASSWD: /usr/bin/git
Ainda recebendo os mesmos erros. Alguma idéia do porquê? Obrigado.
Responder1
O Git exige que o usuário atual seja o proprietário dos arquivos, não funciona se o usuário atual for um "membro" do grupo
Para .git
arquivos pertencentes auser1:group1
- Git não lançará erro se você estiver
user1
- Git lançará erro se você estiver
user2:group1
Solução 1 (melhor)
Como isso é automatizado/cron, é mais fácil apenas prefixar o usuário para executar. Especifique o usuário antes do comando git
sudo -u <user> git ...
Solução 2
Um pouco mais complicado, pois você precisa adicionar todos os repositórios aos user
e .gitconfig
há uma resposta muito detalhada aquihttps://stackoverflow.com/a/73100228/3872647
[safe]
directory = <real path of git repository, symlink won't work here>
Espero que isso esteja claro o suficiente; caso contrário, pergunte ou comente e modificarei esta resposta.
Responder2
+1 em "git requer que o usuário atual seja o proprietário dos arquivos"
- minha versão atual do git é 2.43.1 e esta mensagem de erro é nova em ?.?.?
- configurar safe.directoreries não fez nada
- um script que estou usando começa
sudo -u www-data bash -c '...'
e descobri que, de fato, pelo menos .git e filhos precisam pertencer awww-data
Responder3
Então, descobri que se você editar o arquivo .gitconfig na sua pasta de usuário (deve ser algo como /home/your_user/.gitconfig
) e inserir: o erro não apareceria mais.[safe]
directory = /path/to/directoryfatal: detected dubious ownership in repository