在许多帐户使用Git没有须藤(Using Git without Sudo in many acco

2019-07-04 09:34发布

你怎么能在一个Ubuntu的使用Git的没有sudo在多个帐户?

我的Ubuntu有许多账户。 新账户的创建作出了Git的不通我没有sudo。

我改变了所有者是我,马嘶,并且该组将admin其中马嘶属于。 我对Git的下列权限

800 -rwxrwxrwx 1 masi admin 813744 2009-02-20 23:01 /usr/bin/git

我在尝试使用的Git收到以下消息

git status
fatal: unable to create '.git/index.lock': Permission denied

我运行find . -iregex ".*index.l.* find . -iregex ".*index.l.*所以好像是在锁定系统中没有index.lock我运行相同的命令也使用sudo失败返回不匹配。

Answer 1:

如果我没有理解你的问题,你需要授予一些* nix的用户帐户写访问相同的git仓库。 使用--share的命令行参数git init应该启用这个功能。 该GitWiki有几句说这个 。 这应该做的伎俩:

git --bare init --shared=all

如果你已经创建了你的资料库,您也许能够通过抛出此命令将其转换为一个“共享资源库”:

git repo-config core.sharedRepository true

在你的仓库,作为中提到一篇博客文章在moserei.de 。

2014更新:这仍然是可能的,但该命令从回购配置改为配置。

git config core.sharedRepository true


Answer 2:

Git是指分布。 所以,每一个用户应该是具有他/她自己的独立的存储设备。 上述方法相矛盾这一方法。 除此之外,我怀疑的权限.git目录。



Answer 3:

我猜的所有权.git目录都是问题。

你不应该使用一个源代码树从不同的用户 - 它很可能会导致出现问题。

git可执行文件不是问题。 它应该由root拥有,并有755个权限。 ( -rwxr-xr-x

换句话说,你可以使用git从多个帐户,但你不应该共享一个工作目录。



Answer 4:

有任何可执行文件组的权限,使普通用户可以覆盖可执行文件是一个很大的安全隐患。 (尝试覆盖/usr/bin/git与调用一个shell脚本rm -rf $HOME )。

权限更改回为755,使混帐root拥有:再次根。 (Ubuntu的软件包管理器将无论如何重置下次升级的权限,除非您使用dpkg-statoverride(8)

我同意那些谁说,这未必是有多个用户共享一个git仓库是个好主意。 如果你仍然认为有必要,可以考虑设立一个新的小组, chgrp拿着库和所有的文件,其中该组的目录andset上的目录setgid位。 (该--shared参数git init可能会为你做一些这方面了。)然后,所有的用户添加到应有提交权的组。



Answer 5:

您可以使用验证会员

members groupname

然后,你可以设置权限级别的用户名:组名对,

change the ownership
sudo chown -v -R username:groupname sprout
chmod -R g+w .git/*


文章来源: Using Git without Sudo in many accounts
标签: git ubuntu sudo