我有一个 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
答案 0 :(得分:1)
你对团队的东西有了正确的想法。你需要:
chmod -R g+w .hg
)如果除了www之外的任何其他用户将在该回购中推/拉/更新,那么您还需要使用sticky-group-bit来确保新创建的文件和目录与{具有相同的组所有权{1}}目录本身。:
.hg
答案 1 :(得分:0)
您的第一段并不完全清楚,但您是否尝试更改实时服务器上的.hgrc
文件,添加:
[trusted]
users = _www
groups = _www