Ich möchte eine TAR-Datei mit Inhalten eines Eigentümers erstellen: Gruppenpaares, die auf dem System, auf dem die Datei erstellt wird, nicht vorhanden sind.
Hier ist die Richtung, die ich versucht habe:
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
Und wenn ich diesen Befehl ausführe, erhalte ich die folgende Fehlermeldung:
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
Gibt es eine Möglichkeit, tar zu zwingen, den Eigentümer zu akzeptieren: group, obwohl keiner von beiden auf dem System vorhanden ist, auf dem die Datei erstellt wird?
permissions
users
tar
David
quelle
quelle
Antworten:
Linux verwendet keine internen Eigentümer- und Gruppennamen, sondern Nummern - UIDs und GIDs. Benutzer- und Gruppennamen werden aus den Inhalten der Dateien / etc / passwd und / etc / group zur Vereinfachung des Benutzers zugeordnet. Da Sie in keiner dieser Dateien den Eintrag "otherowner" haben, weiß Linux nicht, welche UID und GID einer Datei zugewiesen werden sollen. Versuchen wir stattdessen eine Zahl zu übergeben:
Es scheint zu funktionieren.
quelle
-tvf
Fahnen. Verwenden Sie folgenden Befehl, um die aktuellen Nummern für Dateien in einem Archiv anzuzeigen :$ tar --numeric-owner -tvf archive.tar
--numeric-owner
Flag. Interessanter ist, dass Sie mit--owner=name:1234
oder beides einstellen können--group=groupname:4711
. Quelle: Funktion parse_owner_group des Tar-QuellcodesFügen Sie die Parameter
--no-same-owner --no-same-permissions
mit hinzutar
. Schauen Sie sich die Dokumente an .quelle
Hier ist ein Teil des Codes, um den Benutzer / die Gruppe im laufenden Betrieb durch IDs zu ersetzen:
quelle