vollständige /etc/-Wiederherstellung von Git

vollständige /etc/-Wiederherstellung von Git

Ich habe einen CentOS 6.9-Server.

Das gesamte /etcVerzeichnis unterlag der Versionskontrolle.

Ich habe versehentlich „git rm -R“ darauf ausgeführt. Der Server funktionierte sofort nicht mehr und meine SSH-Sitzung ging verloren.

Es gelang mir, eine IP-Konsole an den Server anzuschließen und vom USB-Stick mit einem Live-Linux zu booten 'git reset --hard'. Ich habe Folgendes ausgeführt:

Jetzt ist das Index-/Arbeitsverzeichnis sauber. Ich habe das System neugestartet, aber es funktioniert immer noch nicht. Es reagiert auf Ping, aber ich kann immer noch keine SSH-Verbindung herstellen.

Auf der IP-Konsole kann ich mich nicht einmal anmelden, nachdem ich einen beliebigen Benutzer eingegeben habe, werde ich erneut nach dem Benutzer gefragt.

Vom Recovery-Linux aus habe ich die Fehler überprüft /var/log/boot.log- der erste Fehler betrifft iptables-restore

error while loading shared libraries libip4tc.so.0 : cannot open shared object file: No such file or directory

Als nächstes kommt rsyslog.d

CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'

Die Datei ist eindeutig da, wenn ich sie über die Live-Wiederherstellung von Linux überprüfe. Ich vermute ein Berechtigungsproblem, habe aber keine Ahnung.

Jede Hilfe ist willkommen. Danke.

Antwort1

Die Eigentümerschaft und Berechtigungen sind wahrscheinlich falsch. Da Sie diese nicht verfolgt haben, müssen Sie sie für jede einzelne Datei manuell korrigieren.

Git verfolgt von sich aus weder die Eigentumsverhältnisse noch die Berechtigungen von Dateien. Dafür ist es auch nicht gedacht. Diese Metadaten wurden überhaupt nicht verfolgt und gingen daher verloren.

Dies ist, was Systeme wieusw.Keepersind dafür da. Sie umschließen Git, um /etcdie Versionskontrolle zu behalten, und behalten gleichzeitig die Metadaten bei, die Git nicht hat, und stellen sie bei Bedarf wieder her. Um dies in Zukunft zu verhindern, sollten Sie etckeeper oder ein ähnliches Tool verwenden.

Möglicherweise möchten Sie auch eine Art von Backups einrichten. Sie scheinen derzeit keine Backups zu haben, und das ist ein Rezept für eine Katastrophe. Sie hatten Glück, mit so wenig Datenverlust davonzukommen. Beim nächsten Mal haben Sie vielleicht nicht so viel Glück.

Antwort2

Ja, Sie haben ein Problem mit den Berechtigungen und dem Dateibesitz. Leidergit speichert nur den Inhalt und den ausführbaren Teil einer Datei, daher gehen die Lese-/Schreibberechtigungen, Benutzer- und Gruppeneigentümer und ACLs (sofern vorhanden) verloren, wenn Sie von wiederherstellen git reset --hard. Das reicht völlig aus, um Ihren Host zu beschädigen, wenn das wiederherzustellende Verzeichnis /etc ist.

Die beste Chance auf eine Wiederherstellung bietet eine vollständige Sicherung des Dateisystems, die alle Dateieigentümer und Berechtigungen enthält.

Wenn Sie keinen davon haben, können Sie versuchen, die Eigentümerschaft und Berechtigungen manuell wiederherzustellen, indem Sie sie mit einem ähnlichen CentOS-Host vergleichen. Aber es könnte weniger Arbeit sein, das Betriebssystem von Grund auf neu zu installieren. Tut mir leid.

verwandte Informationen