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:
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:
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!!