So behalten Sie die Dateiberechtigungen beim Kopieren von Dateien unter Linux bei

Dateiberechtigungen sind ein wesentlicher Bestandteil der Unix-Spezifikation. Es gibt jedoch bestimmte Dinge, die Startbenutzer häufig nicht kennen, z. B. das Beibehalten von Dateiberechtigungen unter Linux beim Kopieren.

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 völlig andere Berechtigungen als die Quelle haben.

Glücklicherweise ist es unter Linux einfach, Dateiberechtigungen mit Standard-Befehlszeilentools wie cp und rsync beizubehalten. In den folgenden Beispielen erfahren Sie, wie Sie Berechtigungen unter Linux kopieren und beibehalten.

Beibehalten von Dateiberechtigungen mit cp

Der Standardbefehl cp enthält alles, was Sie benötigen, um die Dateiberechtigungen beim Kopieren beizubehalten. 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 werden alle Unterverzeichnisse und einzelnen Dateien kopiert, wobei die ursprünglichen Berechtigungen erhalten bleiben.

 cp -rp source-dir/ dest-dir/

Sie können auch die Option -a von cp verwenden, um die Dateiberechtigungen beizubehalten. Dies aktiviert den Archivierungsmodus und bewahrt alles von Dateiberechtigungen bis zu SELinux-Kontexten.

 cp -a source-dir/ dest-dir/

Beibehalten von Berechtigungen unter Linux mit rsync

Sie können das Dienstprogramm rsync auch zum Beibehalten von Kopierberechtigungen unter Linux verwenden. Viele Administratoren bevorzugen rsync gegenüber cp aufgrund seiner schnelleren Kopiergeschwindigkeit. Da rsync nur den aktualisierten Teil der Datei kopiert, eignen sie sich besser für Aufgaben wie das Klonen Ihrer Linux-Festplatte .

 rsync -a source-dir/ dest-dir

Die Option -a von rsync aktiviert den Archivierungsmodus , bei dem Dateiattribute wie Berechtigungen und Eigentümer beibehalten werden. Sie können die Option -v für die ausführliche Ausgabe und -h zum Anzeigen 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 Schrägstrich hinzufügen, kopiert rsync die Dateien unter eine andere Unterverzeichnisebene.

Überprüfen Sie die Dateiberechtigungen unter Linux

Sie können die Dateiberechtigungen unter Linux einfach mit dem Befehl getfacl (Get File Access Control Lists) überprüfen. Es wird überprüft, ob die Berechtigungen wie erwartet beibehalten wurden.

 getfacl source-file
getfacl dest-file

Kopieren Sie Dateien unter Beibehaltung der Berechtigungen unter 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 überprüfen, sobald Sie mit dem Kopieren fertig sind.

Obwohl rsync Dateien zwischen Remotecomputern kopieren kann, ist der Befehl scp (Secure Copy) eine weitere praktikable Option für diese Aufgabe. Sie können Dateien mit scp sicher auf und von vernetzten Systemen sichern.