1

我在我的 linux CentOS 服务器上创建了一个 git 裸仓库:

/home/git/niels.git。

用户 git 和 niels 在组 git 中。

我更改了 /etc/passwd 所以 niels 的主目录是 git。

ssh 作为 git 到 niels.git :推拉很好。

ssh as niels 以同样的方式给出:

fatal: '~/niels.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

显然存储库存在,因为我可以作为 git 访问它。这里有一些权利和组信息:

# ls -al /home/git

total 32
drwxrwx--- 4 git  git   4096 Sep 20 22:11 .
drwxr-xr-x 5 root root  4096 Sep 17 14:39 ..
-rwxr----- 1 git  10009  953 Sep 17 14:19 .bash_history
-rwxr----- 1 git  10009   33 Sep 12 22:46 .bash_logout
-rwxr----- 1 git  10009  176 Sep 12 22:46 .bash_profile
-rwxr----- 1 git  git    124 Sep 12 22:46 .bashrc
drwxrw---- 7 git  git   4096 Sep 17 17:19 niels.git
drwxr----- 2 root 10009 4096 Sep 15 22:40 .ssh

# groups niels

niels : niels git 

我究竟做错了什么?

哦,顺便说一句,我尝试了各种许可,比如

chmod -R 740 /home/git

和 766 666 但只有 777 我得到了解放:

Already up-to-date.

但这不可能...

4

1 回答 1

0

但这不可能...

然而它就是这样:你不应该以/home/git/“git”以外的任何其他用户身份访问 repo。

ssh 在远程服务器上打开一个安全外壳(具有您的上游 repo的那个),并且该外壳与您在 ssh url: 中提到的用户一起使用git。这适用于访问/home/git.

更改/etc/password不足以更改该主目录的所有权

您可以尝试:

sudo chmod 744 -R egit /home/git

(但随后该帐户git将无法访问这些相同的存储库)

于 2013-09-21T00:35:14.570 回答