fatal: Unsicheres Repository (‘/home/repon’ gehört jemand anderem)
Lesezeit: 5 Minuten
XiaoFangyu
Ich habe ein Fehlerprotokoll von Apache2 gefunden, das schwerwiegend ist: unsafe repository ('/home/repon' is owned by someone else)
Es passiert, weil ich habe git rev-parse --symbolic-full-name --abbrev-ref HEAD' in PHP-Code und es sieht so aus neue Git-Sicherheitsänderung nicht mehr erlaubt www-data um diesen Git-Befehl auszuführen.
git config --global --add safe.directory /homerepon funktioniert nicht. Hat jemand einen Workaround um dieses Problem zu lösen?
Git-Version: 2.35.3
PHP-Version: 7.4
Apache2-Version: 2.4.41
Dies hängt eng mit Q1 und Q2 zusammen; siehe beide Fragen und alle Antworten dort.
– Torek
17. April um 12:34 Uhr
Lesen Sie für eine fundierte Entscheidung auch die URL, auf die Sie in Ihrer Frage verwiesen haben, und studieren Sie die Git-Dokumentation für die Teile, auf die sie verweist. Sie haben nur ein Konfigurationsproblem aufgrund kürzlich eingeführter Einschränkungen, damit Sie nicht so leicht in ein Sicherheitsproblem geraten.
– hakre
17. April um 12:40 Uhr
8 Tintenfisch
Dies trat erstmals mit der Veröffentlichung des Sicherheitsupdates git 2.35.2 auf, das die beschriebenen Schwachstellen behebt hier. Credits @Juan-Kabbali
Hier sind 4 mögliche Lösungen:
Vertrauen Sie dem Git-Verzeichnis (tun Sie es, wenn Sie wissen, dass der Inhalt des Verzeichnisses sicher ist)
Dazu kommt ~/.gitconfig das safe Gruppe wie in diesem Beispiel gezeigt
[safe]
directory = /home/repon
Führen Sie den Befehl als den richtigen Benutzer aus, zum Beispiel:
sudo -u ubuntu -- git status
Notiz: Dies erfordert Benutzer www-data um die Berechtigung zum Ausführen des Git-Befehls als Benutzer zu haben ubuntu (vorausgesetzt, Ubuntu ist der Eigentümer des Repositorys). Damit dies funktioniert, müssen Sie eine neue Datei darin hinzufügen /etc/sudoers.d/ mit folgendem Inhalt:
www-data ALL=(ubuntu) NOPASSWD: /usr/bin/git
Dies kann Auswirkungen auf die Sicherheit haben, wenden Sie sich daher zuerst an Ihren Sicherheitsmitarbeiter.
Ändern Sie den Eigentümer des Git-Repositorys in www-data
sudo chown -R www-data:www-data /home/repon
Downgrade von git als vorübergehende Lösung. Zum Beispiel in Ubuntu:
Notiz: Zumindest unter Windows scheinen alle Git-Repositories auf auswerfbaren Laufwerken als unsicher zu gelten und das Ändern des Eigentums scheint nicht zu funktionieren.
Ich musste laufen sudo git config --global --add safe.directory /home/repon
– SAIF AHMED ANIK
21. April um 20:39 Uhr
Huber Thomas
Für Windows musste ich Folgendes tun:
Klicken Sie mit der rechten Maustaste auf den Git-Repository-Ordner, in dem der Fehler auftritt
Wählen Sie die Registerkarte Sicherheit, dann wählen Sie „Erweitert“ (linkes Bild: „Erweitert“ drücken)
Überprüfen Sie die Besitzereigenschaften (rechtes Bild: “Besitzer”) im oberen Bereich des neu geöffneten Fensters und passen Sie sie an (rechtes Bild: “Ändern” drücken), dies muss Ihr funktionierendes Windows-Konto sein
Drücken Sie OK und warten Sie, bis die Rechte gesetzt wurden, dann sollte die Git-Fehlermeldung Geschichte sein
Diese Lösung funktioniert auch, wenn Sie das Verzeichnis nachträglich verschieben oder umbenennen. Meiner Meinung nach sollte man dieser Lösung den Vorzug geben
Dies wäre sinnvoll, da Git selbst dies vorgibt, aber das Ausführen des Befehls gibt einen Fehler aus: error: wrong number of arguments, should be 2
– Steven Gann
20. April um 17:26 Uhr
@StevenGann Stellen Sie sicher, dass Sie das Verzeichnisargument am Ende angeben.
– genonym
20. April um 19:10 Uhr
@StevenGann Außerdem wird * von Git 2.36 unterstützt, daher müssen Sie es möglicherweise aktualisieren.
– genonym
20. April um 19:33 Uhr
In bash würden Sie vermutlich entkommen wollen * mit '*' Andernfalls wird es nur auf Dateien im aktuellen Verzeichnis erweitert?
– Ciro Santilli Путлер Капут 六四事
23. April um 18:59 Uhr
Ich hatte ein ähnliches Problem – eine Webanwendung, die Git verwendet, konnte nicht auf das Repository zugreifen.
Ausführen des vorgeschlagenen Befehls (git config --global --add safe.directory /repo/path) funktionierte nicht so gut, weil ich es als „me“ und nicht als „www-data“-Benutzer ausgeführt habe.
Die Lösung war eigentlich ganz einfach – ich habe sie erstellt .gitconfig Datei in /var/www Verzeichnis (das in meinem Fall das Zuhause des www-data-Benutzers ist) und put
[safe]
directory = /repo/path
dort.
Keine der oben genannten Lösungen hat bei mir funktioniert, aber das Ändern des Eigentümers des Repositorys hat funktioniert. Ich renne Ubuntu 20.04.4 LTS und ich habe den folgenden Befehl ausgeführt:
sudo chown -R username:group directory
Als Teil der Automatisierung beinhaltete unser Szenario das mehrfache Aufrufen eines Skripts, und wir kennen den Arbeitsbereich nicht im Voraus.
Also in unserem Fall git config --global --add safe.directory * mehrere Einträge erstellt in ~/.gitconfig.
git config --global --replace-all safe.directory '*' hat uns geholfen sicherzustellen, dass keine doppelten Einträge vorhanden sind.
Dregad
Ich sage vielleicht das Offensichtliche, aber ich denke, es ist erwähnenswert, dass ich renne git config --global --add safe.directory /home/repon muss für die getan werden www-Daten Benutzer.
Problem 1: Das HOME-Verzeichnis von www-data ist /var/wwwalso mit a .gitconfig Datei kann ein Sicherheitsrisiko bestehen (Herausgeben von Serverpfaden / Config).
Problem 2: Bei Apache/Ubuntu 20.04 ist die Umgebungsvariable HOME standardmäßig nicht definiert (/etc/apache2/envvars setzt es zurück), sodass die Konfiguration nicht übernommen wird (git config --global scheitert mit fatal: $HOME nicht gesetzt).
Ich habe es geschafft, das Problem zu beheben, indem ich das Repository zur Systemkonfiguration von git hinzugefügt habe, dh git config --system --add safe.directory /home/repon.
10144400cookie-checkfatal: Unsicheres Repository (‘/home/repon’ gehört jemand anderem)yes
Dies hängt eng mit Q1 und Q2 zusammen; siehe beide Fragen und alle Antworten dort.
– Torek
17. April um 12:34 Uhr
Lesen Sie für eine fundierte Entscheidung auch die URL, auf die Sie in Ihrer Frage verwiesen haben, und studieren Sie die Git-Dokumentation für die Teile, auf die sie verweist. Sie haben nur ein Konfigurationsproblem aufgrund kürzlich eingeführter Einschränkungen, damit Sie nicht so leicht in ein Sicherheitsproblem geraten.
– hakre
17. April um 12:40 Uhr