按照本link中的说明,我设法在uni的服务器上的$HOME
上创建了一个存储库。我使用SSH
克隆/拉/推到服务器上的此存储库。
我的问题是:是否可以从此存储库授予其他人clone/push/pull
的访问权限?显然我在服务器端没有root权限。此外,我不想把它作为一个公共存储库...我想知道谁在克隆并推动这个。
我可以在帐户的网络存储部分执行此类操作吗?我的wesite存储在哪里,然后使用htaccess
之类的东西来管理访问?
答案 0 :(得分:1)
您可以在存储库上设置POSIX ACL,以允许更多用户访问它。但这并不能保证有人作为另一个用户提交/配置/ ...
非常麻烦相反,我建议你使用gitolite:https://github.com/sitaramc/gitolite。
它的工作方式非常类似于github上的pull / push机制:一个ssh用户,一个自定义shell,根据用于登录的ssh密钥对用户进行身份验证。
如果你想要更复杂的东西(类似github,网页用户界面提供许多功能),请查看gitlab(http://gitlabhq.org/)或gitorious(http://getgitorious.com/)。
为了能够以安装gitolite的用户身份正常登录服务器:
~/.ssh/id_rsa-git_admin
~/.ssh/authorized_keys
文件中的第一个键git clone git@yourhost:gitolite-admin
,并确保其有效。ssh -i ~/.ssh/id_rsa-git_admin git@yourhost
如果最后两步都没问题,那么您的安装就可以了。
答案 1 :(得分:0)
这是一个棘手的问题,因为大多数git设置都依赖于用户帐户。我看到了两个选项,除非您按照@ redShadow的回答中所述安装Gitolite。
如果其他人在同一个mashine上拥有帐户,则冷却使用linux / unix组权限并使该存储库仅可读/写。如果该组尚未存在,则具有root访问权限的人员需要创建它。
如果对于有限群组的仅限克隆访问权限适合您并且您愿意接收修补程序形式的更改,则可以将存储库移动到您的网站根文件夹中并使用htaccess来限制对该文件的访问。但这只是一件事。
你的htaccess看起来像是
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
参考文献:
答案 2 :(得分:0)
我假设你做了git init --bare ...
默认情况下,当您初始化一个裸仓库时,您可以为群组写入授予权限,并且其他任何人都可以阅读。这是在git init
的帮助文档中讨论的:
http://www.kernel.org/pub/software/scm/git/docs/git-init.html
您可以使用umask选项更严格地控制访问:
0xxx: 0xxx is an octal number and each file will have mode 0xxx.
0xxx will override users' umask(2) value (and not only loosen permissions
as group and all does). 0640 will create a repository which is group-readable,
but not group-writable or accessible to others. 0660 will create a
repo that is readable and writable to the current user and group, but
inaccessible to others.