无法访问'/Users/dida/.config/git/attributes':权限被拒绝

时间:2017-07-20 03:08:33

标签: git permissions

当我执行一些git操作时,例如“git diff”或“git add .”,它会显示警告:

unable to access '/Users/dida/.config/git/attributes': Permission denied 

我想知道哪个配置我做错了,我该怎么办呢? 使用某些命令会更好,我使用的是mac命令行

6 个答案:

答案 0 :(得分:10)

似乎您已经运行sudo -H并且sudo已将某些文件的所有权更改为root。拿回文件:

sudo chown -R dida /Users/dida

答案 1 :(得分:4)

<强>原因

Git从各种路径读取配置设置,但无权访问其中一些路径。

Git尝试读取root配置设置而不是配置设置,因为启动脚本使用su命令而不重置环境变量选项(-m):

/bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null"

使用/etc/init.d/atlbitbucket启动脚本以root身份启动Bitbucket Server。由于init.d脚本调用使用su -m的start-bitbucket.sh,因此会导致root的环境变量被保留,并且atlbitbucket无权在根主目录中写入。

Git是使用默认设置从源代码编译的,这可以防止除了编译Git的用户以外的任何用户运行它

解决

修复有关执行命令的Bitbucket Server用户的文件和目录的权限:

chown <USER>.<GROUP> -R /home/<USER>/.config
chown <USER>.<GROUP> -R /home/<USER>/.gitconfig

(info)通过操作系统中的用户名和组更改USER.GROUP。

如果Bitbucket Server启动脚本有su命令,请确保未使用选项-m。

如果使用/etc/init.d/atlbitbucket启动Bitbucket Server,请启动切换到使用服务atlbitbucket start启动Bitbucket服务器

要让Bitbucket Server在启动时自动启动,请运行chkconfig atlbitbucket

使用更合理的默认值重新编译Git:

make prefix=/usr/local/git all
make prefix=/usr/local/git install

或者这篇文章可以帮助你https://confluence.atlassian.com/bitbucketserverkb/permission-denied-on-git-config-file-779171763.html

答案 2 :(得分:1)

警告:无法访问“ /Users/raavan/.config/git/ignore”:权限被拒绝 警告:无法访问“ /Users/raavan/.config/git/attributes”:权限不足

好!如果您有类似的东西,这就是解决方案。 使用sudo命令

sudo git add --all, sudo git commit -m“”

这将在Mac OS中为我工作。

如果有人知道sudo命令为何起作用或以其他方式运行,请响应!。

答案 3 :(得分:0)

git使用HOMEXDG_CONFIG_HOME环境设置来查找配置文件。

确保它们已正确设置给您当前的用户(查看Dragging Status #1的结果)

id -a

同时检查git config -l --show-origin以查看 Git正在尝试访问这些配置文件的位置。

答案 4 :(得分:0)

尝试sudo -u用户--set-home git clone http://github.com/repohere 这对我有用。

答案 5 :(得分:0)

在找到有关文件的更多信息后,我注意到该文件不是我的用户(“ ubuntu”)拥有,而是“ root”拥有。

ls -dl /home/$USER/.config找出文件的用户和组


sudo chown $USER -R /home/$USER/.config更新文件的用户 sudo chgrp $USER -R home/$USER/.config/将文件组更新为当前用户

现在,再次使用ls获取文件详细信息时,您会看到信息已更新。

为我解决了这个问题。