11

In our Ubuntu Server we are able to clone as Nginx user in /usr/share/nginx/www that has www-data:www-data ownership getting a warning as

” warning: unable to access '/root/.config/git/attributes': Permission denied”

We are executing the command as sudo -u www-data git clone <repo>.

With sudo we are getting this warning otherwise its working fine.

We are able to clone as root user and there is no issue.

.gitconfig is located in only root and please see the contents:

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

Can anyone please help us on it.

We tried various option like manually created /root/.config/ directly and changed permission etc.. but nothing is working. Can anyone please help me on it.

Also please see this:

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

So it seems an issue with git setup. Can any one please guide us.


I am using this setup on an Ubuntu 14.04. When I do the same setup in another Ubuntu 12.04 its perfectly working fine.

Also I done this:

Created an user geopc and added to sudoers list and when we logged as geopc user and do this command sudo -u www-data git clone -v git@....../test.git its working perfectly.

So the issue is when we directly logged as root user in Ubuntu 14.04 and do clone as sudo -u www-data git clone this warning comes. But its not in Ubuntu 12.04.

We are using git version 1.9.1 on Ubuntu 14.04 we also upgraded git to version 2.1.1 but same.

sysadmin1138
  • 131,083
  • 18
  • 173
  • 296
Geo
  • 545
  • 3
  • 9
  • 20
  • 1
    It is fairly typical that file system permissions block all other users, including www-data, from accessing files under `/root`. If not the file-system permissions than certainly things like AppArmor or SELinux should block webserver access to /root. – HBruijn Oct 08 '14 at 14:52
  • It seems not.. I modified the question please have a check. – Geo Oct 09 '14 at 04:25
  • duplicate https://stackoverflow.com/questions/27150926/unable-to-access-git-attributes – rofrol Mar 03 '15 at 12:13
  • I'm using this [answer](https://stackoverflow.com/questions/27150926/unable-to-access-git-attributes/47995027#47995027) and this answer working for me. Try yourself – Toir Jun 28 '19 at 10:04

3 Answers3

12

@mu is right. This is an issue of your the HOME environment variable of user root being passed to the script instead of user www-data's HOME environment variable.

You just need to add the -H switch to the sudo command though, so it's fairly easy:

sudo -u www-data -H git clone -v git@....../test.git
quentinadam
  • 321
  • 2
  • 12
1

I think the HOME variable is set up incorrectly.

From google group thread,

the HOME environment variable was set to /root so it looked at /root/.gitconfig or /root/.config/git/config since the unprivileged user didn't have access to /root it threw an error.

So the solution was for me to set the HOME env to the user's HOME directory

Anshul Goyal
  • 406
  • 1
  • 8
  • 18
-1

You just need to restart your stash instance using user other then root. Typically, user would be same as you have used at the time of installation.

e.g. atlstash

Doing this will set your HOME variable as /home/atlstash and resolve your issue

ABs
  • 1