亚特实验室说“使钩子文件可执行并确保它归 git 所有“,但我读到这里文件可以由所有者、组、世界执行。那么它们指的是哪一个呢?
现在我正在改变
-rw-r--r-- 1 git git 0 Jun 24 00:32 pre-receive
到
-rwxr--r-- 1 git git 0 Jun 24 00:32 pre-receive
这足以使其所有者可执行吗?
答案1
它们的意思是“使其可由将调用该应用程序的用户执行”。这通常就是在未指定任何其他内容时“使文件可执行”的含义。
如果只有git
用户应该能够执行该文件,则使其只能由所有者执行。这可能就是他们的意思,因为它是服务器端挂钩。如果任何人应该能够执行该文件,该文件需要可由每个人执行(这不太可能是本意)。
因此(可能与sudo
):
$ chown git pre-receive
$ chmod u+x pre-receive # or a+x if anyone should be able to run it
答案2
确实,我上面提出的建议有效。答案是要做
-rwxr--r-- 1 git git 0 Jun 24 00:32 pre-receive