【问题标题】:How do I configure GIT on Ubuntu (permissions) so multiple users can read/write and push/pull files for Apache2如何在 Ubuntu(权限)上配置 GIT,以便多个用户可以为 Apache2 读取/写入和推送/拉取文件
【发布时间】:2017-11-03 03:37:41
【问题描述】:

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

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

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

【问题讨论】:

  • 最直接的可能是使文件组可写并将用户添加到该组。
  • 我想知道您所说的“......但是 GIT 提交没有被用户分隔”是什么意思。将保存在修订版中的用户是“提交”(或作者)代码的用户,而不是“推送”且不依赖于传输的人。
  • @Adrian,谢谢。我将用户添加到 www-data 组,然后 chmod -R g+rwx 。用户在 repo 上,他们的公共 ssh 密钥在他们的个人资料上,但是来自他们的用户(不是 sudo)的 git push -u origin master 返回时拒绝访问存储库。致命:远端意外挂断。如果他们 sudo 进入,它会起作用。这是最佳做法,还是用户可以在其用户内部完成所有操作(无需 sudo)?
  • @Edmundo,所以协作程序员通常从他们的用户内部进行所有提交(没有 sudo 权限),然后从 root 内部进行管理员推送,或者最好给每个程序员root权限?
  • 虽然我没有任何通过 https 使用 with 的经验,但我确信可以设置它来验证用户身份,而无需在服务器上提供 root 访问权限。 git-scm.com/book/id/v2/Git-on-the-Server-The-Protocols

标签: git apache ubuntu ssh permissions


【解决方案1】:

将用户加入Apache2的www-data组

【讨论】:

  • 但是我作为 user:www-data 编写的 web 文件仍然无法被 Apache2 读取,除非我 sudo 将它们写为 www-data:www-data - 然后它们不能被 GIT 推送ssh 使用我的密钥文件。
猜你喜欢
  • 2019-02-23
  • 2018-05-13
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 2014-04-14
  • 2011-09-10
  • 2016-11-13
  • 2015-06-25
相关资源
最近更新 更多