1

我有一个BitBucket帐户,它将在我的服务器上触发一个脚本,该脚本将在进行推送时拉取并更新实时服务器。_www触发器起作用了,在让用户信任 hgrc 或其他任何东西(我确实做到了)之后遇到了很多麻烦,它实际上正在执行命令。

问题是我收到关于无法锁定文件夹的错误,这意味着我的_www用户没有 .hg 文件夹的权限。

解决这个问题的好方法是什么?我不想将 .hg 文件夹设为 0777。我可以_www与我的用户放在同一个组中(我相信它是)并给组 rw(那是什么,0775?)。这是可以接受的,还是我可能遗漏的其他安全隐患,或者更好的处理方法。

我可以用我的用户运行命令。也许我可以。BitBucket正在使用 POST 服务发布到我的服务器,我通过 PHPshell_exec()执行命令(如果请求来自 BitBucket 的 IP,它只运行命令)。

[更新]我继续尝试将权限设置为 0775,但它仍然不起作用(_www与我的用户不在同一个组中)。同样的错误,即:

中止:无法锁定存储库 /path/to/local/repo:权限被拒绝

4

2 回答 2

1

你对组的东西有正确的想法。你需要:

  • 确保 www 用户与拥有.hg 目录中所有内容的组在同一个组中
  • 确保.hg 目录中的所有内容都可以按组 ( chmod -R g+w .hg)写入

如果除了 www 之外的任何其他用户将在该 repo 中推送/拉取/更新,那么您还需要使用sticky-group-bit 来确保新创建的文件和目录具有与.hg目录本身相同的组所有权。:

find .hg -type d | xargs chmod g+s
于 2012-10-04T18:07:27.607 回答
0

您的第一段并不完全清楚,但是您是否尝试过更改.hgrc实时服务器上的文件,并添加:

[trusted]
users = _www
groups = _www
于 2012-10-04T17:44:35.240 回答