Description: Ubuntu 22.04.1 LTS
Release: 22.04
Я пытаюсь выполнить некоторые команды git под пользователем, www-data
но это не работает.
Чтобы устранить неполадки, я попытался запустить, sudo -u www-data git show
но он возвращаетсяfatal: detected dubious ownership in repository
Если я запущу, sudo -u www-data git diff --shortstat
он вернетсяwarning: Not a git repository. Use --no-index to compare two paths outside a working tree
Я также попробовал добавить вsudoers
www-data ALL=(ALL) NOPASSWD: /usr/bin/git show
# and also
www-data ALL=(ALL) NOPASSWD: /usr/bin/git
Все еще получаю те же ошибки. Есть идеи почему? Спасибо.
решение1
Git требует, чтобы текущий пользователь был владельцем файлов. Это не работает, если текущий пользователь является «членом» группы.
Для .git
файлов, принадлежащихuser1:group1
- Git не выдаст ошибку, если вы
user1
- Git выдаст ошибку, если вы
user2:group1
Решение 1 (лучшее)
Так как это автоматизировано/cron, проще просто указать пользователя, от имени которого будет выполняться. Укажите пользователя перед командой git
sudo -u <user> git ...
Решение 2
Немного более громоздко, так как вам нужно добавить каждый репозиторий в , user
и .gitconfig
здесь есть очень подробный ответhttps://stackoverflow.com/a/73100228/3872647
[safe]
directory = <real path of git repository, symlink won't work here>
Надеюсь, это достаточно ясно, в противном случае, пожалуйста, спрашивайте или оставляйте комментарии, и я изменю этот ответ.
решение2
+1 за «git требует, чтобы текущий пользователь был владельцем файлов»
- Моя текущая версия git — 2.43.1, и это сообщение об ошибке появилось в ?.?.?
- настройка safe.directories ничего не дала
- скрипт, который я использую, начинается с
sudo -u www-data bash -c '...'
того, что я обнаружил, что, по крайней мере, .git и children должны принадлежатьwww-data
решение3
Итак, я обнаружил, что если отредактировать файл .gitconfig в папке пользователя (должен быть что-то вроде /home/your_user/.gitconfig
) и вставить: ошибка больше не появится.[safe]
directory = /path/to/directoryfatal: detected dubious ownership in repository