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

おすすめ記事