2

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

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

我通过将我的远程仓库设置为 ssh://root@... 并创建 post-receive 挂钩来解决这个问题chown correctuser:correctgroup -R public_html/

正如您所看到的那样,这并不理想,因为我涉及“root”并且不应该是这种情况。

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

我希望能够以 root 身份远程推送,并且将“git”添加到我的所有组(包)也没有帮助。

请指教。

4

2 回答 2

2

您可以保留rootchown以供您的 ssh 访问,但将 ssh 会话限制为仅 git 命令,并使用gitolite之类的授权层

--shared当您有多个组时,选项(mangit init)并不完全适合:

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

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

于 2012-10-21T10:08:40.130 回答
0

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

基本上你设置了 SUID 和 SGID 位。

于 2014-04-14T16:39:43.260 回答