我第一次尝试在我的VPS上设置git。我也在使用Virtualmin。当我使用root来推送时,一切都已安装并运行良好,但我显然不希望这样做。问题是,如果我尝试将我的'git'用户设置为推送到我的public_html目录,我会收到以下错误:
remote: fatal: Could not switch to '/path/to/': Permission denied
error: unpack failed: unpack-objects abnormal exit
我假设这是因为我的git用户无权访问public_html文件夹所在的文件夹。有什么东西我可以添加到我的post-receive挂钩调用sudo或其他东西,以便我没有这个问题。 (对不起,我知道这可能是一个非常简单的问题,但这是我第一次自己设置,我无法通过搜索找到一个好的答案。)
答案 0 :(得分:2)
您只需更改所有权即可。这是首选:
$ sudo chown -R git-user:git-group /path/to
或者,将自己添加到当前拥有它的组中:
$ sudo usermod -a -G owner-group user
如果这不起作用,只需稍微放松一下权限:
$ sudo find /path/to/ -type f -exec chmod 664 {} + && sudo find /path/to/ -type d -exec chmod 775 {} +
仅供参考:数字代表所有者组别 - 因此 -
664
表示所有者和组可以读+写,而其他只能读。
当您有一个组处理文件系统时,此类权限非常有用。
如果你是唯一一个人,那么第一个命令应该可以正常使用 -