Zugriff auf '/root/.config/git/attributes' nicht möglich: Berechtigung> verweigert ”

10

In unserem Ubuntu-Server können wir als Nginx-Benutzer klonen /usr/share/nginx/www, der über www-data:wwwden Besitz von -data verfügt und eine Warnung erhält

”Warnung: Zugriff auf '/root/.config/git/attributes' nicht möglich: Berechtigung verweigert”

Wir führen den Befehl als aus sudo -u www-data git clone <repo>.

Mit sudo bekommen wir diese Warnung, sonst funktioniert es gut.

Wir können als Root-Benutzer klonen und es gibt kein Problem.

.gitconfig befindet sich nur im Stammverzeichnis und siehe Inhalt:

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

Kann uns bitte jemand dabei helfen.

Wir haben verschiedene Optionen ausprobiert, wie manuell /root/.config/direkt erstellt und Berechtigungen geändert usw., aber nichts funktioniert. Kann mir bitte jemand dabei helfen.

Bitte beachten Sie auch dies:

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

Es scheint also ein Problem mit dem Git-Setup zu sein. Kann uns bitte jemand führen.


Ich verwende dieses Setup auf einem Ubuntu 14.04. Wenn ich das gleiche Setup in einem anderen Ubuntu 12.04 mache, funktioniert es einwandfrei.

Auch das habe ich gemacht:

Erstellt einen Benutzer geopc und hinzugefügt zur sudoers Liste und wenn wir uns als geopc Benutzer angemeldet haben und diesen Befehl ausführen, sudo -u www-data git clone -v git@....../test.git funktioniert es perfekt.

Das Problem ist also, wenn wir uns in Ubuntu 14.04 direkt als Root angemeldet haben und klonen, sobald sudo -u www-data git clonediese Warnung kommt. Aber es ist nicht in Ubuntu 12.04.

Wir verwenden Git Version 1.9.1 unter Ubuntu 14.04. Wir haben Git auch auf Version 2.1.1 aktualisiert, aber das gleiche.

Geo
quelle
1
Es ist ziemlich typisch, dass Dateisystemberechtigungen alle anderen Benutzer, einschließlich WWW-Daten, daran hindern, auf Dateien unter zuzugreifen /root. Wenn nicht, sollten die Dateisystemberechtigungen Dinge wie AppArmor oder SELinux den Webserverzugriff auf / root blockieren.
HBruijn
Es scheint nicht .. Ich habe die Frage geändert, bitte überprüfen Sie.
Geo
Ich benutze diese Antwort und diese Antwort funktioniert für mich. Versuchen Sie es selbst
Toir427

Antworten:

10

@mu ist richtig. Dies ist ein Problem, bei dem die HOME-Umgebungsvariable des Benutzers rootanstelle der HOME-Umgebungsvariablen des Benutzers an das Skript übergeben www-datawird.

Sie müssen jedoch nur den Schalter -H zum Befehl sudo hinzufügen, damit es ziemlich einfach ist:

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

Ich denke, die HOMEVariable ist falsch eingerichtet.

Aus dem Google-Gruppenthread ,

Die Umgebungsvariable HOME wurde so eingestellt, /rootdass sie angezeigt wurde /root/.gitconfigoder /root/.config/git/configda der nicht privilegierte Benutzer keinen Zugriff darauf hatte /root, wurde ein Fehler ausgegeben.

Die Lösung bestand also darin, die HOME-Umgebung auf das HOME-Verzeichnis des Benutzers zu setzen

mu 無
quelle
für mich
fing
-1

Sie müssen Ihre Stash-Instanz nur mit einem anderen Benutzer als root neu starten. In der Regel entspricht der Benutzer dem, den Sie zum Zeitpunkt der Installation verwendet haben.

zB atlstash

Dadurch wird Ihre HOME-Variable als / home / atlstash festgelegt und das Problem behoben

Abs
quelle