

Em todas as turmas que dou aula de DBA, sempre me fazem a mesma pergunta: Como faço para esconder as senhas que coloco em meus scripts? E, a maioria tem a ver com automatização de backup efetuada através do mysqldump. Existem algumas formas de fazer isso. A mais fácil é utilizar o SHC.
O SHC foi criado por Francisco Javier Rosales García da Faculdad de Informática da Universidad Politécnica de Madrid. O objetivo do SHC se traduz em:
– Proteger scripts shell
– Criptografar scripts shell
– Esconder senhas importantes que são passadas em linha de comando para automatização de tarefas
– Impedir que algum Zé Ruela mude um script funcional e o transforme em algo que vai lhe custar a cabeça
Basicamente, puxando a sardinha para o nosso lado “bancal” de dados de ser, imagine que voce precisa deixar no crontab um script de backup através do mysqldump. Como esconder a senha? Qualquer um pode editar seu script de backup, ver a senha (que neste caso é de menos), e, até mudar seu script de backup.
Para evitar isso, pode-se usar o SHC para “compilar” seu script e torná-lo um executável indecifrável. Na verdade o que o SHC faz é transformar seu script shell em um código fonte C, e, então compilar este código fonte C gerando um executável, um binário.
Antes de mais nada, obviamente, recomenda-se que guarde uma backup de seu script compilado, pois, ele é irreversível. Se perder seu script e precisar mudá-lo no futuro não poderá contar com o binário gerado pelo SHC.
Para rodar o SHC, deve-se ter instalado: gcc e libc6-dev.

Instalando o SHC
[root@teste_server local]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
[root@teste_server local]# tar -xzf shc-3.8.6.tgz
[root@teste_server local]# cd shc-3.8.6
[root@teste_server local]# sudo make install
Crie um banco de dados e um usuário para teste em seu servidor MySQL
mysql> create database teste;
mysql> grant all on teste.* to teste@localhost identified by ‘123’;
Agora, criamos um script de backup usando o editor de sua preferência
[root@teste_server local]# vi meu_script_de_backup
#!/bin/bash
mysqldump -uteste -p123 teste > bkp.sql
Compilando o script
[root@teste_server local]# shc -r -v -T -f meu_script_de_backup
* Note que no seu diretório foram criados 2 arquivos: meu_script_de_backup.x e meu_script_de_backup.x.c. O primeiro é o binário executável que você poderá usar a vontade, despreocupado! O segundo é o código fonte C gerado pelo programa, que pode ser descartado.
Visite nosso Blog
Saiba mais sobre bancos de dados
Aprenda sobre monitoramento com ferramentas avançadas

Tem dúvidas sobre nossos serviços? Acesse nosso FAQ
Quer ver como ajudamos outras empresas? Confira o que nossos clientes dizem nesses depoimentos!
Conheça a História da HTI Tecnologia