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