我想在我的计算机(ubuntu 10.4)上使用 Git 创建一个共享的团队存储库,以便我们的团队可以克隆代码并进行拉/推等操作...
但是我发现好像需要为它创建 ssh 帐户。我不熟悉 linux 的安全性,所以我想知道如何控制这个帐户的访问权限。比如,我希望这个 ssh 帐户只能访问 git 目录(读写),例如 /home/camino/myproject,并且应该拒绝对所有其他目录的任何访问。
是否可以?
在此先感谢您的帮助。
答案1
这是什么吉托西斯解决了。解决方案是单个用户帐户(称为“gitosis”),通过 ssh 对其进行公钥访问,然后 gitosis 在后台根据配置文件检查这些凭据。
答案2
您可以在自己的机器上为同事创建用户帐户。默认情况下,他们不能访问您的本地主目录。您可以通过检查文件系统访问设置来验证这一点/home/user
(将“用户”替换为实际用户名)
drwxr-x--- 143 user user 8.2K 09-28 14:45 /home/user/
以下是您应该做的事情的基本概要:
- 创建一个名为“git”的新组
- 将“git”组添加到您当前的用户名
- 为每个用户创建一个新的用户帐户,并将“git”添加到组列表中
- 创建一个新的目录树,用于
/
存储你的 git repo - 确保您的“git”用户组可以访问这些目录
将你的工作仓库克隆为一个裸仓库,然后使用 ssh 推送到共享仓库:
git clone --bare ~/proj proj.git scp -r proj.git server:/git/USER/
将共享 repo 添加到您的工作 git 项目,以便您可以推送/拉取。
git remote add origin ssh://HOSTNAME/git/USER/proj.git git config branch.master.merge refs/head/master
从此时起,您的远程用户应该能够访问您的机器、登录并克隆共享存储库。他们还可以推送/拉取更改。