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 Web 服务器的功能,因为在日志 /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

相关内容