[Cascavel-pm] Dúvida sobre perl e CGIs

Rod Za rodzadra em yahoo.com
Quarta Outubro 19 08:32:52 PDT 2005


Eu tive uns problemas para utilizar o Perl com SETUID e - por favor não me martirizem :) -
utilizei um wrapper em C para fazer o trabalho. Eu sei que (talvez) a maioria não irá concordar
com o que vou postar aqui, mas achei bastante seguro fazê-lo:

Minha aplicação - em certa parte - precisava de ter acesso com permissões de root e apesar de
conseguir fazê-lo, em algumas distribuições GNU/Linux não era possível repetir o feito sem algum
sofrimento.

O que fiz foi criar um wrapper em C, com o setuid, que por sua vez chama - única e exclusivamente
o a parte do código Perl:

O wrapper é o seguinte:


<--codigo-->
/********************************************************
*                                                       *
* c_wrapper_sgqi - v.1.0                                *
* wrapper para executar scripts SUID.                   *
*                                                       *
* Para compilar:                                        *
*                                                       *
* cc -o c_wrapper_sgqi c_wrapper_sgqi.c                 *
*                                                       *
*                                                       *
* chown root:root /usr/bin/c_wrapper_sgqi               *
* chmod 4755       /usr/bin/c_wrapper_sgqi              *
*                                                       *
* chown root:root /opt/SGQI/bin/auth/auth_pam.pl        *
* chmod 0700       /opt/SGQI/bin/auth/auth_pam.pl       *
*                                                       *
* CopyRight 2004 - Rodrigo Zadra Armond                 *
*********************************************************/

#define REAL_SCRIPT "/opt/SGQI/bin/auth/auth_pam.pl"

main(ac, arguments)
char **arguments;
{ execv(REAL_SCRIPT, arguments); }
</--codigo--->

E pronto. Lógicamente que se o auth_pam.pl for adulterado lá se foi a segurança. :(

Rodrigo Zadra Armond.

--- Luis Campos de Carvalho <monsieur_champs em yahoo.com.br> wrote:

> 
>   Vou repetir: é particularmente perigoso permitir que um programa conectado à internet utilize
> permissões de root. Você deve considerar a possibilidade de utilizar um sistema batch para
> isolar
> o superusuário em um processo separado do CGI e do Apache.
> 
> --- "Alceu R. de Freitas Jr." <glasswalk3r em yahoo.com.br> escreveu:
> 
> > 
> > --- Hamilton Vera <hamilton em seven.com.br> escreveu:
> > 
> > Olá Hamilton,
> > 
> > > Estou desenvolvendo um CGI em PERL e gostaria de
> > > saber qual a melhor 
> > > maneira
> > > de utilizar o PERL para que o usuário que roda os
> > > CGIs ( apache) tenha 
> > > permissão
> > > para realizar alterações no sistema.
> > 
> > Você pode tentar usar o suEXEC do Apache para fazer
> > isso. Dê uma olhada na documentação do Apache.
> > 
> > Outra opção é usar o Sudo, se o que você precisa
> > executar necessita de permissões de root. Aqui você
> > pode encontrar referências de como usar o Sudo para
> > fazer isso:
> > http://faus.sourceforge.net/doc/pt-BR/faus.html
> > 
> > []'s
> > 
> > 
> > Alceu Rodrigues de Freitas Junior
> > --------------------------------------
> > glasswalk3r em yahoo.com.br
> > http://www.imortais.cjb.net
> > -----------------------------------------------------------------------
> > A well-used door needs no oil on its hinges.
> > A swift-flowing stream does not grow stagnant.
> > Neither sound nor thoughts can travel through a vacuum.
> > Software rots if not used.
> > These are great mysteries -- The Tao Of Programming, 5.1
> > 
> > 
> > 	
> > 
> > 
> > 
> > 	
> > 		
> > _______________________________________________________ 
> > Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de
> 500
> > prêmios! Participe! http://yahoo.fbiz.com.br/
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> > 
> 
> 
> --
> Luis Campos de Carvalho
> Member of "São Paulo Perl Mongers",
> Unix SysAdmin & OCP/DBA Oracle
> http://br.geocities.com/monsieur_champs/
> 
> 
> 	
> 
> 
> 
> 	
> 		
> _______________________________________________________ 
> Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500
> prêmios! Participe! http://yahoo.fbiz.com.br/
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
> 



		
__________________________________ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/


Mais detalhes sobre a lista de discussão Cascavel-pm