Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ubuntu上配置GIT(权限),以便多个用户可以读/写和推/拉Apache2文件_Git_Apache_Ubuntu_Ssh_Permissions - Fatal编程技术网

如何在Ubuntu上配置GIT(权限),以便多个用户可以读/写和推/拉Apache2文件

如何在Ubuntu上配置GIT(权限),以便多个用户可以读/写和推/拉Apache2文件,git,apache,ubuntu,ssh,permissions,Git,Apache,Ubuntu,Ssh,Permissions,我想在Ubuntu上设置GIT和Apache2,以便多个Ubuntu/GIT用户可以推/拉Apache2读取的文件 我可以在Ubuntu上设置一个用户,该用户拥有自己的GIT存储库,可以使用/home/user/.SSH/中的SSH私钥和GIT服务器上的公钥(例如bitbucket)从自己的/home/user/文件夹中推/拉 但是,如果该用户被授予sudo权限并进入Apache2/var/www/html/web根目录,那么他们就不再有通过ssh推送到git的权限(因为git正在寻找根用户的i

我想在Ubuntu上设置GIT和Apache2,以便多个Ubuntu/GIT用户可以推/拉Apache2读取的文件

我可以在Ubuntu上设置一个用户,该用户拥有自己的GIT存储库,可以使用/home/user/.SSH/中的SSH私钥和GIT服务器上的公钥(例如bitbucket)从自己的/home/user/文件夹中推/拉


但是,如果该用户被授予sudo权限并进入Apache2/var/www/html/web根目录,那么他们就不再有通过ssh推送到git的权限(因为git正在寻找根用户的id_rsa)。一种解决方法是为根用户设置一个.ssh密钥对来访问GIT,但是GIT提交并没有被用户分开(破坏了版本控制的主要目的之一).

将用户添加到Apache2的www数据组

最简单的方法可能是使文件组可写并将用户添加到该组中。我想知道您所说的“…但是GIT提交并不是由用户分隔的”。将保存在修订版上的用户是“提交”(或编写)代码的用户,而不是“推送”的用户,这不依赖于传输。@Adrian,谢谢。我将用户添加到www数据组,然后添加chmod-rg+rwx。用户在repo上,他们的公共ssh密钥在他们的配置文件上,但是来自他们的用户(不是sudo)的git push-u origin master返回时存储库访问被拒绝。致命:远程端意外挂起。如果他们真的进来了,那就行了。这是最佳实践,还是用户可以从用户内部(没有sudo)完成所有操作?@Edmundo,那么对于协作程序员来说,从用户内部(没有sudo权限)完成所有提交,然后从root用户内部进行管理推送是典型的做法,还是给每个程序员提供根访问权限更好?虽然我没有任何通过https使用的经验,但我确信可以设置它来验证用户,而不必在服务器上提供根访问权限。但我以user:www数据的身份编写的web文件仍然不能被Apache2读取,除非我sudo-in并将其作为www-data:www-data写入,否则GIT无法使用我的密钥文件通过ssh推送它们。