【问题标题】:Git user permissionsGit 用户权限
【发布时间】:2012-10-11 09:34:12
【问题描述】:

我有一个本地仓库和远程 --bare 仓库集。

我的每个托管包都有自己的用户和组(没有 ssh 访问权限),所以我有权限问题。

我已通过将远程仓库设置为 ssh://root@... 并创建接收后挂钩来应用 chown correctuser:correctgroup -R public_html/ 来解决此问题

正如您所见,这并不理想,因为我涉及“root”,而且不应该是这种情况。

git init --bare --shared”有帮助吗?

我希望能够以 root 身份远程推送,但将“git”添加到我的所有组(包)也无济于事。

请指教。

【问题讨论】:

    标签: git permissions ssh repository


    【解决方案1】:

    您可以保留root 及其chown 用于您的ssh 访问,但将ssh 会话限制为仅限git 命令,使用authorization layer,如gitolite强>。

    --shared 选项 (man git init) 不完全适合您有多个组时:

    --shared[=(false|true|umask|group|all|world|everybody|0xxx)]
    

    指定 git 存储库将在多个用户之间共享。
    允许属于同一组的用户推送到该存储库
    指定后,将设置配置变量“core.sharedRepository”,以便使用请求的权限创建$GIT_DIR 下的文件和目录。
    未指定时,git 将使用 umask(2) 报告的权限。

    【讨论】:

    • 嗯,这不太行,因为我不想“限制”root 权限。我是这台服务器上唯一的 ssh 用户,所以 gitolite 似乎有点过头了。 ;(
    • @user1113177 它会为您生成一个专用于这些 git 命令的公钥/私钥,同时为 root 交互式 shell 会话保留默认密钥。您可以为 ssh 使用多个公钥/私钥,例如:stackoverflow.com/questions/12998273/…
    【解决方案2】:

    这对我有用:https://serverfault.com/questions/133508/how-to-prevent-ssh-git-push-to-set-file-ownership

    基本上你设置 SUID 和 SGID 位。

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 2017-10-21
      • 2011-07-17
      • 2020-03-28
      • 2017-04-30
      • 2015-02-10
      • 2014-11-08
      • 2013-08-17
      • 1970-01-01
      相关资源
      最近更新 更多