Re: [Cascavel-pm] Módulo ou Função Perl

Luis Champs de Carvalho monsieur_champs em yahoo.com.br
Terça Julho 13 08:24:10 CDT 2004


> Date: Tue, 13 Jul 2004 06:54:12 -0300
> From: Marcilio <marciliomoura em uai.com.br>
> To: cascavel-pm em mail.pm.org
> Subject: [Cascavel-pm] M ódulo ou Fun ção Perl

On Tue, 13 Jul 2004, Marcilio wrote:
> Gostaria de saber se tem algum módulo ou Função em Perl que não conheço
> para executar comandos do sistema Unix ou Linux via Web , esta função
> tem que reiniciar a máquina; system e exec não funcionam, são ignoradas
> pelo browser,se alguem puder ajudar ...

  Marcílio, o que você está tentando fazer viola uma regra muito
importante do linux: pessoas não-autorizadas não podem (não devem?)
reiniciar a máquina.

  Você tem certeza de que precisa fazer isso? Raramente um sistema
linux/unix precisa ser reiniciado... e, nestes casos, é sempre
recomendável estar diante do console, onde você pode entrar como "root" e
ter certeza de que está fazendo a coisa certa. Você não quer me contar o
que está tentando fazer, e por quê está tentando fazer deste modo? Talvez
eu consiga propor uma solução mais simples, fácil, rápida e segura do que
a que eu documentei aqui.

  Lembre-se sempre: consulte antes seu administrador de sistemas, ele é a
pessoa mais indicada para compreender e resolver seus problemas com o
sistema.

  Acredito que o que você esteja tentando fazer possa se resolver assim:

  1. Entre na máquina como "root"; Todos os comandos que vamos executar
agora precisam do nível de acesso de administrador. Eu estou assumindo que
seu administrador usa o Bourne Again Shell. Assim, se você executar "echo
$SHELL" deve ter como resposta "/bin/bash" (ou algo pouco maior que isso).

  2. Crie um diretório separado do seu diretório de cgis:

  # [ ! -d /usr/local/bin ] && mkdir /usr/local/bin

  3. Usando seu editor de texto favorito, crie um arquivo chamado
"do-shutdown", com (literalmente) o seguinte conteúdo:

  #!/bin/bash
  exec /sbin/shutdown -r now
  ## EOF

  4. Altere as permissões de arquivo "do-shutdown" para que ele seja
considerado um executável pelo sistema, e para que, ao executá-lo, o
sistema ajuste as permissões para "root" (SetUID / SetGID).

  # chown root:root /usr/local/bin/do-shutdown
  # chmod 06755 /usr/local/bin/do-shutdown

  Pronto. Agora você tem um programa que o usuário "apache" ou "www" (que
é quem realmente executa seus programas CGI's) pode usar para executar um
shutdown da máquina. Agora, use o comando "system" ou "exec" do Perl (que
você já conhece) para executar o /usr/local/bin/do-shutdown.

      =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  ATENÇÃO: Isso é efetivamente uma BRECHA DE SEGURANÇA GRAVE no seu
website, e conseqüêntemente no seu SISTEMA. Eu NÃO SOU RESPONSÁVEL pela
implementação sugerida, nem pelas falhas ou pelos danos que ela pode
acarretar. Você tem o DEVER de INFORMAR seu administrador de sistemas
sobre o que você está tentando fazer, e não seguir em frente sem uma
segunda (e terceira!) opinião. Você foi avisado!!
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Eu insisto: deve haver outra solução para seu problema. Poderemos ajudar
você apenas se você "se abrir" e nos contar o que está acontecendo. :-) Se
você quiser, estou á disposição para conversar. Se preferir, mande
mensagem fora da lista.

  Boa sorte, e putamplexos!
  []'z!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BSc in Comp Science,
  PerlMonk [SiteDocClan], Cascavel-pm Moderator,
  Unix Sys Admin && Certified Oracle DBA
  http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=






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