À primeira vista pode até parecer estranho criptografar e compilar um shell script de forma que ninguém possa ver o seu conteúdo. Porém, achei muito útil para algumas situações onde um servidor é acessado por mais de um administrador (sim! isso pode acontecer) e o mesmo possui privilégios de root e que permite ler todo o conteúdo, inclusive os seus scripts que possuem login e senha de algum determinado serviço.
Para que criptografar um script seja possível, basta instalar e utilizar o SHC seguindo os seguintes comandos:
Instale o meta-pacote build-essential ou equivalente da distribuição que você esteja utilizando:
apt-get install build-essential
Faça download o SHC:
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
Descompacte e compile o SHC:
tar zxvf shc-3.8.9.tgz
make
Depois de compilar, o script pedirá para você executar o comando make test, mas por algum motivo sempre dá um erro e que pode ser ignorado.
Agora basta criptografar um script de teste da seguinte forma:
./shc -f teste.sh
Serão criados dois arquivos:
-rw-r--r-- 1 root root 28 Feb 4 01:58 teste.sh
-rwx--x--x 1 root root 11K Feb 4 01:58 teste.sh.x
-rw-r--r-- 1 root root 9.1K Feb 4 01:58 teste.sh.x.c
teste.sh – é o seu script original;
teste.sh.x – é o script criptografado e compilado para o formato binário;
teste.sh.x.c – é o código fonte na linguagem C do script criptografado. A lógica do SHC é transformar o seu shell script na linguagem C escondendo o máximo de informações possível e depois compilar gerando um arquivo binário.
Agora execute o script criptografado:
./teste.sh.x
Referência: http://www.lovato.com.br/