[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