我想在我的服务器上创建几个用户帐户,以便用户可以签出特定的 git 存储库。理想情况下,用户将无法访问 shell 或复制 git 存储库以外的任何文件。
理想情况下,这也不会花费超过 3 分钟的时间 :)
我正在运行较旧的 Gentoo 安装。
答案1
它可以通过多种方式完成。
如果这仅适用于 git,您可以安装 gitolite,并且可以从 gitolite-admin repo 执行所有 ACL 操作。
使用 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
为此类用户创建专用的虚拟机,并将 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 设置即可。