警告remote: warning: unable to access '/root/.config/git/attributes': Permission denied
的含义及其带来的影响是什么?
$git clone git://git.eclipse.org/gitroot/egit/egit.git
Cloning into 'egit'...
remote: warning: unable to access '/root/.config/git/attributes': Permission denied
remote: Counting objects: 57926, done.
remote: Compressing objects: 100% (11872/11872), done.
remote: Total 57926 (delta 30734), reused 56308 (delta 29136)
Receiving objects: 100% (57926/57926), 32.29 MiB | 1021 KiB/s, done.
Resolving deltas: 100% (30734/30734), done.
Checking out files: 100% (1483/1483), done.
我应该向托管人报告潜在的基础设施问题吗?
答案 0 :(得分:73)
我自己遇到了这种情况。在验证它正在查看~/.config/
后,我发现该文件夹的所有者是root
。我将其更改为my_user_name
并且有效。
cd ~/
ls -al
<Noticed .config was owned by root, unlike everything else in $HOME>
sudo chown -R $(whoami) .config
它也有助于了解原因:首次运行使用它的程序时会创建此目录。如果命令以root
运行,则会导致此权限问题。
例如,如果~/.config
目录尚不存在,并且您运行sudo htop
,则~/.config
和~/.config/htop
将由{{1}创建并拥有}}。之后,常规git命令将无法访问root
并将发出上述警告。 (信用:用户mehtunguh)
带~/.config
的{{1}}选项是递归修改权限。如果您在-R
答案 1 :(得分:6)
我认为你的HOME
环境变量设置不正确。
HOME环境变量设置为
/root
,因此它查看了/root/.gitconfig
或/root/.config/git/config
,因为没有特权的用户无法访问/root
它投掷了错误。因此解决方案是让我将HOME环境设置为用户的HOME目录
答案 2 :(得分:2)
Git正试图从root而不是用户配置读取配置。请检查您的环境变量是否具有正确的git配置集,或者可以访问主文件夹中的.gitconfig文件。
答案 3 :(得分:0)
我遇到了类似的问题,并且能够在服务器端修复它。 git在uwsgi下运行,所以我在uwsgi config中添加了以下行:
env = HOME=/srv/git
其中/ srv / git由uwsgi运行并由其制成chmod u+rwX /srv/git
的同一个uid拥有
因此,您需要在服务器端将HOME变量指向运行git的进程到该进程将具有读取/写入/遍历权限的目录。
答案 4 :(得分:0)
转到根目录
cd ~/
编写以下代码:
sudo chown -R username /Users/username
用户名是系统的用户名。
答案 5 :(得分:0)
对于Windows,可能是某些情况,例如CMD或SSH客户端之类的进程打开了一些Git试图删除的文件夹。
答案 6 :(得分:-2)
您还可以检查计算机上/root/.config/git/
文件夹的所有者