Criando uma soma de verificação de um arquivo 7zip sendo criado a partir de um arquivo tar sendo criado

1

Eu quero resolver um problema (sobre o qual você pode ler sobre aqui , pois não acho que isso deva fazer parte da pergunta ).

Então é isso que eu criei:

$ tar -cO Templates | 7z a -si -mx=3 -p /t/out.tar.7z

Estou usando a pasta Templates no meu computador para poder testá-la em uma quantidade muito pequena de dados primeiro.

E funciona exatamente como esperado.

No entanto, quando quero criar uma soma de verificação, ela falha:

$ tar -cO Templates | 7z a -si -so -mx=3 -p | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)


Error:
Incorrect command line
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

Percebi que quando executo o que está no primeiro bloco de código, a tarball dentro do arquivo 7zip é chamada out.tar . Na verdade, é por isso que deixo terminar em .tar.7z : o nome da bola alcalina termina em .tar .

Então, talvez eu ainda deva incluir o nome do arquivo, especialmente porque toda a sinopse do comando 7z em sua página man é:

7z [adeltux] [-] [SWITCH] <ARCHIVE_NAME> <ARGUMENTS>...

Infelizmente, isso também não funciona:

$ tar -cO Templates | 7z a -si -so -mx=3 -p out.tar.7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Creating archive stdout


Enter password (will not be echoed) :
Verify password (will not be echoed) :


System error:
E_NOTIMPL                
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

Nem funciona se declarar explicitamente o tipo de arquivo:

$ tar -cO Templates | 7z a -si -so -mx=3 -p -t7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)


Error:
Incorrect command line
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

$ tar -cO Templates | 7z a -si -so -mx=3 -p -t7z out.tar.7z | tee /t/out.tar.7z | sha256sum

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Creating archive stdout


Enter password (will not be echoed) :
Verify password (will not be echoed) :


System error:
E_NOTIMPL                
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -

Como eu resolvo isso? Escrever os dados em seu destino e, em seguida, fazer o hashing desse arquivo não é uma opção. Preciso que os dados sejam criptografados.

    
por UTF-8 16.06.2017 / 00:22

1 resposta

1

O problema é que o formato de arquivo 7zip requer a busca de disponibilidade, portanto você não pode usar o formato de arquivo 7z com -so (por este comentário na página do projeto). Usar outro formato, como xz , parece funcionar:

$ tar -cO Templates | 7z a -an -txz -si -so | tee tarball.xz | sha256sum ; sha256sum tarball.xz

7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Creating archive stdout


Everything is Ok
4349a01e62a7d7b6cfd46caa90ee38904227fc09ef643d87eb8209bc53cb8e50  -
4349a01e62a7d7b6cfd46caa90ee38904227fc09ef643d87eb8209bc53cb8e50  tarball.xz

No entanto, você perde a capacidade de colocar uma senha no arquivo-morto nos formatos pelos quais isso funciona ( gzip , bzip2 e xz ).

    
por 16.06.2017 / 00:50