Sou verdadeiramente apaixonado por shell script, é uma linguagem simples, poderosa, flexível e aceitavelmente performática! Entretanto, por tratar-se de uma linguagem script, todo o código escrito fica "legível" e isso pode ser uma falha no quesito segurança, principalmente se o seu script armazenar senhas de acesso e outras informações importantes.
Para resolver essa questão podemos utilizar o SHC (SHell Compiler).
Mas o que o shc faz? Basicamente este interessante programa vai pegar o código shell e criar uma tradução em C, tornando desta forma o script compilável. É óbvio que esse tipo de "tradução" vai criar um código genérico e não recomendável para grandes programas feitos em shell, entretanto em um small code, pode ajudar a esconder algumas coisas como por exemplo senhas de acesso a banco e etc...
Vamos exemplificar:
1 - Baixe o shc e descompacte o pacote:
[root@serv]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
[root@serv]# tar -zxvf shc-3.8.9.tgz
2 - Compile-o
Dentro da pasta do source do compilador:
[root@serv]# cd shc-3.8.9/
[root@serv]# cp shc-3.8.9.c shc.c && make
3 - Copie o binário shc para dentro da pasta /usr/local/sbin e pronto, estamos preparados para compilar nossos scripts!
Criei um pequeno exemplo chamado banco.sh, onde precisamos passar usuário e senha de acesso a uma base mysql:
#!/bin/bash
USUARIO="toronto"
SENHA="123456"
/usr/bin/mysql -u $USUARIO -D teste --password=$SENHA -e "select ip from teste;"
* No exemplo acima, o script conecta no MySQL local e faz uma consulta simples na tabela teste que está na database teste.
Vamos agora compilar esse script com o comando:
[root@serv]# shc -v -f banco.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc banco.sh.x.c -o banco.sh.x
shc: strip banco.sh.x
shc: chmod go-r banco.sh.x
Pronto! Você tem uma versão binária do seu script =)
Perceba que o shc além do binário (que no nosso caso chama-se banco.sh.x) gerou o "banco.sh.x.c", ou seja, você pode compilar usando o gcc também (gcc -o banco banco.sh.x.c).
Escondendo senhas no shell script - SHC Compilador
28 de Outubro de 2013, 14:43 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 245 vezes
0sem comentários ainda