Я пытаюсь настроить мерзавца, постполучают крюк, таким образом, что, когда передавание получено, другой клон хранилища на машине обновлен (т.е. делает a git pull origin master
). Я использую gitosis, чтобы служить хранилищу и как таковой, я полагаю, что постполучить крюком будут управлять как gitosis
пользователь, тогда как хранилище я хочу обновить на получении, принадлежит www-data
. Как я должен пойти о выполнении этого?
Я услышал о setuid
сценарии, но я не уверен, могло ли это быть угрозой безопасности? И если бы это не угроза безопасности, как я пошел бы о выполнении этого? Я предполагаю, что сделал бы что-то, любят, делают сценарий принадлежавшим www-data
и сделайте это мировым выполнимым и позвольте бит setuid? Я предполагаю, что этот сценарий был бы в значительной степени безопасен начиная со всего, что он делает обновить хранилище, но я хочу быть уверенным.Спасибо!
Править: Есть ли любой способ сделать это использование sudo
? Был бы это быть более безопасным, чем setuid
? Я имею в виду, я не думаю, что есть много проблемы с setuid
если бы пользователь не корень, но все равно кажется, что я должен был бы подскочить через несколько обручей, чтобы получить a setuid
сценарий, чтобы бежать.
Второй отредактируйте: кажется, что я мог бы быть в состоянии сделать это с некоторыми /etc/sudoers
волшебство и sudo -u
. Возможно, я должен был разместить это на ServerFault вместо этого, но по крайней мере я узнал о немного из этого усилия.
IMHO Это должно быть на сервере, но вот ответ;
Add:
gitosis ALL=(www-data) NOPASSWD: /path/to/git
to /etc/sudoers
и запустите команду как sudo -u www-data