chroot가 cgi 파일을 찾을 수 없습니다

chroot가 cgi 파일을 찾을 수 없습니다

cgi 파일을 제공하거나 실행할 수 없습니다. 그 이유는 권한이 실행 가능으로 설정되어 있을 때 chroot가 cgi 파일을 찾을 수 없기 때문인 것 같습니다.

$>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

chroot가 파일을 찾을 수 없는 이유는 무엇입니까?

실행을 제거하기 위해 권한을 변경한 다음 $> chmod 644 /var/www/my/dir/test.cgi동일한 chroot 명령을 실행하면 파일이 발견되지만 권한이 거부됩니다.

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

시스템은 OpenBSD 5.7입니다. 나는 테스트를 위해 chroot를 사용하고 있으며, httpd 웹 서버의 기능을 모방하려고 시도하고 있습니다. 로그 /var/log/daemon에서 파일에 액세스하려고 시도한 후 Slowcgi가 다음과 같은 메시지를 표시하기 때문입니다.slowcgi[15587] execve /my/dir/index.cgi: No such file or directory

미리 감사드립니다.

답변1

당신은 또한 그것 perl과 그것의 모든 의존성을 필요로 합니다 chroot.

/var/www/usr/bin이러한 파일은 , /var/www/usr/lib및 에 복사되어야 합니다 /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

관련 정보