impossibile accedere a "/root/.config/git/attributes": Autorizzazione> negato "


10

Nel nostro Ubuntu Server siamo in grado di clonare come utente Nginx in /usr/share/nginx/wwwche ha www-data:wwwla proprietà -data ottenere un avvertimento

"Avviso: impossibile accedere a '/root/.config/git/attributes': autorizzazione negata"

Stiamo eseguendo il comando come sudo -u www-data git clone <repo>.

Con sudo stiamo ricevendo questo avviso, altrimenti funziona bene.

Siamo in grado di clonare come utente root e non ci sono problemi.

.gitconfig si trova solo in root e vedere i contenuti:

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

Qualcuno può aiutarci per favore.

Abbiamo provato varie opzioni come la creazione manuale /root/.config/diretta e l'autorizzazione modificata, ecc., Ma non funziona nulla. Qualcuno può aiutarmi per favore.

Vedi anche questo:

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

Quindi sembra un problema con l'installazione di git. Qualcuno può guidarci per favore.


Sto usando questa configurazione su Ubuntu 14.04. Quando eseguo la stessa installazione in un altro Ubuntu 12.04, funziona perfettamente.

Inoltre ho fatto questo:

Creato un utente geopc e aggiunto all'elenco sudoers e quando ci siamo registrati come utente geopc e facciamo questo comando sudo -u www-data git clone -v git@....../test.git funziona perfettamente.

Quindi il problema è quando abbiamo registrato direttamente come utente root in Ubuntu 14.04 e cloniamo quando sudo -u www-data git clonearriva questo avviso. Ma non è in Ubuntu 12.04.

Stiamo usando git versione 1.9.1 su Ubuntu 14.04, ma abbiamo anche aggiornato git alla versione 2.1.1 ma lo stesso.


1
È abbastanza tipico che le autorizzazioni del file system impediscano a tutti gli altri utenti, inclusi i dati www, di accedere ai file in /root. Altrimenti le autorizzazioni del file system che certamente cose come AppArmor o SELinux dovrebbero bloccare l'accesso del server web a / root.
HBruijn,

Sembra di no .. Ho modificato la domanda, per favore, controlla.
Geo


Sto usando questa risposta e questa risposta funziona per me.
Mettiti alla

Risposte:


10

@mu ha ragione. Questo è un problema della variabile d'ambiente HOME dell'utente che rootviene passata allo script invece della www-datavariabile d'ambiente HOME dell'utente .

Devi solo aggiungere l'opzione -H al comando sudo, quindi è abbastanza facile:

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

1

Penso che la HOMEvariabile sia impostata in modo errato.

Dal thread del gruppo di Google ,

la variabile di ambiente HOME è stata impostata in /rootmodo che guardasse /root/.gitconfigo /root/.config/git/configpoiché l'utente non privilegiato non aveva accesso ad /rootessa ha generato un errore.

Quindi la soluzione è stata per me impostare l'home ENV sulla directory HOME dell'utente


per me stava iniziando: HOME = / home / git git daemon ...
rofrol

-1

Devi solo riavviare l'istanza di stash usando l'utente diverso da root. In genere, l'utente sarebbe lo stesso che hai usato al momento dell'installazione.

ad esempio atlstash

In questo modo imposterai la tua variabile HOME come / home / atlstash e risolverai il problema

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.