Como faço para proteger com senha um arquivo .tgz com tar no Unix?

47

Estou usando o comando tar do Unix da seguinte maneira para tar um diretório e seus arquivos:

tar cvzf fileToTar.tgz directoryToTar

Existe uma maneira de proteger com senha o arquivo .tgz? Criei arquivos ZIP protegidos por senha no Windows, portanto, suponho que o Unix tenha a mesma capacidade. Alguma ideia?

c12
fonte

Respostas:

40

Use cryptou gpgno arquivo

Exemplos simples:

cat filename | crypt > filename.crypt

gpg -c –o filename.gpg filename

Christopher Neylan
fonte
2
isso não faz sentido, onde está a senha?
Alexander Mills
3
@AlexanderMills A maioria das ferramentas de aceitação de senha solicita ao usuário pelo terminal, em vez de um argumento da linha de comando, para impedir que a senha apareça no histórico.
Daffy
37

Você pode usar o comando:

zip -P password file.zip file

Ou melhor:

zip -e file.zip file

man zip
Panta
fonte
O zip sabe o suficiente para limpar a seção de senha da linha de comando no momento em que é executada, para que não apareça (ou apareça apenas por milésimos de segundo) em um ps? Isso é legível por humanos.
tgm1024
17

Nem o tarformato nem o gzformato possuem suporte interno para arquivos de proteção por senha.

O zipformato do Windows combina várias partes diferentes de funcionalidade: compactação (por exemplo, gzip), arquivamento de vários arquivos em um (por exemplo, tar), criptografia (por exemplo, gnupg) e provavelmente outros. O Unix tende a ter ferramentas individuais, cada uma das quais faz uma coisa bem, e permite combiná-las.

O equivalente ao Unix de um .ziparquivo protegido por senha provavelmente seria chamado de algo como foo.tar.gz.gpgou foo.tgz.gpg.

E existem ferramentas zipe código-fonte aberto unzippara o Unix, embora eles não ofereçam todos os recursos das versões do Windows (tenho certeza de que o .zipxformato mais recente não é suportado).

Keith Thompson
fonte
12

Você pode usar o gpg (= GnuPG):

gpg -o fileToTar.tgz.gpg --symmetric fileToTar.tgz

Isso solicitará uma senha.

Para descriptografar o arquivo posteriormente, basta:

gpg fileToTar.tgz.gpg

Isso solicitará, novamente, a senha.

thiagowfx
fonte
Nota: -cé abreviação de --symmetric, ou seja, use a cifra simétrica padrão, o que significa que a mesma senha é usada para criptografia e descriptografia. (Ao contrário de assimétrica, que envolve chaves públicas e chaves privadas.)
Evgeni Sergeev
8

Você pode usar ccrypt .

As coisas podem ser criptografadas por um pipe:

tar cvvjf - /path/to/files | ccrypt > backup.tar.bz2.cpt

Ou no local:

ccrypt backup.tar.bz2

Para automatizar, você pode salvar uma senha em um arquivo e usá-la para criptografar:

ccrypt -k ~/.passkey backup.tar.bz2
c4baf058
fonte