Descompactando certos arquivos funciona no Windows, mas não no Linux

7

Eu perguntei a algumas pessoas e pensei em perguntar aqui. Recebemos arquivos enviados de uma empresa internacional para trabalhos de design em formato zip. Bem, quando executo um script para descompactar os arquivos no terminal, recebo um erro de zip somente no Linux. Podemos testar, descompactar, navegar e modificar os arquivos com 7zip e winzip o dia todo. Quando o 7zip ou o Winzip é executado, eles também não indicam nenhuma segurança.

Erro de terminal:

compressed WinNT security missing (-7 bytes)

Eu pesquisei em todos os lugares e não encontrei nenhuma solução ou correção sobre isso. Um colega sugeriu,

"using a different language version of Unzip could potentially change the Unicode required to extract the file. Think of it like a password, without the right code, you can't get in."

Por que o terminal do Ubuntu descompactará a exibição de um erro?

    
por DᴀʀᴛʜVᴀᴅᴇʀ 20.12.2012 / 22:19

1 resposta

2

Eu fiz algumas pesquisas no código-fonte (descompacte o rarzip60 do Ubuntu, embora eu suspeite que versões mais antigas não sejam muito diferentes). O erro em questão é chamado internamente de TruncNTSD e definido em extract.c:295 . A maioria dos usos desta mensagem, como esperado, estão em win32/win32.c e realmente se referem a dados de segurança NTFS, no entanto há apenas um lugar no código onde você deve obter esse erro fora de um sistema win32 (desde que você relatou ver isso no Ubuntu ).

O local em questão ( extract.c:2118 ) está em uma função chamada TestExtraField . Como a Wikipedia explica:

O formato de arquivo .ZIP inclui o recurso de campo extra nos cabeçalhos de arquivo, que pode ser usado para armazenar dados extras não definidos pelo .ZIP existente especificações e permitir que arquivadores compatíveis não reconheçam os campos para pular com segurança os campos.

Isso é realmente o que o NT faz para armazenar informações de segurança. Importante, a função de imprimir os comentários de erro

/* we know the regular compressed file data tested out OK, or else we
 * wouldn't be here ==> print filename if any extra-field errors found
 */

Então, se você conseguir descompactar os arquivos, parece que é seguro ignorar esse erro. Olhando além, o único lugar fora do código win32 que gera este erro (assumindo que não é um erro horrível em descompactar) é test_compr_eb:extract.c:2227 , que de uma olhada no código parece ocorrer quando um arquivo zipado associou extras campos marcados como compactados, mas os dados do campo têm um comprimento de 0 bytes.

Como isso acontece eu não sei - talvez o programa que cria os arquivos zip faça isso por acidente, talvez os campos extras sejam filtrados em algum lugar pelo software de segurança. De qualquer forma, parece inofensivo e provavelmente não tem nada a ver com a segurança do NT. Concluindo, se seus arquivos forem descompactados corretamente, será completamente seguro ignorá-lo .

    
por 01.07.2013 / 14:58

Tags