http://www.zago.eti.br/script/codificar-proteger.txt Protejer, esconder, criptografar, tratar senhas e dados em scripts... Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** Compilador shell, compilar scripts, "esconder" conteúdo delicado como senhas, usuários, etc. shc converte o arquivo shell em linguagem "c", depois é só compilar o .c (criar o executável). tutorial dicas-l http://www.dicas-l.com.br/dicas-l/20060601.php Página do shc, a generic script compiler http://www.datsi.fi.upm.es/~frosal/ ******************************************************** ******************************************************** De: Cesar Grossmann Responder A: Cesar Grossmann Para: Linux-BR Assunto: Re: (linux-br)Criando script codificado Data: Fri, 22 Apr 2005 16:11:04 -0300 Em 22/04/05, Carlos Linux escreveu: > Quero criar um script cujo código fonte não possa ser > lido pelo usuário (como um arquivo binário). Como > posso fazer isso? Não dá para criptografar o conteúdo de forma que o usuário não consiga ler o conteúdo e possa executar o mesmo. E parece que a coisa não funciona com permissões, já que, para poder executar um script, se não me falha a memória, são necessárias permissões de leitura e execução. Uma idéia que me ocorreu é um script com permissão SUID e que a única coisa que ele faz é rodar outro script com permissões mais restritas. Tipo um front-end, sem nenhuma informação sensível, que tem permissão para carregar um outro script, este com informações sensíveis, mas que o usuário comum não pode abrir. Ou então fazendo um "source" em um arquivo que contém as informações necessárias. Tipo: {-- arquivo script SUID ROOT ou um usuário específico --} #!/bin/bash . /etc/informacoes_secretas # faz o que for necessario com $SENHA, por exemplo {-- arquivo que só pode ser lido por ROOT ou um usuário especial para tratar desta tarefa específica --} SENHA=minha_senha CONTA=minha_conta http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1812 http://listas.cipsga.org.br/pipermail/linux-br/2000-December/007454.html Outra opção é escrever um programa em C, mas se vai colocar as informações secretas no código-fonte, um 'strings' deve mostrar elas para quem souber o que procurar... Mas talvez o teu problema já tenha outra solução. Por quê você quer fazer isto? []s -- .O. Cesar A. K. Grossmann ICQ: 35659423 ..O http://www.LinuxByGrossmann.cjb.net/ OOO Quidquid Latine dictum sit, altum viditur ******************************************************** De: Jorge Godoy Para: Cesar Grossmann Cc: Linux-BR Assunto: Re: (linux-br)Criando script codificado Data: 22 Apr 2005 18:05:28 -0300 Cesar Grossmann writes: > {-- arquivo script SUID ROOT ou um usuário específico --} > #!/bin/bash > > . /etc/informacoes_secretas > > # faz o que for necessario com $SENHA, por exemplo Não funciona. Por questões de segurança não se pode ter scripts com os bits SUID e SGID ativados. Você pode escrever um wrapper em C e ativar os bits desejados neste wrapper. Para um exemplo de código que funciona consulte "perldoc perlsec", da documentação do Perl. -- Jorge Godoy ******************************************************** De: Thiago Macieira Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Criando script codificado Data: Fri, 22 Apr 2005 19:49:01 -0300 Cesar Grossmann wrote: >Uma idéia que me ocorreu é um script com permissão SUID e que a única Não existe script setuid. O que existia com o suidperl era um Perl setuid root que, por sua vez, podia ser usado para rodar scripts que tivessem o bit marcado. Mas você já viu um bash setuid root? -- Thiago Macieira - thiago (AT) macieira (DOT) info PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 2. Tó cennan his weorc gearu, ymbe se circolwyrde, wearð se cægbord and se leohtspeccabord, and þa mýs cómon lator. On þone dæg, he hine reste. --nextPart7022751.k1pnZgqUTS-- ******************************************************** De: Cesar Grossmann Responder A: Cesar Grossmann Para: Carlos Linux , Linux-BR Assunto: Re: (linux-br)Criando script codificado Data: Mon, 25 Apr 2005 10:03:00 -0300 Em 23/04/05, Carlos Linux escreveu: > Quero colocar em um script um comando que troque a senha de root de todas as > estações, só que para rodar este comando as estações terão que baixar o > script e executá-lo e no script estou passando a senha em modo texto > > echo SENHA | passwd --stdin root > > As estações não podem ter os serviços rexe ou rsh, etc ativados para que eu > possa utilizar um comando remoto. Existem outras opções para isto. Uma forma é usar o ssh. Você coloca uma chave SSH no diretório /root/.ssh das estações e vai poder fazer a conexão sem saber qual a senha de root das estações, direto. Veja em http://geocities.yahoo.com.br/cesarakg/secure-ptBR.html, o item "Autenticação de Chave SSH". []s -- .O. Cesar A. K. Grossmann ICQ: 35659423 ..O http://www.LinuxByGrossmann.cjb.net/ OOO Quidquid Latine dictum sit, altum viditur ******************************************************** De: Thiago Macieira Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Criando script codificado Data: Fri, 22 Apr 2005 14:10:43 -0300 Carlos Linux wrote: >Quero criar um script cujo código fonte não possa ser >lido pelo usuário (como um arquivo binário). Como >posso fazer isso? Antes de mais nada, cabe lembrar que um usuário razoavelmente experiente vai conseguir ler seu script. A primeira recomendação que eu faço é: não use script. Se você decidir ignorar a recomendação e seguir em frente, uma possibilidade é fazer como o shar: decodifica e executa. Algo bem simples: code="ZWNobyBIZWxsbywgd29ybGQK" eval `echo "$code" | openssl base64 -d` Ou, outro exemplo: #!/bin/sh sed '1,/^# CODE BEGINS HERE/d' $0 | openssl base64 -d' | \ while read line; do eval "$line" done exit $? # CODE BEGINS HERE ZWNobyBIZWxsbywgd29ybGQK -- Thiago Macieira - thiago (AT) macieira (DOT) info PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 2. Tó cennan his weorc gearu, ymbe se circolwyrde, wearð se cægbord and se leohtspeccabord, and þa mýs cómon lator. On þone dæg, he hine reste. ******************************************************** ******************************************************** ******************************************************** ******************************************************** ********************************************************