寻找运行php git post-receive hook的安全方法

时间:2012-07-04 20:21:23

标签: php git permissions git-post-receive

我有一个执行git pull的钩子但是当它需要写入添加的文件时它会失败。它运行的用户是apache,它可以在授予写入权限时执行git pull(通过向具有写访问权限的组添加apache)。

我想出了一些解决方案......

  • 使用写权限保持apache(感觉不安全)
  • 将文件的所有权更改为apache(不安全和hacky)
  • 使用sudo(但这需要存储密码或没有密码 密码)
  • 在git之前和之后执行chmod为apache添加写入 拉的执行(hacky)

然而,所有这些似乎都是不安全/骇客的解决方案。

请分享您用于解决这些问题的任何建议或方法。我很想知道任何解决方案,特别是如果你不得不自己跳过这个障碍。

1 个答案:

答案 0 :(得分:1)

另一个解决方案(可能是老派)是创建一个setuid程序来执行实际工作,然后从钩子运行该setuid程序。

如果你正在使用SELinux运行,你可能需要调整权限以使setuid程序从钩子运行,因为钩子以Apache用户身份运行。