Compacte arquivos usando os recursos do bzip2

O bzip2 comprime arquivos através do algoritmo de Burrows-Wheeler.
O nível de compressão por este método é consideravelmente mais eficiente do que o de softwares baseados no LZ77/LZ78 (LZW).
Por outro lado, não chega a ser tão bom quanto a família de compressores estatísticos PPM.

O pacote de utilitários bzip2 é composto pelos seguintes itens:

  1. bzip2, bunzip2 — respectivamente, ferramentas de compactação e descompactação de arquivos.
  2. bzcat — descomprime arquivos para o stdout, ou seja, exibe o conteúdo.
  3. bzip2recover — ferramenta de recuperação e correção de arquivos bzip2 danificados.

É comum usar o programa em conjunto com o comando tar.
O tar não é, exatamente, uma ferramenta de compressão e depende de aplicativos de terceiros para fazer este trabalho.
Por outro lado, o bzip2 não é um arquivador. Ele comprime os arquivos individualmente.
Por ĩsto, é tão comum combinar os dois utilitários.
Para fazer o arquivamento (backup) de diretórios, usando o tar, com compressão pelo bzip2, use-o assim:


tar cjf backup.tar.bz ~/temp/

Se quiser, use o progress, como ferramenta para acompanhar o andamento do processo de backup tar/bzip2, com resultados individuais exibidos para cada processo.

progress tar bzip2

O bzip2 faz parte do conjunto de ferramentas padrão das grandes distribuições GNU/Linux. Você provavelmente não precisará se preocupar em instalar, portanto. Tudo que precisa para começar a usar agora, já se encontra no seu sistema.

Como usar o bzip2 na CLI

Na linha de comando (CLI), o bzip2 tem uma sintaxe similar ao do gzip, o que pode tornar mais fácil o trabalho de substituição em scripts de backup.
O utilitário espera que lhe seja dado uma lista de arquivos, acompanhados das opções de uso.
Cada arquivo é substituído por uma versão comprimida de si mesmo — acrescida da extensão .bz2.
Cada arquivo comprimido mantém (enquanto possível) as propriedades originais de posse, facilitando sua restauração posterior.
Se você prefere que os arquivos existentes sejam sobrescritos, é necessário usar o parâmetro ‘-f’. Sem isso, o programa pula arquivos que já tenham passado pelo processo de compactação.


bzip2 -f Occidentalis_v02.img

Exemplos de uso do bzip2

Adapte os exemplos, a seguir, às suas necessidades.
Para dar opções rápidas, o utilitário permite definir --fast (mais rápido) ou --best (melhor compressão),
Portanto para obter a melhor compressão possível, use o bzip2 assim:


bzip2 --best nome-do-arquivo

Para obter uma compressão mais rápida:


bzip2 --fast nome-do-arquivo

A qualidade da compressão também pode ser definida numericamente (de 1 a 9).
A opção ‘-9’ equivale a --best e ‘-1’ a --fast.
Para obter um nível de compressão equilibrado, use -5:


bzip2 -5 nome-do-arquivo

Para obter um feedback mais verboso, use ‘-v’ ou --verbose:


bzip2 -v *.* 

O comando, acima, irá comprimir todos os arquivos do diretório corrente, gerando um novo arquivo com extensão .bz2 em substituição para cada um.
Este é o comportamento padrão do programa.
A opção ‘-v’ serve para mostrar o que está sendo feito.

Sim! Você pode combinar várias opções.
Abaixo, ativei a ‘verbosidade’ e especifiquei que não quero que o arquivo original seja removido. Veja o meu resultado:


bzip2 -vk woman-drinking-cup-of-coffee.jpg 

woman-drinking-cup-of-coffee.jpg:  0.991:1,  8.072 bits/byte, -0.90% saved, 36856 in, 37189 out.

ls -lah woman-drinking-cup-of-coffee.*

-rw-r--r-- 1 justincase justincase 36K set  1 15:03 woman-drinking-cup-of-coffee.jpg
-rw-r--r-- 1 justincase justincase 37K set  1 15:03 woman-drinking-cup-of-coffee.jpg.bz2

