Webserver
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
提前致謝。
您還需要
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