<p>ubuntu下的git服务器禁止用户shell登录</p><p>(1)禁止的原因</p><p>为了进行团队项目开发,我们经常会使用分布式版本管理系统,其中git是现今最为重要和常用的分布式管理系统。</p><p>著名的gitHub是在git系统的基础上为各种有内容托管需求的人提供托管服务的一个网站,但是GitHub的免费服务只能创建公开的仓库。如果我们不想把自己的代码开源,想私有代码,那么建立一台git服务器也是一个不错的选择。</p><p>在建立好git服务器后,大家都可以通过</p><p>$ git clone git@10.3.0.99:project.git</p><p>克隆代码到本地。</p><p>这同时说明了大家也可以通过</p><p>$ ssh git@10.3.0.99</p><p>ssh连接服务器,登录到服务器上,对服务器进行各种操作,这通常很不安全,也不合适,成员只需要能对仓库操作就可以了,不需要更大的权限。</p><p>(2)禁止方法</p><p>编辑/etc/passwd文件完成。找到类似下面的一行:</p><p>git:x:1001:1001:,,,:/home/git:/bin/bash</p><p>改为:</p><p>git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell</p><p>这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。</p>