无法访问‘/root/.config/git/attributes’:权限 > 被拒绝”

无法访问‘/root/.config/git/attributes’:权限 > 被拒绝”

在我们的 Ubuntu Server 中,我们可以克隆为/usr/share/nginx/www具有www-data:www-data 所有权的 Nginx 用户,并收到以下警告:

“警告:无法访问‘/root/.config/git/attributes’:权限被拒绝”

我们正在执行命令sudo -u www-data git clone <repo>.

使用 sudo 时我们会收到此警告,否则它可以正常工作。

我们可以以 root 用户身份进行克隆,并且没有任何问题。

.gitconfig 仅位于根目录,请查看其内容:

root@geo:~# cat /root/.gitconfig
[user]
        name = pc_user
        email = [email protected]
root@geo:~#

有人可以帮助我们吗?

我们尝试了各种选项,例如/root/.config/直接手动创建和更改权限等。但没有任何效果。有人能帮我吗?

另请参阅此内容:

root@geo:/setup/test# ll /setup/
total 16
drwxr-xr-x  4 www-data www-data 4096 Oct  9 00:14 ./
drwxr-xr-x 24 root     root     4096 Oct  9 00:14 ../
drwxr-xr-x  3 www-data www-data 4096 Oct  9 00:14 test/

root@geo:/setup/test# sudo -u www-data git clone -v git@....../test.git
Cloning into 'test'...
remote: Counting objects: 8323, done.
remote: Compressing objects: 100% (6459/6459), done.
remote: Total 8323 (delta 1543), reused 8241 (delta 1500)
Receiving objects: 100% (8323/8323), 39.85 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (1543/1543), done.
Checking connectivity... done.
warning: unable to access '/root/.config/git/attributes': Permission denied

所以这似乎是 git 设置的问题。有谁能指导我们吗?


我在 Ubuntu 14.04 上使用此设置。当我在另一个 Ubuntu 12.04 上执行相同的设置时,它运行良好。

我也做了这个:

创建了一个用户 geopc 并将其添加到 sudoers 列表中,当我们以 geopc 用户身份登录并执行此命令时,sudo -u www-data git clone -v git@....../test.git 它运行良好。

所以问题是当我们在 Ubuntu 14.04 中直接以 root 用户身份登录并执行克隆时sudo -u www-data git clone出现此警告。但在 Ubuntu 12.04 中没有这个问题。

我们在 Ubuntu 14.04 上使用 git 版本 1.9.1,我们也将 git 升级到版本 2.1.1,但情况相同。

答案1

@mu 是对的。这是由于您将用户的 HOME 环境变量而不是用户的 HOME 环境变量root传递给脚本的问题。www-data

您只需要在 sudo 命令中添加 -H 开关,所以这相当容易:

sudo -u www-data -H git clone -v git@....../test.git

答案2

我认为HOME变量设置不正确。

谷歌群组主题

HOME 环境变量被设置为,/root因此它查看/root/.gitconfig/root/.config/git/config由于非特权用户无权访问/root它而引发错误。

因此,我的解决方案是将 HOME 环境设置为用户的 HOME 目录

答案3

您只需使用 root 以外的用户重新启动存储实例即可。通常,用户与您在安装时使用的用户相同。

例如 atlstash

这样做会将您的 HOME 变量设置为 /home/atlstash 并解决您的问题

相关内容