[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