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

在我们的Ubuntu服务器中,我们可以在/usr/share/nginx/www中将Nginx用户克隆为具有www-data:www -data所有权的警告

“警告:无法访问”/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:~# 

任何人都可以请帮助我们。

我们尝试了各种select,如手动创build/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做相同的设置时,它的工作正常。

我也是这样做的:

创build一个用户的地理坐标,并添加到sudoers列表,当我们作为geopc用户login,并执行此命令sudo -u www-data git clone -v git@....../test.git它的工作完美。

所以问题是当我们以root用户的身份直接在Ubuntu 14.04上login,并做sudo -u www-data git clone这个警告来的时候。 但它不在Ubuntu 12.04。

我们在Ubuntu 14.04上使用git版本1.9.1,我们也把git升级到版本2.1.1,但是一样。

@mu是对的。 这是您的用户root的HOME环境variables传递给脚本的问题,而不是用户www-data的HOME环境variables。

您只需将-H开关添加到sudo命令即可,所以相当简单:

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

我认为HOMEvariables设置不正确。

从谷歌线程 ,

HOME环境variables设置为/root因此它查看/root/.gitconfig/root/.config/git/config因为非特权用户无权访问/root所以会引发错误。

所以解决scheme是我设置HOME env到用户的HOME目录

你只需要重新启动你的存储实例使用用户,然后根。 通常,用户将与安装时使用的相同。

例如atlstash

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