我有一个带有USB密钥的树莓派pi和512 gigs连接到我的本地网络。我将其用作我的私人git回购,因为我最终超过了bitbucket。效果很好,除了...
我使用用户名pi
进行登录,但是我的git repo拥有git
所有的文件和目录。我观察到我有时会推不住。我会收到这样的错误:
错误:无法写入sha1文件名 ./objects/77/33acda0f90974cb73ad8b02fcd83896b3eeb94:权限被拒绝 到192.168.0.2:/srv/git/writing.git! [远程拒绝]大师-> 主(无法将对象迁移到永久存储)错误:失败 将一些引用推送到'pi@192.168.0.2:/srv/git/writing.git'
我发现我可以通过将权限更改为777的可怕技巧来规避此问题,因此很明显的问题是ssh用户pi
和目录用户git
是不同的。新的git目录(例如上面错误中的dir 77)是由具有755权限的git动态生成的,这就是为什么我无法写入它们的原因。
是否可以更改动态创建的git目录的组和所有者?如果我创建一个git
用户并将其用于ssh到pi上,那行得通吗?处理这个问题的正确方法是什么?
答案 0 :(得分:2)
Git's official documentation建议您创建一个名为git
的用户并设置限制,以使“ git
用户只能使用SSH连接来推送和拉动Git存储库,并且可以't shell on the machine” 。
您可以在这里找到文档: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server