在我们的 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 并解决您的问题