【问题标题】:.git/config permission denied when trying to add remote on ubuntu尝试在 ubuntu 上添加远程时,.git/config 权限被拒绝
【发布时间】:2016-03-16 17:45:51
【问题描述】:

我正在尝试向现有 git 项目添加一个额外的远程,以便我可以使用 git remote add user2 git@bitbucket.org:... 将代码推送到辅助 bitbucket 存储库,但是我收到以下错误:

错误:无法锁定配置文件 .git/config:权限被拒绝

这是一个旧项目,所以我不确定它最初是如何设置的,但它看起来确实可能是以 root 身份安装的。

我尝试检查 .git 和 .git/config 的文件权限,我可以看到它属于 www-data。我当前的用户是 www-data 组的一部分,但我仍然遇到同样的错误。

我还检查了 .git/config.lock 文件,以防它被阻塞但没有。

我不喜欢在 .git 中使用 sudo,所以我想知道是否有人可以就如何处理这个问题给我一些最佳实践建议

【问题讨论】:

    标签: git ubuntu bitbucket file-permissions user-permissions


    【解决方案1】:

    让所有东西都归一个团体所有是可行的方法,但你必须 确保所有内容都具有组写入权限,并且每个文件都在 www-data 组中递归:

      sudo chown -R :www-data /path/to/git/repo
      sudo chmod -R g+w /path/to/git/repo
    

    然后运行你的 git 命令。

    【讨论】:

    • 递归设置是我的问题。谢谢!
    【解决方案2】:

    如果您的权限设置正确,您不必将sudogit 一起使用。

    这听起来像是一个基本的权限问题。您发现自己是该组的一员,但如果您希望通过组权限进行访问,则还需要该文件具有组 rw 权限,例如chmod g+rw .git/config。要么,要么您需要成为相关文件的所有者,同时拥有rw

    由于您提到www-data 作为组,这让我想知道您是否在服务器上。如果您使用的是 CentOS 等服务器操作系统,您可能正在运行 SELinux,在这种情况下,您需要处理另一层权限。使用 ls -alZ 查看 SELinux 权限(如果存在)。

    【讨论】:

    • 是的,它是一个服务器(ubuntu 14.04)
    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 2017-12-02
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2021-08-29
    相关资源
    最近更新 更多