原因
Git 从多种路径读取配置设置,但其中一些路径无权访问。
由于启动脚本使用带有不重置环境变量选项 (-m) 的 su 命令,Git 尝试读取 root 配置设置而不是配置设置:
/bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/startup.sh &> /dev/null"
Bitbucket 服务器正在使用 /etc/init.d/atlbitbucket 启动脚本以 root 身份启动。由于 init.d 脚本调用了使用 su -m 的 start-bitbucket.sh,这会导致 root 的环境变量被保留,并且 atlbitbucket 没有写入 root 主目录的权限。
Git 是使用默认设置从源代码编译的,这会阻止除编译 Git 的用户之外的任何用户运行它
分辨率
修复执行命令的 Bitbucket Server 用户对文件和目录的权限:
chown <USER>.<GROUP> -R /home/<USER>/.config
chown <USER>.<GROUP> -R /home/<USER>/.gitconfig
(信息)通过您的操作系统中的用户名和组更改 USER.GROUP。
如果 Bitbucket Server 启动脚本有 su 命令,请确保没有使用 -m 选项。
如果 Bitbucket Server 正在使用 /etc/init.d/atlbitbucket start 启动,则切换到使用 service atlbitbucket start 启动 Bitbucket Servering
要让 Bitbucket Server 在启动时自动启动,请运行 chkconfig atlbitbucket on
使用更合理的默认值重新编译 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