我正在尝试设置一个git post-receive钩子,这样当收到提交时,机器上另一个存储库的克隆会更新(即确实如此git pull origin master).我正在使用gitosis来服务于存储库,因此我相信post-receive hook将作为gitosis用户运行,而我想要在receive上更新的存储库是由www-data.我应该怎么做呢?
我听说过setuid脚本,但我不确定这是否会带来安全风险?如果这不是安全风险,我将如何做到这一点?我猜我会做一些像脚本所拥有的东西www-data,让它成为世界可执行的并启用setuid位?我想这个脚本几乎无害,因为它只是更新存储库,但我想确定.谢谢!
编辑:有没有办法使用sudo?这比那更安全setuid吗?我的意思是,我不认为setuid如果用户不是root用户会有很多问题,但是看起来好像我必须跳过一些箍setuid才能运行脚本.
第二次编辑:似乎我可以通过一些/etc/sudoers魔术来做到这一点sudo -u.也许我应该在ServerFault上发布这个,但至少我从这一努力中学到了一些东西.
Kim*_*ais 14
恕我直言这应该是服务器故障,但不过这是答案;
加:
gitosis ALL=(www-data) NOPASSWD: /path/to/git
Run Code Online (Sandbox Code Playgroud)
到/ etc/sudoers
并运行命令 sudo -u www-data <whatever the command is>
| 归档时间: |
|
| 查看次数: |
5640 次 |
| 最近记录: |