chroot não pode encontrar o arquivo cgi

1

Eu não consigo servir ou executar um arquivo cgi, e a causa parece ser que o chroot não consegue encontrar o arquivo cgi quando a permissão está definida como executável.

$>ls -l /var/www/my/dir/test.cgi
-rwxr-xr-x 1 root   daemon 67 May 19 15:45 /var/www/my/dir/test.cgi

$> chroot /var/www/ /my/dir/test.cgi
chroot: /my/dir/test.cgi: No such file or directory

Por que o chroot não encontra o arquivo?

Se eu alterar as permissões para remover a execução, $> chmod 644 /var/www/my/dir/test.cgi , execute o mesmo comando chroot, o arquivo será encontrado, mas a permissão será negada.

$> chroot /var/www/ /my/dir/test.cgi
chroot: /my/dir/test.cgi: Permission denied

O sistema é o OpenBSD 5.7. Eu estava testando usando o chroot para tentar imitar o que o servidor web httpd faz, porque no log / var / log / daemon, há uma mensagem similar do slowcgi após tentar acessar o arquivo: slowcgi[15587] execve /my/dir/index.cgi: No such file or directory

Obrigado antecipadamente.

    
por hilcharge 19.05.2015 / 00:17

1 resposta

1

Você também precisa de perl e todas as dependências dele em chroot .

Todos esses arquivos precisam ser copiados para /var/www/usr/bin , /var/www/usr/lib e /var/www/usr/libexec :

# ldd /usr/bin/perl
/usr/bin/perl:
        Start            End              Type Open Ref GrpRef Name
        0000001b26c00000 0000001b27002000 exe  1    0   0      /usr/bin/perl
        0000001da0006000 0000001da0418000 rlib 0    2   0      /usr/lib/libpthread.so.18.1
        0000001d2b68b000 0000001d2bc26000 rlib 0    1   0      /usr/lib/libperl.so.17.0
        0000001d6fed5000 0000001d702fd000 rlib 0    1   0      /usr/lib/libm.so.9.0
        0000001d8d017000 0000001d8d423000 rlib 0    1   0      /usr/lib/libutil.so.12.1
        0000001ddb924000 0000001ddbe10000 rlib 0    1   0      /usr/lib/libc.so.78.1
        0000001d7f700000 0000001d7f700000 rtld 0    1   0      /usr/libexec/ld.so
    
por 29.05.2015 / 23:35