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

Jin*_*Lan 8 git permissions

当我做一些git操作时,例如' git diff'或' git add .',它会显示警告:

unable to access '/Users/dida/.config/git/attributes': Permission denied 
Run Code Online (Sandbox Code Playgroud)

我想知道哪个配置我做错了,我该如何解决?
使用某些命令更好,我使用的是mac命令行

phd*_*phd 15

似乎你已经运行sudo -H,sudo将某些文件的所有权更改为root.拿回文件:

sudo chown -R dida /Users/dida
Run Code Online (Sandbox Code Playgroud)


Ria*_*ini 5

原因

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

由于使用su命令的启动脚本以及不重置环境变量选项(-m),Git尝试读取根配置而不是配置设置:

/bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null"
Run Code Online (Sandbox Code Playgroud)

使用/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
Run Code Online (Sandbox Code Playgroud)

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

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

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

要让Bitbucket Server在启动时自动启动,请在以下位置运行chkconfig atlbitbucket

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

make prefix=/usr/local/git all
make prefix=/usr/local/git install
Run Code Online (Sandbox Code Playgroud)

也许这篇文章可以为您提供帮助https://confluence.atlassian.com/bitbucketserverkb/permission-denied-on-git-config-file-779171763.html


Von*_*onC 1

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

确保对当前用户正确设置它们(检查命令的id结果

id -a
Run Code Online (Sandbox Code Playgroud)

还要检查git config -l --show-originGit尝试访问这些配置文件的位置。