Script avançado em Bash (bash + md5) para proteger 'algo' (+ explicação detalhada)

Alguns dias atrás Eu disse a eles sobre FlatPress, uma aplicação web (CMS) através da qual você pode ter um blog ou algo semelhante sem ter que usar bancos de dados ou se complicar muito 

Bem, eu tenho no meu laptop um FlatPress para anotações pessoais, coisas que não quero esquecer e é por isso que as escrevo neste diário pessoal. Mas, como muitos de vocês já devem saber... sou um tanto paranóico em relação à segurança e, se se trata da segurança dos MEUS pensamentos, vocês não têm ideia de quão paranóico posso ser 

Então, me deparei com o problema: como, usando o FlatPress, posso proteger todo o conteúdo dele?

Pensei em vários aplicativos que permitem a criptografia de dados, mas ... nenhum deles fazia exatamente o que eu queria, então assumi a tarefa de programar o que eu queria.

Agora vou mostrar um script que fiz, que faz o seguinte:

O script é projetado para trabalhar no KDE, se eles não têm KDE caixas de diálogo não aparecerão para eles.

1. Ele mostra uma caixa de diálogo perguntando se você é KZKG ^ Gaara, se você pressionar NÃO o script fecha, se você pressionar SIM, tudo continuará normalmente.

2. Mostre uma caixa de texto perguntando qual é a senha:

3. Se você pressionar Cancelar o script fecha, agora vem um dos truques do script ...

3.1. A lógica é que o script compara a senha que escrevemos com uma que já está predefinida no mesmo script, e se as senhas corresponderem, ele continua a execução, e se as senhas não corresponderem, uma mensagem de erro aparece. O problema é que, se colocarmos a senha correta dentro do script assim, qualquer pessoa que abrir o script com um editor de texto poderá ver claramente a senha correta... e isso, meus amigos, é simplesmente uma falha imperdoável 

3.2. Para evitar colocar a senha como esta em texto simples no script, usei MD5. Ou seja, no início do script, declarei que a senha correta é «2dac690b816a43e4fd9df5ee35e3790d«, E este é o MD5 de:«desdelinux«. ... Não entendo nada!! …

Vamos detalhar um pouco mais. Se eu escrever em um arquivo (por exemplo ~ / pass.txt) de texto: desdelinux

Se em um terminal escrevo: md5sum ~ / pass.txt

Ele vai voltar para mim: 2dac690b816a43e4fd9df5ee35e3790d sum

E ... como você pode ver, aquela primeira coluna que tem muitos números e letras em nenhuma ordem aparente, é idêntica à que coloquei acima, e é a que está no script declarado.

Bem, essa primeira coluna é o MD5 de desdelinux

Se colocarem o seguinte, retornará apenas a 1ª coluna, que é a que nos interessa: md5sum ~/pass.txt | awk '{print $1}'

4. Portanto, a operação do script nesta parte específica é:

4.1. O script irá colocar a senha que você escreveu em um arquivo temporário chamado temp.txt, e ele extrairá o MD5 do conteúdo desse arquivo usando o comando:

md5sum temp.txt | awk '{print $1}'

4.2. Se o MD5 da senha que você acabou de escrever NÃO for o mesmo que foi definido (ou seja, o que está escrito no script), ele será fechado e exibirá um erro:

4.3. Se a senha corresponder, perfeito... o script continua 

5. Quando a senha corresponder, o script executará uma série de etapas, no meu caso:

5.1. Vai entrar na pasta / home / compartilhado / hospedado / - » cd / home / compartilhado / hospedado /

5.2. A pasta FlatPress se chama "me" e está compactada em .RAR protegida por uma senha (a senha é a mesma que deveria ser definida antes), então o script descompactará esse arquivo (me.rar) - » rar x me.rar -hp $ MWORD

raro x - »O que ele faz é descompactar arquivos e pastas mantendo a mesma ordem que estão.

eu.raro - »Este é o arquivo que desejo descompactar.

-hp $ MWORD - »Aqui te digo que você deve usar senha para descompactar o arquivo, e a senha é a variável $ MWORD (esta variável é a senha que inserimos antes)

