[Cascavel-pm] Como fazer o perl executar programas externos sob outro usuario [Was: CGI + Password]

Luis Campos de Carvalho lechamps em terra.com.br
Quarta Março 12 13:22:31 CST 2003


----- Original Message -----
From: "Alceu R. de Freitas Jr." <glasswalk3r em yahoo.com.br>
Sent: Wednesday, March 12, 2003 4:00 PM


> Eu colocaria a senha em um arquivo texto, de
> preferência criptografada (usando algo como gnupg -
> tem módulo do Perl para isso) e deixando fora do
> diretório do servidor web. Aí vc dá direitos apenas de
> leitura ao usuário do servidor.

  A idéia de criptografia é excelente.
  Você pode por favor me indicar o nome do Módulo que implementa
criptografia? Obrigado!

> Aproveitando o ótimo gancho, como fazer um script em
> Perl executar um programa externo, mas fazendo isso
> como outro usuário (algo como o su do UNIX)?

  Existem algumas possibilidades:

  A. Faça o programa ser SetUID / SetGID.
     Vantagem: configuração requerida é mínima.
     Desvantagem: muitas pessoas acham que isso é falha grave de segurança
(eu inclusive).

  B. Faça um wrapper SetUID / SetGID para o programa:
     Construa um programa que se certifique que quem executa o script
poderia realmente fazer isso e depois dá C<exec()> para o programa desejado,
já como o usuário / grupo pretendidos.
     Vantagens: Menos problemático com relação à segurança;
     Desvantagens: Mais complicado de implementar. A autenticação pode ser
um problema insolúvel.

  C. Execute seu programa perl como root, sete $< e $> para os UID's / GID's
que você deseja. (Consulte o Camel Book para saber mais sobre $> e $< )
     Vantagens: flexível. você pode determinar qual usuario usar em tempo de
execução.
     Desvantagens: perl rodando como root == encrenca na certa.

  Espero que isso ajude.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho
  Computer Science Student
  OCP DBA Oracle & Unix Sys Admin
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




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