[Cascavel-pm] Restringir_acesso_de_leitura_à_pasta_do_usuário

Raul Dias raul em dias.com.br
Sexta Agosto 1 09:17:21 CDT 2003


Oi,

Esta ocorrendo um erro conceitual do que é realmente o mod_perl.

mod_perl não é uma como o php que permite incluir páginas com código
junto do html.  Bem, ele permite fazer isso, mas isso é apenas uma
conseqüência.

mod_perl é uma extensão do apache em que se coloca o interpretador perl
inteiro dentro do apache em que ele exporta _toda_ a API do apache em
Perl.  Programas/scripts rodando com mod_perl não são um processo
separado, mas fazem parte do mesmo processo do apache (pelo menos do
Child em que foi chamado).  Btw, por isso chroot não faz sentido nesse
caso a não ser que se tenha vários apaches em portas diferentes.

Como conseqüência, qualquer script rodando sob mod_perl será o usuário
do apache (www, web, nobody, ...).  Por isso não haveria como restringir
sem patchs profundos no perl, mod_perl e apache.

Mas nem tudo esta perdido.
Existe um patch/módulo em algum lugar que permite que o apache rode como
usuário diferente para cada domínio virtual.  Nesse caso com uma
configuração bem apertada, é possível fazer o que você quer.
Algumas considerações:
- o patch/módulo é para apache 2 e é experimental (pré-alpha).
- o mod_perl para apache 2 é considerado experimental e instável.
- Você terá a quantidade de recursos que o apache gasta hoje vezes o   
  número de usuários em que ele rodará (serão processos separados)
  apenas para ele ficar inativo.

Se esse tipo de restrição é para evitar que um usuário acesse algo que
não deveria via mod_perl, esse é o menor dos seus problemas. mod_perl é
poderoso de mais (IMO) para permitir que pessoas não-confiáveis ou sem a
capacidade necessária acessem.


abraços,

Raul Dias


Em Qui, 2003-07-31 às 15:55, Luis Campos de Carvalho escreveu:
> Gabriel Vieira wrote:
> > Olá Alceu,
> > 
> > grato pela ajuda... porém o problema é que quero restringir o acesso a
> > arquivos a uma determinada pasta entende?
> > Exemplo: o login "teste" só poderá abrir arquivos que estiverem na pasta
> > /home/www/teste/ utilizando o perl.
> > open(FILE,"</home/www/teste/oi.htm");
> > ou seja
> > open(FILE,"</home/www/bla.htm");
> > ele não conseguiria abrir via .pl.
> > compreende?
> > 
> > Acho que estou sendo meio complicado :P
> > 
> 
> 
>    Olá, Gabriel.
>    Infelizmente, sem alterar o interpretador perl, a única forma de 
> conseguir isso que você deseja é usar a técnica de ChangeRoot Jail.
> 
>    Alguém da lista teria uma boa página com um tutorial de ChangeRoot 
> Jail para enviar ao Gabriel?
> 
>    Desculpe o mau jeito, mas hoje as coisas estão corridas demais... =-]
>    []'z!




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