5.3. Então, se ele foi descompactado corretamente, eu prossigo para excluir o arquivo me.rar ... por quê? Bem, porque não faz sentido que o .rar exista se eu estiver trabalhando com os arquivos que tenho dentro, e esses arquivos estão mudando porque estou escrevendo coisas novas no blog - » rm me.rar

5.4. Devo alterar as permissões para que tudo funcione bem - » chmod 777 -R me / (lembre-se que a pasta me / é o que continha o me.rar compactado)

5.5. Ele vai me mostrar uma janela que me diz que tenho 10 segundos para abrir "o" navegador…. WTF!, O que isso significa? ...

5.5 (a). Simples, muito simples…  … abro o navegador (neste caso rekonq) e estou trabalhando em uma nova postagem, mas quando fecho o navegador, o script compacta a pasta me / novamente em .rar (permanecendo em me.rar).

Isso é possível porque o script verifica a cada 3 segundos se o Rekonq está aberto ou não, se detectar que está aberto, o script não faz nada, mas se detectar que NÃO está aberto, ele executa: rar a me.rar -hp $ MWORD me / * && rm -R me /

O que significa que irá compactar a pasta mim/ en eu.raro (e vai colocar uma senha, que seria a mesma que já vimos), e depois de compactá-lo e se não houver erros, ele excluirá a pasta mim/ com todo o seu conteúdo.

5.5 (b). Como isso nos ajuda? …simples, isso evita que tenhamos que lembrar de proteger nosso conteúdo novamente, pois basta parar de trabalhar nele (fechar o navegador) e o script fará todo o resto do trabalho 

6. Pronto, tudo isso foi explicado de forma geral 

… embora ainda haja outro detalhe 

O script tem uma proteção ainda maior, a proteção que está desabilitada (comentada) são estas linhas:

if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi

O que isso faz é simples. A variável $ USER é uma variável global do sistema, se em um terminal colocar:

echo $USER

Você verá o que seu usuário mostra a você ... bem, a lógica dessas linhas é simples.

Se $ USER não corresponder à variável $ ME (e foi declarado por mim no script, e é: "gaara") o script excluirá TODOS os arquivos .sh que estão nessa pasta, ou seja, ele se autodestruirá 

Isso evita que outra pessoa execute o script em outro computador hehehehe.

E bem, acho que não há muito mais a explicar, deixo o roteiro:

Download de arquivo .SH
Veja o script em nosso colar

Eu sei que muitos acharão isso extremamente complexo, mas na verdade é mais assustador do que deveria ... o script tem uma lógica de trabalho muito simples, para um propósito simples.

Fiz isso para atender a uma necessidade muito específica minha, compartilho esperando que alguma outra linha ou ideia explicada aqui possa ser útil para alguém 

A propósito, o script é destinado ao KDE, porque as caixas de diálogo (janelas) que ele exibe são do KDE (usando o KDialog), mas pode ser adaptado para o Gnome / Unity / Cinnamon / Mate usando Zenidade, ou use-o 100% no terminal simplesmente usando o comando de diálogo.

E sim, o script ainda tem algumas falhas, por exemplo se o script descompactar o .rar, e então alguém fechar (matar) o script à força, o conteúdo do .rar ficará desprotegido, há alguns detalhes que ainda precisam ser polidos …mas ei! Também temos que garantir que ninguém possa verificar nosso computador 

Por fim, quero esclarecer que NÃO sou programador, longe disso, não me considero um, imagino que você possa otimizar linhas no código, ou utilizar alguma função para melhorar o funcionamento do script... mas como eu disse, não sou programador 

Se você tiver alguma dúvida sobre isso, diga-me, embora o script possa não ser útil para você porque você não precisa dele, você sempre pode aprender outras dicas com ele 

lembranças

PD: Sei que elav. ele vai dizer que sou muito paranóico ... ou que perco meu tempo, mas não é assim. Eu queria algo muito específico, um sistema de segurança muito específico, e eu mesmo o programei ... quão geek é isso? … RI MUITO!!