2

我有一个执行 git pull 的钩子,但是当它需要写入添加的文件时它会失败。它操作的用户是 apache,当授予它写权限时(通过将 apache 添加到具有写权限的组),它可以很好地执行 git pull。

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

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

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

请分享您用来解决这些问题的任何建议或方法。我很想听到任何解决方案,特别是如果您必须自己跳过这个障碍。

4

1 回答 1

1

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

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

于 2013-02-06T23:15:31.993 回答