给Linux用户git访问但不是shell访问?

时间:2013-02-25 11:18:21

标签: linux git ssh

我想提交几个不同的人的访问权限,每个人都可以在我的Linux服务器上使用他们自己独立的git存储库。

这样做的一种方法是:

foreach user x
    adduser x
    create /home/x/repo.git
    ask user x to clone from ssh://myserver.com/home/x/repo.git

然而,这会产生不良影响,他们也可以通过ssh登录。我不想让他们进行shell访问。

无论如何以相似的方式设置它,但纯粹给它们git commit访问而不是shell访问?

3 个答案:

答案 0 :(得分:16)

/usr/bin/git-shell设置为/etc/passwd中的shell。

或使用原生git协议代替ssh

答案 1 :(得分:4)

您可以设置用户'登录shell到git-shell(自带git),这是一个限制登录shell,仅用于Git的SSH访问"。它会让用户照常使用git pushgit pull,但不会让他们登录。有关设置的说明,请参见本页底部:{{3} }

答案 2 :(得分:3)

使用Gitolite(Gitkeeper)来管理git存储库的访问。

否则你必须设置一个chroot。