So stellen Sie Linux mit ACLs wieder her

So stellen Sie Linux mit ACLs wieder her

Ich habe ddein Backup des gesamten Systems erstellt und möchte es auf einem neuen (verschlüsselten) Laufwerk wiederherstellen. Ich habe erfolgreich rsync -adDateien und Berechtigungen für das neu erstellte ext4-Dateisystem wiederhergestellt (ich habe es erfolgreich gebootet und verwende es, um dies zu schreiben), aber ich kann nicht auf Geräte zugreifen, die unter gemountet sind /media/username(sagen wir, ich klicke im Dateimanager auf eine Partition, um sie zu mounten). Dieses Verzeichnis und die Mount-Punkte gehören root:root. Die Berechtigungen bekannter Dateien (z. B. Dinge in /home) sind korrekt eingestellt, daher gehe ich davon aus, dass auch vor dem Backup . /media/*gehörte root. Ich vermute, es gibt ein Problem mitACLS.

  • Gibt es eine Möglichkeit zur WiederherstellungACLs ohne alles ein zweites Mal kopieren zu müssen? (Ich habe festgestelltDasAnleitung, aber es heißt, dass es nicht zuverlässig ist. Ich weiß nicht, ob das für meinen Anwendungsfall gut ist. Außerdem muss ich die Linux-Eigentümerschaft und -Berechtigungen nicht wiederherstellen, das sollte bereits richtig sein und ich möchte es nicht kaputt machen. Vielleicht ist -sdie Option von getfacldas, was ich brauche?)
  • Fehlt noch etwas rsyncund muss es wiederhergestellt werden?
  • Wenn das Speichern nicht möglich ist und ich alles erneut kopieren muss, was soll ich dann verwenden? Ich habe die Anleitung befolgt und den verwendeten tarBefehl verwendet, aber das Weiterleiten von zwei tarBefehlen war wirklich langsam.

ich benutzeLinux Mint 19.3.

edit: Ich habe Backup ( /mnt/) geprüft, ich habe Recht, ACLs sind gesetzt:

sudo getfacl /mnt/media/username/
getfacl: Removing leading '/' from absolute path names
# file: mnt/media/username/
# owner: root
# group: root
user::rwx
user:username:r-x
user:libvirt-qemu:--x
group::---
mask::r-x
other::---

edit2: Ich habe einige Änderungen vorgenommen, seit ich alles kopiert habe, daher würde ich eine Methode bevorzugen, die den Inhalt von Dateien nicht überschreibt.

Antwort1

Lösung, die bei mir funktioniert hat (wenn Sie nur ACLs und Berechtigungen wiederherstellen, aber keine Dateien ändern möchten):

cd /path/to/backup  # so that saved paths would be relative to backed up root
getfacl -R . > ~/facl.bak
cd /
setfacl --restore=/root/facl.bak

Antwort2

Sie können rsync -avXanstelle von verwenden rsync -ad. Dadurch sollten alle fehlenden ACLs angewendet werden, ohne den Dateiinhalt erneut zu kopieren.

Fügen Sie das -uFlag hinzu, um zu verhindern, dass geänderte Dateien aktualisiert werden, und --existingum zu verhindern, dass neue Dateien erstellt werden (beispielsweise wenn Sie sie im Ziel gelöscht haben).

verwandte Informationen