监禁 git 用户的最简单方法

监禁 git 用户的最简单方法

我想在我的服务器上创建几个用户帐户,以便用户可以签出特定的 git 存储库。理想情况下,用户将无法访问 shell 或复制 git 存储库以外的任何文件。

理想情况下,这也不会花费超过 3 分钟的时间 :)

我正在运行较旧的 Gentoo 安装。

答案1

它可以通过多种方式完成。

  1. 如果这仅适用于 git,您可以安装 gitolite,并且可以从 gitolite-admin repo 执行所有 ACL 操作。

  2. 使用 SSH 设置 SFTP 受限根设置。您可以控制希望用户使用的每个二进制文件。

    groupadd sftpusers
    useradd -g sftpusers -d /jailed netusers
    

    修改SSHD文件:/etc/ssh/sshd_config

    Subsystem       sftp    internal-sftp
    Match Group sftpusers
       ChrootDirectory /sftp/%u
       ForceCommand internal-sftp
    

    进而

    mkdir /jailed/netusers
    chown netusers.sftpusers /jailed/netusers
    service sshd restart
    
  3. 为此类用户创建专用的虚拟机,并将 git repo 安装为 RO,以确保没有人可以更改任何内容。

最后但并非最不重要的一点是,没有一篇可以在 3 分钟内完成。我猜你需要花 2-3 分钟才能读完 :-)

答案2

由于您专注于身份验证和拉取,因此我将建议另一种方法:使用基本身份验证通过 HTTPS 提供 git。通过限制使用 HTTPS,您可以防止密码以明文形式泄露。

http://maymay.net/blog/2008/08/08/how-to-use-http-basic-authentication-with-git/了解更多信息,只需从任何其他教程中添加基本的 SSL 设置即可。

相关内容