Chmod on Git Post-Receive

时间:2012-04-03 00:01:34

标签: git nginx gitolite

我刚拿到第一个VPS&已经建立了NGinx,Ruby,Rails& Gitolite。

我可以推拉。但是,一旦我在访问网址时推送,就会出现403 forbidden错误。本地文件是755,但似乎Git没有存储这些文件。

我发现了几篇讨论此内容的帖子(包括这一篇:git deploying project - file permissions - (chmod)),答案似乎是在CHMOD 755挂钩中添加post-receive

我的post-receive目前看起来像是:

#!/bin/sh

GIT_WORK_TREE=/www/newrails git checkout -f
chmod 755 -R /www/newrails

我已完成chmod +x post-receive

但是,当我按下时,我收到错误:remote: chmod: changing permissions of /www/newrails: Operation not permitted

如何通过使钩子中的chmod具有运行权限或通过其他方式来实现它的工作?

1 个答案:

答案 0 :(得分:4)

尝试对chmod操作文件夹的内容而不是文件夹本身:

chmod 755 -R /www/newrails/*

可能发生的事情是钩子正在运行的用户(通常是您用来进行Git访问的用户)有权写入文件夹,但不允许更改文件夹本身的模式。< / p>