权限问题导致 git 服务器无法使用

这两天在公司的 Synology NAS 服务器上搭建了一个 git 服务器。其实 Synology NAS 服务器是自带 Git Server 包的,可以一键安装,非常方便。但是我没有将权限设置好,这就导致 git 服务器一直无法使用。

先是按照 NAS 文档的说明,我需要 ssh 到服务器上创建一个 git 仓库文件夹。然而我 ssh 登录之后却被提示 Could not chdir to home directory: Permission denied。尝试 cd 到任何一个文件夹都被提示没有权限。可是 ls 打印出的文件夹权限明明都是777。最后发现原来是在 NAS 的 管理系统中,我将用户组对文件夹的访问权限设成了 No Access。原来管理系统设置的权限优先级比操作系统层面的文件夹权限还高,也不知是怎么做到的。

git 仓库创建好后,能够正常 pull。但是 push 的时候一直在 writing objects 这一步卡住。依然是因为权限问题。这回就是操作系统层面的文件夹权限没设置好——我的 git 用户账号对 git 仓库文件夹没有写权限。后来我在用户主目录下重新创建了一遍仓库才解决了该问题。

顺便吐槽一下 Synology NAS 的 Git Server 文档。原文档让我在 /volumeX 目录下用 git init  创建 git 仓库,并且在客户端用 ssh://用户名@服务器地址/git仓库文件夹名  形式的 URL 访问 git 服务器。然而实际上要用  git init --bare --shared 命令来创建仓库, 用  ssh://用户名@服务器地址/git仓库绝对路径 形式的 URL —— URL 末尾应该是 git 仓库的绝对路径,而不是 git 仓库文件夹名。

发表评论

电子邮件地址不会被公开。 必填项已用*标注