gzip komprimierte Dateiinhaberschaft und Berechtigungen

6744
sundar

Ich versuche herauszufinden, wie das Versenden einer Datei ihre Berechtigungen ändert. Das gzip-Handbuch (man gzip) sagt:

Wenn immer möglich, wird jede Datei durch eine Erweiterung mit der Erweiterung .gz ersetzt, wobei die gleichen Besitzmodi, Zugriffs- und Änderungszeiten beibehalten werden.

Jetzt habe ich eine Datei 'myfile.txt', deren Besitzer ich (mein Benutzer) ist. Wenn ich diese Datei als anderen Benutzer gzipiere (dieser Benutzer (z. B. 'otheruser') verfügt über Lese- und Schreibberechtigungen in diesem Verzeichnis und in dieser Datei), wird der Besitzer der gzip-Datei dieser andere Benutzer. Das heißt, wer auch immer die Datei von gzip ist, wird zum Besitzer der GZ-Datei.

Wer auch immer diese Datei gunzip hat, wird zum Besitzer der unkomprimierten Datei. Bedeutet das, dass gzip nichts mit Eigentümern zu tun hat? Wenn ja, was bedeutet der obige Satz auf der Handbuchseite?

Ich glaube nicht, das ‚Wann immer möglich‘ -Klausel hier ein Problem sein könnte, da ich in Unix (Solaris) bin, wo Berechtigungen Retention ist (AFAIK) möglich.

Eine verwandte Frage: Wenn ein Benutzer eine Leseberechtigung für eine GZ-Datei hat, kann es trotzdem sein, dass er den Inhalt der Datei nicht lesen kann? Unterhält gzip innerhalb des Archivs einen separaten Satz von Berechtigungen, die den Zugriff einschränken können? Das erscheint nicht wahrscheinlich, aber ich möchte sicher sein.

Ich muss je nach Verhalten von gzip Code schreiben. Daher ist es für mich wichtig, das genaue Verhalten herauszufinden. Jede Hilfe wäre dankbar.

Vielen Dank.

2

2 Antworten auf die Frage

5
innaM

Das Ändern des Dateibesitzes kann nur von root vorgenommen werden. Ein normaler Benutzer_a kann einfach keine Datei erstellen, deren Eigentümer der normale Benutzer_b ist. Wenn Sie das Eigentum bewahren müssen, entpacken Sie es als root.

0
user282654

HPUX verwendet eine sehr alte Version von gzip (1.3.5 unter 11.31 ia64) und funktioniert genauso wie in der Handbuchseite beschrieben. usera kann eine Datei, die sich im Besitz von userb befindet, gzip und gunzip, und alle Berechtigungen und Modi bleiben erhalten. Rootbenutzer gzip / gunzip werden nicht benötigt.

Bei den Versionen 1.4 und höher scheint es jedoch so, dass gzip den Eigentümer / die Berechtigungen nicht ordnungsgemäß ändern kann, es sei denn, Sie sind root. Meiner Meinung nach ist dies ein Fehler. Sie können die Schritte zum gzip / gunzip einer Datei, die sich im Besitz eines anderen Benutzers befindet, manuell durchführen, wenn Sie dazu über Unix-Berechtigungen verfügen.

$ gzip -c Datei> Datei.gz $ chmod NNN Datei.gz (wobei NNN der Dateimodus ist) $ chown Benutzer: Gruppendatei (wobei Benutzer: Gruppe die Benutzer- und Gruppeneigentümer der Datei sind) $ rm-Datei

Warum können gzip-Versionen> 1.4 dies nicht tun, wenn Versionen <1.4 gut funktionieren?