Ich habe ein paar Leute gefragt und nur darüber nachgedacht, es hier zu fragen. Wir erhalten Dateien von einem internationalen Unternehmen für Designarbeiten im Zip-Format. Wenn ich ein Skript zum Entpacken der Dateien im Terminal ausführe, wird nur unter Linux ein Zip-Fehler angezeigt . Wir können die Dateien den ganzen Tag mit 7zip und winzip testen, entpacken, durchsuchen und ändern. Wenn 7zip oder Winzip ausgeführt wird, geben sie auch keine Sicherheit an.
Terminalfehler:
compressed WinNT security missing (-7 bytes)
Ich habe überall gesucht und keine Lösung oder Korrektur dafür gefunden. Ein Kollege schlug vor:
"Die Verwendung einer anderen Sprachversion von Unzip kann möglicherweise den zum Extrahieren der Datei erforderlichen Unicode ändern. Stellen Sie sich das wie ein Passwort vor, ohne den richtigen Code können Sie nicht hineinkommen."
Warum wird im Ubuntu-Terminal beim Entpacken ein Fehler angezeigt?
7z
ist der Name des einmal installierten Befehls. Sieheman 7z
.unzip
Ihnen verwendet wird (try :)unzip -v
.Antworten:
Ich habe ein bisschen im Quellcode gegraben (unzip60 von Ubuntu raring, obwohl ich vermute, dass ältere Versionen sich nicht sehr unterscheiden). Der betreffende Fehler wird intern aufgerufen
TruncNTSD
und in definiertextract.c:295
. Die meisten Verwendungen dieser Nachricht befinden sich erwartungsgemäßwin32/win32.c
in NTFS-Sicherheitsdaten und beziehen sich tatsächlich auf diese. Es gibt jedoch nur eine Stelle im Code, an der Sie diesen Fehler jemals außerhalb eines Win32-Systems erhalten sollten (da Sie gemeldet haben, dass er auf Ubuntu angezeigt wird).Der fragliche Ort (
extract.c:2118
) befindet sich in einer aufgerufenen FunktionTestExtraField
. Wie Wikipedia erklärt:Das .ZIP-Dateiformat enthält die zusätzliche Feldfunktion in Dateikopfzeilen, mit der zusätzliche Daten gespeichert werden können, die nicht durch vorhandene .ZIP-Spezifikationen definiert sind, und konformen Archivierern, die die Felder nicht erkennen, ermöglicht werden, die Felder sicher zu überspringen.
Genau das tut NT, um Sicherheitsinformationen zu speichern. Wichtig ist, dass die Funktion die Fehlerkommentare druckt
Wenn Sie also die Dateien selbst gut entpacken können, kann dieser Fehler sicher ignoriert werden. Wenn Sie weiter schauen, ist der einzige Ort außerhalb von win32-Code, der diesen Fehler auslöst (vorausgesetzt, es handelt sich nicht um einen schrecklichen Fehler beim Entpacken)
test_compr_eb:extract.c:2227
, der auf den ersten Blick so aussieht, als ob er auftritt, wenn einer komprimierten Datei zusätzliche Felder zugeordnet sind, die als komprimiert markiert sind Die Felddaten haben jedoch eine Länge von 0 Bytes.Wie das zustande kommt, weiß ich nicht - vielleicht macht das Programm, das die Zip-Dateien erstellt, dies versehentlich, vielleicht werden die zusätzlichen Felder irgendwo von Sicherheitssoftware herausgefiltert. In jedem Fall sieht es harmlos aus und hat wahrscheinlich überhaupt nichts mit NT-Sicherheit zu tun. Wenn Ihre Dateien gut entpackt werden, ist es absolut sicher, sie zu ignorieren .
quelle