2012-04-06 16 views
1

Ich versuche, einige Schlüsseldateien und Verzeichnisse einer Maschine zu sichern, als root, einschließlich einiger der/home-Daten, einige Dateien handverlesen, um die Tarball-Größe zu reduzieren. Alles ist in Ordnung für den größten Teil, da die meisten Dateien von root ohnehin im Besitz, aber ich sage das nur versuchen:Ändert `tar/home/user/file` den/home Besitzer zu root?

# tar -cf backup.tar /home/user/file 

Wenn ich den Inhalt wiederherzustellen,/home/user/Datei wird als durch den Benutzer im Besitz erwartet, aber/home/user gehört root. Ich versuchte jedoch,

# tar -cf backup.tar /home 

und in diesem Fall alle/Hausbesitzer sind erhalten. (Beachten Sie, dass ich das Flag -p nicht benötige, da ich root bin. Trotzdem habe ich es versucht ...)

Ist das normales Verhalten? Falls ja, gibt es eine Möglichkeit, Dateien für reguläre Benutzer manuell auszuwählen, um sie zu sichern, während die Informationen zum/zu den Eigentumsrechten beibehalten werden? Mein Ziel ist es, einfach alles von/zu entpacken.

Danke!

+0

Das hängt nicht mit Programmierung zusammen. Dies passt besser auf Superuser oder Unix-Stack-Austausch-Sites. –

Antwort

2

Um die Berechtigungen für Verzeichnisse richtig festzulegen, muss das Tarball Einträge für diese Verzeichnisse enthalten, daher müssen Sie sie zum Tarball hinzufügen.

Wenn Sie einen Tarball erstellen, die nur /home/user/file enthält, und nicht /home/user, gibt es dann keine Informationen über die Berechtigungen von /home/user im Tarball, so tar weiß nicht, was zu tun ist. Es erstellt automatisch die Verzeichnisse, hat aber keine Berechtigungen, Eigentümer oder Gruppen, um ihnen die Standardeinstellungen zu geben.

Sie könnten die Verzeichnisse als auch hinzufügen:

# tar -cf backup.tar --no-recursion /home/user /home/user/file 

Aber das kann die Sache nicht einfacher für Sie. Beachten Sie die --no-recursion - die besagt, dass tar nicht alles unter einem Verzeichnis, nur das Verzeichnis selbst hinzufügen soll. Wenn Sie eigentlich auch Verzeichnisbäume hinzufügen möchten, müssten Sie find(1) verwenden, um jede Datei manuell in diesem Verzeichnis zu übergeben. Das würde schnell hässlich werden.

Denken Sie daran, dass wir über das Sichern und Wiederherstellen bestimmter Dateien sprechen. Wenn Sie jemals wiederherstellen würden, würden Sie vermutlich auch die Unix-Accounts erstellen, die wiederhergestellt werden sollen, wenn sie nicht bereits dort waren. Es wäre also nicht notwendig, Berechtigungen für Home-Verzeichnisse zu setzen. Das gleiche gilt jedoch nicht für Unterverzeichnisse von diesen.

+0

Danke! Ich denke, das sollte funktionieren. Nur eine Anmerkung: Soweit ich weiß, kann ich nur nach dem Erstellen der Benutzerkonten cp -a/tarred/dir/*/* erstellen, was genau die Operation ist, die den Verzeichnisbesitz ruiniert. Wenn ich es vorher versucht hätte, würde Useradd -m ablehnen. –

+0

Sie haben mich tiefer in die man-Seiten eingetaucht ... Es sieht so aus, als ob die Wiederherstellung mit --no-overwrite-dir auch helfen könnte! –

Verwandte Themen