So behalten Sie Dateiberechtigungen beim Kopieren von Dateien unter Linux bei
Dateiberechtigungen sind ein integraler Bestandteil der Unix-Spezifikation. Es gibt jedoch bestimmte Dinge, die Anfänger oft nicht kennen, z. B. wie sie Dateiberechtigungen in Linux beibehalten, während sie kopiert werden.
Da kopierte Dateien im Wesentlichen neue Dateien sind, hängt ihre Berechtigung von der umask des aktuellen Benutzers ab. Dies kann zu Situationen führen, in denen kopierte Dateien oder Ordner ganz andere Berechtigungen haben als die Quelle.
Zum Glück für Sie ist es einfach, Dateiberechtigungen in Linux mit Standardbefehlszeilentools wie cp und rsync beizubehalten. Sehen Sie sich die folgenden Beispiele an, um zu sehen, wie Sie Berechtigungen in Linux kopieren und beibehalten.
Beibehalten von Dateiberechtigungen mit cp
Der Standardbefehl cp enthält alles, was Sie zum Beibehalten der Dateiberechtigungen beim Kopieren benötigen. Sie können die Option -p von cp verwenden, um den Modus, den Besitz und die Zeitstempel der Datei beizubehalten.
cp -p source-file dest-file
Sie müssen diesem Befehl jedoch die Option -r hinzufügen, wenn Sie mit Verzeichnissen arbeiten. Es kopiert alle Unterverzeichnisse und einzelne Dateien, wobei ihre ursprünglichen Berechtigungen intakt bleiben.
cp -rp source-dir/ dest-dir/
Sie können auch die Option -a von cp verwenden, um Dateiberechtigungen beizubehalten. Dies ermöglicht es den Archivmodus, alles von Dateiberechtigungen zu SELinux Kontexten zu erhalten.
cp -a source-dir/ dest-dir/
Beibehalten von Berechtigungen in Linux mit rsync
Sie können auch das Dienstprogramm rsync verwenden, um Kopierberechtigungen unter Linux zu erhalten. Viele Administratoren bevorzugen rsync gegenüber cp aufgrund der schnelleren Kopiergeschwindigkeit. Da rsync nur den aktualisierten Teil der Datei kopiert, eignen sie sich eher für Aufgaben wie das Klonen Ihrer Linux-Festplatte .
rsync -a source-dir/ dest-dir
Die Option -a von rsync ermöglicht Archiv – Modus, der Konserven – Datei wie Rechte und Eigentümer – Attribute. Sie können die Option -v für eine ausführliche Ausgabe und -h für die Anzeige von Zahlen in einem für Menschen lesbaren Format verwenden.
rsync -avh source-dir/ dest-dir
Beachten Sie auch die Ausnahme des abschließenden Schrägstrichs ( / ) aus dem Zielverzeichnis. Wenn Sie dem Ziel den Endschrägstrich hinzufügen, kopiert rsync die Dateien in eine andere Unterverzeichnisebene.
Überprüfen Sie die Dateiberechtigungen in Linux
Sie können die Dateiberechtigungen unter Linux einfach mit dem Befehl getfacl (get file access controllists) überprüfen. Es überprüft, ob die Berechtigungen wie erwartet beibehalten wurden.
getfacl source-file
getfacl dest-file
Kopieren von Dateien unter Beibehaltung der Berechtigungen in Linux
Sowohl cp als auch rsync bieten Standardoptionen zum Beibehalten von Dateiberechtigungen unter Linux. Sie können cp für alltägliche Aufgaben verwenden, während rsync besser für umfangreiche Daten geeignet ist. Stellen Sie sicher, dass Sie die Berechtigungen mit getfacl validieren, wenn Sie mit dem Kopieren fertig sind.
Obwohl rsync Dateien zwischen entfernten Rechnern kopieren kann, ist der Befehl scp (secure copy) eine weitere brauchbare Option für diese Aufgabe. Mit scp können Sie Dateien sicher auf und von vernetzten Systemen sichern.