gpt4 book ai didi

Git post-receive hook 更新不同用户拥有的本地克隆

转载 作者:IT王子 更新时间:2023-10-29 00:59:33 27 4
gpt4 key购买 nike

我正在尝试设置一个 git post-receive Hook ,以便在收到提交时更新机器上存储库的另一个克隆(即执行 git pull origin master) .我正在使用 gitosis 为存储库提供服务,因此我相信接收后 Hook 将作为 gitosis 用户运行,而我想在接收时更新的存储库归 所有www-数据。我应该怎么做?

我听说过 setuid 脚本,但我不确定这是否存在安全风险?如果这不是安全风险,我将如何去做呢?我猜想我会做一些事情,比如让 www-data 拥有脚本并使其在世界范围内可执行并启用 setuid 位?我想这个脚本几乎是无害的,因为它所做的只是更新存储库,但我想确定一下。谢谢!

编辑:有没有办法使用 sudo 来做到这一点?这会比 setuid 更安全吗?我的意思是,如果用户不是 root,我不认为 setuid 有什么问题,但似乎我必须跳过几个环节才能获得 setuid 要运行的脚本。

第二次编辑:看来我可能可以使用一些/etc/sudoers 魔法和sudo -u 来做到这一点。也许我应该将它发布到 ServerFault 上,但至少我从这次尝试中学到了一些东西。

最佳答案

恕我直言,这应该是服务器故障,但这就是答案;

添加:

gitosis ALL=(www-data) NOPASSWD: /path/to/git

到/etc/sudoers

并以 sudo -u www-data <whatever the command is> 运行命令

关于Git post-receive hook 更新不同用户拥有的本地克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1951137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com