Geo*_*Geo 11 ubuntu git gitlab
在我们的 Ubuntu 服务器中,我们能够以 Nginx 用户的身份进行克隆,/usr/share/nginx/www该用户具有www-data:www-data 所有权,但会收到警告
“警告:无法访问'/root/.config/git/attributes':权限被拒绝”
我们正在执行命令 sudo -u www-data git clone <repo>.
使用 sudo 我们会收到此警告,否则它可以正常工作。
我们能够以 root 用户身份进行克隆并且没有问题。
.gitconfig 仅位于 root 中,请查看内容:
root@geo:~# cat /root/.gitconfig
[user]
name = pc_user
email = pcgeopc@gmail.com
root@geo:~#
Run Code Online (Sandbox Code Playgroud)
任何人都可以请帮助我们。
我们尝试了各种选项,例如/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
Run Code Online (Sandbox Code Playgroud)
所以这似乎是 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 但相同。
que*_*dam 12
@mu 是对的。这是您将rootuserwww-data的 HOME 环境变量而不是 user的 HOME 环境变量传递给脚本的问题。
不过,您只需将 -H 开关添加到 sudo 命令中,因此它相当简单:
sudo -u www-data -H git clone -v git@....../test.git
Run Code Online (Sandbox Code Playgroud)