如何处理_www用户无法访问.hg文件夹?

时间:2012-10-04 17:30:12

标签: php version-control mercurial permissions bitbucket

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

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

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

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

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

  

abort:无法锁定repository / path / to / local / repo:Permission denied

2 个答案:

答案 0 :(得分:1)

你对团队的东西有了正确的想法。你需要:

  • 确保www用户与.hg目录中拥有所有的组位于同一组中
  • 确保.hg目录中的所有是可写的(chmod -R g+w .hg

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

.hg

答案 1 :(得分:0)

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

[trusted]
users = _www
groups = _www