Desta vez restaram 2 arquivos — com extensões ‘.jpg’ e ‘.jpg.bz2’.
Note que o arquivo resultante ficou 1K maior do que o original.
Isto se deve ao fato de que arquivos JPEG já são comprimidos.
Neste caso, além de não ter sido possível obter uma taxa de compressão maior, somou-se ao arquivo resultante as informações do bzip2.
Por isto ele ficou maior.
Você irá obter resultados bem melhores sobre arquivos de texto ou de áudio FLAC, por exemplo.

Como descompactar e testar meus arquivos bz2

Para descomprimir (inflar) seus arquivos, use o bunzip2 ou ‘bzip2 -d’:


bzip2 -dv woman-drinking-cup-of-coffee.jpg.bz2

bzip2: Output file woman-drinking-cup-of-coffee.jpg already exists.

Como o arquivo original ‘woman-drinking-cup-of-coffee.jpg’ já existia, obtive a mensagem acima ‘Output file woman-drinking-cup-of-coffee.jpg already exists‘ — “O arquivo de saída … já existe”.
Se quiser forçar a extração, neste caso, use ‘-f’:


bzip2 -dvf woman-drinking-cup-of-coffee.jpg.bz2

Use ‘-tv’ para testar um ou vários arquivos bz2:


bzip2 -tv woman-drinking-cup-of-coffee.jpg.bz2 

woman-drinking-cup-of-coffee.jpg.bz2: ok

Mais adiante, vamos abordar novamente o uso de ‘-t’.

Como usar o bzip2, quando os recursos do sistema estão escassos

Em ambiente servidor pode ser difícil encontrar “uma folga” no tempo do processador ou no espaço disponível na memória RAM do sistema.
Ficar sem backup, justamente nestes casos, não é uma opção.
Aplicar o --small ou ‘-s’ faz com que o aplicativo realize o seu trabalho com menor consumo de memória.
Segue um exemplo de uso:


bzip2 -sv Screenshot_20170*

  Screenshot_20170619-092621.png:  1.005:1,  7.963 bits/byte,  0.47% saved, 2090633 in, 2080882 out.
  Screenshot_20170619-092626.png:  1.000:1,  7.997 bits/byte,  0.04% saved, 2199528 in, 2198582 out.
  Screenshot_20170619-092823.png:  1.137:1,  7.036 bits/byte, 12.05% saved, 156600 in, 137732 out.

...

  Screenshot_20170706-164342.png:  1.134:1,  7.053 bits/byte, 11.84% saved, 128326 in, 113135 out.
  Screenshot_20170706-164407.png:  1.097:1,  7.292 bits/byte,  8.85% saved, 120458 in, 109795 out.
  Screenshot_20170706-164419.png:  1.141:1,  7.014 bits/byte, 12.33% saved, 97195 in, 85210 out.

A opção reduz o uso da memória durante a compressão, descompressão e teste.
Neste caso, é ativado um outro algoritmo, que requer 2,5 bytes por cada byte de bloco.
Com isto, qualquer arquivo pode ser inflado dentro de um espaço de 2300 kb, na memória RAM.
O custo: redução pela metade da velocidade de trabalho do aplicativo.
Durante o processo de descompressão, o ‘-s’ seleciona blocos de 200 kb, limitando o uso de memória ao mesmo valor — com a consequente redução da taxa de compressão.

A documentação manda usar ‘-s’ em sistemas com 8 Mb de memória RAM livres ou menos.
Mas você pode usar o recurso em outras situações que julgar adequado.

Como recuperar arquivos bzip2 danificados

Acidentes podem ocorrer durante uma transferência e você pode acabar com arquivos compactados importantes corrompidos.
O bzip2 comprime em blocos, usualmente, com 900 Kb — cada qual é manipulado independentemente pelo utilitário.
Se uma mídia danificada ou um erro de transmissão causar dano a um ou mais blocos, ainda é possível recuperar o conteúdo a partir dos dados armazenados nos blocos saudáveis.

O bzip2recover é um programa simples com o propósito de varrer blocos dentro de arquivos .bz2 e gravar cada bloco em outro arquivo .bz2.
Os arquivos resultantes podem ser verificados com a opção ‘-t’ e, se for o caso, descomprimidos.
Veja um exemplo:


bzip2recover woman-drinking-cup-of-coffee.jpg.bz2 

bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.
bzip2recover: searching for block boundaries ...
   block 1 runs from 80 to 297425
bzip2recover: splitting into blocks
   writing block 1 to `rec00001woman-drinking-cup-of-coffee.jpg.bz2' ...
bzip2recover: finished

Em seguida, rode o teste:


bzip2 -tv rec00001woman-drinking-cup-of-coffee.jpg.bz2 

  rec00001woman-drinking-cup-of-coffee.jpg.bz2: ok

Este é o procedimento básico de recuperação pelo bzip2 de um arquivo danificado.

Compactação com criptografia

Segurança implica em criptografia, em muitos casos.
O bzip2 pode ser usado em conjunto com a ferramenta de criptografia GnuPG.
Para obter este resultado, você pode invocar a compressão com o bzip2 do próprio gpg:


gpg --output ssp2.html.gpg.bz2 --bzip2-compress-level 1 -cv ssp2.html

gpg: pinentry launched (11802 gnome3 1.0.0 ? ? ?)
gpg: pinentry launched (11809 gnome3 1.0.0 ? ? ?)
gpg: using cipher AES
gpg: writing to 'ssp2.html.gpg.bz2'

Veja o que foi feito:

  • gpg --output ssp2.html.gpg.bz2 — a execução pede para gerar um arquivo de saída, criptografado, com o nome ‘ssp2.html.gpg.bz2’.
  • --bzip2-compress-level 1 — especifica o método e o nível de compressão a ser usado.
  • -cv — indica explicitamente a criptografia (-c) e verbosidade (-v).

O valor de --bzip2-compress-level pode variar de 0 (nenhuma compressão) a 9 (máxima compressão).
Acima, usei o valor 1, para tornar o procedimento mais célere.
Para reverter, use o gpg assim:


gpg --output ssp2.html -dv --bzip2-decompress-lowmem ssp.html.gpg.bz2

gpg: AES encrypted data
gpg: pinentry launched (11769 gnome3 1.0.0 ? ? ?)
gpg: encrypted with 1 passphrase
gpg: original file name='ssp.html'

O que há de diferente?
Desta vez, usamos a opção ‘-d’ e --bzip2-decompress-lowmem para indicar que é para descomprimir um arquivo, com o uso do bzip2.

Como criptografar texto dentro de um script PHP

Neste post vou mostrar como usar a função crypt do PHP, para codificar em base64 um texto dentro de um script.
O exemplo pode ser facilmente adaptado ou readequado para ser usado em seus scripts do dia a dia.
O programa pega o texto “uma senha qualquer” e a criptografa.
Em seguida, exibe o resultado criptografado na tela.
O código tanto pode ser executado no seu servidor web (Apache) como no terminal.
No meu exemplo, uso um terminal.
Segue o código, com os comentários:


<?PHP
// senha em texto puro a ser criptografada
$senhaTextoPuro = 'uma senha qualquer';

// criptografa o texto dado acima
$senha = crypt($senhaTextoPuro, base64_encode($senhaTextoPuro));

// exibe a senha codificada
echo $senha;
?>

Eu gravei o códio em um arquivo chamado senha.php
Para rodar o script no terminal, invoque o interpretador PHP:


php senha

dWo4bd6Qavg2Q

Método de instalação do Tails Linux em pendrive, via Ubuntu ou Mint.

O tails-installer é um aplicativo feito pelos desenvolvedores do sistema operacional Tails.
Baseado na versão mais atual do Debian, é um projeto voltado para usuários comuns e profissionais que necessitam ter um nível de privacidade, mas não querem (ou não sabem) se dar ao trabalho de configurar o seu sistema para isto.

O Tails é um Debian, que já vem com as configurações de privacidade, que você precisa, prontas.

Já abordei como instalar este aplicativo no Debian.
Neste post, vou mostrar como instalar o tails-installer no Ubuntu e no Linux Mint.
Nestes 2 sistemas, o aplicativo pode ser obtido através de PPAs.
Há vários motivos para não usarmos PPAs, como metodologia de instalação de novos programas, mas acredito que este caso vale como uma exceção.
tails oficial logo
Sugiro iniciar o download da imagem do Tails, enquanto você continua a leitura deste artigo, a partir deste site: https://tails.boum.org/index.pt.html.

Como instalar a PPA, para Ubuntu e Mint

Abra um terminal e adicione a PPA:


sudo add-apt-repository ppa:tails-team/tails-installer

Em seguida, sincronize o sistema com o repositório:


sudo apt update

… e faça a instalação do utilitário:


sudo apt install tails-installer

Agora, você já pode encontrar o tails-installer a partir dos menus do sistema, do Dash ou apenas rodá-lo da linha de comando:


tails-installer

Na tela de apresentação, selecione a opção “Install”.
tails-installer instalação ou atualização
Agora, siga estes passos:

  1. Selecione a imagem do Tails que você baixou anteriormente.
  2. Selecione corretamente a localização do seu pendrive.
  3. Verifique se as informações estão corretas. O próximo passo irá formatar completamente o dispositivo de armazenamento que você selecionou, acima.
    Se tudo estiver OK, clique em “Install Tails”.

tails-installer
O processo irá demorar (menos de) 15 minutos para ser concluído e pedir que você se autentique para realizar algumas tarefas administrativas no seu pendrive.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

Leia outros posts sobre o Tails.
https://tails.boum.org/install/debian/usb/index.en.html.

Use o tails-installer para rapidamente obter um pendrive com o sistema operacional Tails.

O sistema operacional Tails é uma das formas mais cômodas de se usar um computador e navegar na Internet com mais segurança.
Baseado no Debian GNU/Linux, o Tails vem pré-configurado e acompanhado de ferramentas que ajudam a usar a rede anonimamente — preservando a sua privacidade.
Neste artigo, apresento uma ferramenta que permite instalar o Tails em um pendrive, a partir de um computador com Linux.


Já abordamos outros métodos para instalar uma distro Linux em um flash drive (vulgo pendrive). Dentre estes métodos, o meu preferido é o que usa o comando dd — por que me parece mais simples e rápido. 😉
Neste post, vamos abordar o uso de uma ferramenta de instalação desenvolvida pela própria comunidade de desenvolvedores do Tails.
O tails-installer pode ser instalado a partir dos repositórios oficiais (do backports) do Debian ou via PPA para quem usa Ubuntu ou Linux Mint.

Se você pretende criar vários pendrives com o Tails instalado, este método é muito produtivo.
Mas se você tem a intenção de criar apenas um, sugiro usar um daqueles outros de que falei acima.

Uma outra vantagem do programa, é criar um espaço de armazenamento persistente no pendrive, já criptografado, para você armazenar seus arquivos pessoais, bem como, as suas configurações.
Em outras palavras, o sistema estará sempre pronto para você e não pode ser usado por outras pessoas, sem a sua autorização.
Estranhos não poderão acessar seus dados pessoais, caso você perca seu drive, por exemplo.
O que você precisa ter:

  1. Os backports configurados no Debian.
  2. Instalar o tails-installer
  3. … e obter uma imagem do Tails no site oficial: https://tails.boum.org/index.pt.html.
    Sugiro clicar no link, acima, e já começar a baixar o Tails.

Como instalar o Tails a partir do Debian

No post Como configurar o Debian para os backports, explico com maior detalhamento o procedimento. Se tiver dúvidas, dê uma olhadinha nele!
Se você já tem alguma experiência com o Debian, tudo o que precisa fazer é adicionar a linha, abaixo, ao final do arquivo /etc/apt/sources.list:

deb http://ftp.debian.org/debian stretch-backports main

Em seguida, sincronize os repositórios:


sudo apt update

Instale o programa:


sudo apt install tails-installer

Supondo que já tenha baixado a imagem do Tails, do site citado acima, pode rodar o aplicativo.
debian gnome tails-installer
A tela inicial do tails-installer oferece, como opções, iniciar uma “nova instalação” (install) no pendrive ou atualizar (upgrade) uma instalação preexistente.
Opte pelo primeiro botão “Install“.
tails-installer instalação ou atualização
Indique aonde se encontra o arquivo-imagem, que foi baixado do site do Tails, em seu disco local (1).
Em seguida, indique CUIDADOSAMENTE o local do seu pendrive (2).
Fique atento: este procedimento apaga/remove todos os dados preexistentes no seu pendrive.
Verifique se tudo está correto e, finalmente, clique em “Instalar Tails” (3).
tails-installer
O processo de instalação pode ser um pouco demorado (não mais do que 15 minutos) e, ao final, irá pedir sua autenticação para realizar alguns procedimentos administrativos no seu pendrive.
tela autenticação debian gnome
Após a conclusão, já será possível remover o flash drive do computador e testar seu funcionamento.
instalação concluída
Veja como testar a sua nova instalação, com o QEMU, sem precisar reiniciar o sistema.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

O Tails é uma solução rápida para quem deseja privacidade e segurança ao usar o computador.

Baseado no sistema operacional Debian GNU/Linux, o Tails é uma distro voltada para quem deseja ter privacidade e se comunicar por meios criptografados.
Até esta década, as pessoas têm percorrido um longo caminho na direção indicada pelas grandes corporações, no sentido de obter muito mais conveniências e conforto — ao mesmo tempo em que abrem abrem mão da sua liberdade.
O Tails faz o contrário: te rouba um pouco de conforto e conveniência e dá mais liberdade.
Muitas pessoas preferem usar o Tails instalado em um pendrive ou CD/DVD-ROM. Desta forma, podem usar a Internet e lidar com informações importantes, em segurança, mesmo usando computadores de terceiros (ou públicos).
Mas é possível instalar o Tails em seu PC ou laptop pessoal também, caso você queira estar protegido o tempo todo.

Claro que a segurança de que falamos aqui não é absoluta. Mas eu não consigo pensar, hoje, em uma maneira mais eficiente de oferecer um ótimo nível de segurança para qualquer pessoa do que simplesmente passar a usar o Tails.
Atualmente, é a distribuição Linux recomendada por ninguém menos que Edward Snowden.

Depois de instalado, é possível (e desejável) melhorar ainda mais os seus níveis de segurança, com o Tails.
Sempre que se fala em não abrir mão da conveniência é importante também refletir sobre o quanto seria inconveniente a um jornalista ter reveladas as suas fontes ou apagados, à sua revelia, documentos importantes para uma investigação em andamento.
O quão desconfortável seria para um empresário ter seus planos e estratégias lidos por um concorrente? Quanto de seu trabalho estaria indo pelo ralo?
Quem pratica ativismo que atinja um governo ou grandes corporações também tem razões para se cercar de certos cuidados.
Este é o ambiente ideal para ver sites adultos com segurança.

Em um mundo ideal, não precisaríamos ter cercas, portas trancadas etc. Nós não vivemos em um mundo ideal, contudo.
Os ataques podem vir de criminosos “civis”, do Estado ou das corporações.

tails black theme

O que é e como funciona o Tails

O Tails é um sistema operacional GNU/Linux, com foco na privacidade do usuário.
É baseado no Debian 9.0 stretch — lançado em 2017 e com suporte garantido até 2023.

Contar com o suporte estendido do Debian é importante, por que garante atualizações de segurança que — como todo mundo sabe — costumam chegar no mesmo dia em que alguma vulnerabilidade é descoberta.
Além disso, o usuário conta com extensa documentação online disponível.

A versão atual é exclusiva para hardware de 64-bit.
A decisão dos desenvolvedores, ao cessar o suporte a 32-bit se deve a tirar partido do processamento mais avançado, por questões de segurança e confiabilidade.
Tecnicamente, para se proteger de certos tipos de exploits, é necessário que seu processador tenha suporte a recursos presentes somente nos processadores mais modernos — como NX bit, PIE, ASLR etc.

Onde baixar o Tails

A versão principal do sistema operacional é live, ou seja, pode rodar de um pendrive ou de um CD/DVD. Neste caso, você pode levar o seu Tails para onde você for.
Para instalar o Tails em um pendrive (de pelo menos 4 GB), escolha uma das alternativas deste texto.
O download pode ser feito do site oficial:

Leia mais sobre o assunto, clicando nas tags: tails, privacidade e criptografia.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

Leia mais sobre Criptografia para jornalistas.

Leia mais sobre o Tails aqui: https://tails.boum.org/index.pt.html (texto em português).

Contribua com o desenvolvimento e manutenção do projeto: https://tails.boum.org/contribute/index.pt.html.