impossible d'accéder à «/root/.config/git/attributes»: autorisation> refusée »

10

Dans notre serveur Ubuntu, nous pouvons cloner en tant qu'utilisateur Nginx dans /usr/share/nginx/wwwlequel la www-data:wwwpropriété -data reçoit un avertissement en tant que

"Avertissement: impossible d'accéder à" /root/.config/git/attributes ": autorisation refusée"

Nous exécutons la commande comme sudo -u www-data git clone <repo>.

Avec sudo, nous recevons cet avertissement, sinon il fonctionne correctement.

Nous pouvons cloner en tant qu'utilisateur root et il n'y a aucun problème.

.gitconfig est situé uniquement en root et veuillez voir le contenu:

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

Quelqu'un peut-il nous aider à ce sujet?

Nous avons essayé diverses options comme la création /root/.config/directe et la modification des autorisations, etc., mais rien ne fonctionne. Quelqu'un peut-il m'aider s'il vous plaît?

Veuillez également voir ceci:

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

Cela semble donc un problème avec la configuration de git. Quelqu'un peut-il nous guider?


J'utilise cette configuration sur un Ubuntu 14.04. Lorsque je fais la même configuration dans un autre Ubuntu 12.04, cela fonctionne parfaitement.

J'ai aussi fait ça:

Créé un utilisateur geopc et ajouté à la liste sudoers et lorsque nous nous sommes connectés en tant qu'utilisateur geopc et que cette commande sudo -u www-data git clone -v git@....../test.git fonctionne parfaitement.

Le problème est donc lorsque nous nous sommes directement connectés en tant qu'utilisateur root dans Ubuntu 14.04 et clonons lorsque sudo -u www-data git clonecet avertissement arrive. Mais ce n'est pas dans Ubuntu 12.04.

Nous utilisons git version 1.9.1 sur Ubuntu 14.04, nous avons également mis à niveau git vers la version 2.1.1 mais la même chose.

Géo
la source
1
Il est assez courant que les autorisations du système de fichiers empêchent tous les autres utilisateurs, y compris www-data, d'accéder aux fichiers sous /root. Si ce n'est pas les autorisations du système de fichiers, il est certain que des choses comme AppArmor ou SELinux devraient bloquer l'accès du serveur Web à / root.
HBruijn
Il semble que non. J'ai modifié la question, veuillez vérifier.
Geo
J'utilise cette réponse et cette réponse fonctionne pour moi. Essayez-vous
Toir427

Réponses:

10

@mu a raison. Il s'agit d'un problème de roottransmission de la variable d'environnement HOME de l'utilisateur au script au lieu de www-datala variable d'environnement HOME de l'utilisateur .

Vous avez juste besoin d'ajouter le commutateur -H à la commande sudo, donc c'est assez simple:

sudo -u www-data -H git clone -v git@....../test.git
quentinadam
la source
1

Je pense que la HOMEvariable est mal configurée.

À partir du fil de discussion Google ,

la variable d'environnement HOME a été définie pour /rootqu'elle soit consultée /root/.gitconfigou, /root/.config/git/configcar l'utilisateur non privilégié n'y ayant pas accès /roota généré une erreur.

Donc, la solution était pour moi de définir le HOME env dans le répertoire HOME de l'utilisateur

mu 無
la source
pour moi ça commençait: HOME = / home / git git daemon ...
rofrol
-1

Vous avez juste besoin de redémarrer votre instance de stash en utilisant un utilisateur autre que root. En règle générale, l'utilisateur sera le même que celui que vous avez utilisé au moment de l'installation.

par exemple atlstash

Cela définira votre variable HOME comme / home / atlstash et résoudra votre problème

Abdos
la source