Behält Tar die Berechtigungen bei, wenn sich die Benutzer-IDs ändern?

Behält Tar die Berechtigungen bei, wenn sich die Benutzer-IDs ändern?

Ich muss einige Daten mit der Option „p“ im Tar-Befehl sichern. Das Problem ist, dass der Ort, an dem ich diese Daten wiederherstellen werde, alle dieselben Benutzer hat, diese Benutzer jedoch unterschiedliche IDs haben können. Macht das für Tar einen Unterschied oder werden die Berechtigungen anhand des Benutzernamens korrekt wiederhergestellt?

Antwort1

tarzeichnet Berechtigungen auf der Grundlage der UID und GID auf, nicht auf der Grundlage der ihnen zugeordneten Zeichenfolge. Wenn also die UID auf einem Server 3300 war und dieser mit „bob“ verknüpft war, gehört die Datei auf dem neuen Server dem Benutzer mit der UID 3300.

Praktisch alles (ich würde eigentlich alles sagen, aber man kann nie 100 % sicher sein) unter UNIX verwendet die UID:GID-Werte, weil diese tatsächlich auf Dateisystemebene gespeichert sind. Der Name ist nur eine einfache Suche in der Passwd-Datei, die zugrunde liegenden Prüfungen werden anhand der numerischen Werte durchgeführt.

Antwort2

Zusammenfassung der vorherigen Antworten und Hinzufügen einiger wichtiger Informationen:

  • Beim Erstellen von Archiven tarwerden immer die Benutzer- und Gruppen-IDs der Dateien beibehalten.es sei dennanders ausgedrückt mit --owner=NAME, --group=NAME. In beiden Fällen hat jede Datei immer eine zugehörigeNumerischBenutzer- und Gruppen-ID.

  • GNU tarund möglicherweise andere Versionen tarvonAuchSpeichern Sie den Benutzer und die GruppeNamen, es sei denn, --numeric-owneres wird verwendet. bsdtarspeichert standardmäßig auch Benutzer- und Gruppennamen, aber es gab keine Unterstützung für --numeric-ownerdie Option, wennErstellenArchive bis Version 3.0 (beachten Sie, dass diese Option unterstützt wurde, wennExtrahierenArchiven schon viel länger).

  • Beim Extrahieren alsnormaler Benutzer, alle Dateien werdenstetsdem Benutzer gehören. Und es kann nicht anders sein, da das Extrahieren einer Datei bedeutet, dass eine neue Datei im Dateisystem erstellt wird, und ein normaler Benutzer kann keine Datei erstellen und die Eigentümerschaft an jemand anderen übertragen.

  • Beim Extrahieren alsWurzel, tarstellt standardmäßig den Besitz der extrahierten Dateien wieder her,es sei denn --no-same-ownerverwendet wird, wodurch root selbst das Eigentumsrecht erhält.

  • In GNU tar, bsdtar und möglicherweise anderen Versionen von tarerfolgt die Wiederherstellung des Eigentums durch den Benutzer (und die Gruppe).Name, wenn diese Informationen im Archiv vorhanden sindUndes gibt einen passenden Benutzer im Zielsystem. Andernfalls wird nach ID wiederhergestellt. Wenn --numeric-ownerdie Option angegeben ist, werden Benutzer- und Gruppennamen ignoriert und IDs verwendet. In beiden Fällen, wenn numerische IDs verwendet werden, wird ein passender Benutzer und eine passende Gruppe nichtnichtmüssen im System vorhanden sein.

  • Berechtigungen und Zeitstempel werden ebenfalls im Archiv gespeichert und standardmäßig wiederhergestellt, sofern keine Optionen --no-same-permissionsund/oder --touchverwendet werden. Wenn der Benutzer sie extrahiert, umaskwerden die Berechtigungen des Benutzerssubtrahiertvon Berechtigungen, sofern nicht --same-permissionsverwendet wird.

  • --preserve-permissionsund --same-permissionssind Aliase und haben die gleiche Funktionalität wie-p

Hoffe, das hilft, das Problem zu klären! :)

Antwort3

Wenn Sie versuchen, Dateien zwischen zwei Systemen zu übertragen, legt rsync die Berechtigungen standardmäßig nach Benutzername statt nach UID fest und prüft dabei die Benutzernamen an beiden Enden. Nur wenn der Benutzer auf einem der Systeme nicht vorhanden ist, wird er mit der UID kopiert, sofern Sie nichts anderes angeben.

Antwort4

Verwenden Sie die Option --same-owner für GNU tar. Siehehttp://www.gnu.org/software/tar/manual/html_section/Attributes.html

verwandte Informationen