4

私はしばらく頭を悩ませてきましたが、それを機能させる方法が見つかりません...

OpenBSD サーバーでいくつかの cgi スクリプト (Python で作成) を実行したいと考えています。OpenBSD の Web サーバーは刑務所で実行されるため、フォルダー構造全体 (/bin /dev /usr /usr/local/lib など) を再作成しましたが、「500 サーバー内部エラー」が発生します。 m /dev/urandom デバイスへのアクセスを必要とするいくつかの Python モジュールをインポートしようとしています。

mknod を使用してデバイス スペシャル ファイルを作成しました。

ls -la /dev/*random
ls -la /dev/{null,zero}

次の出力を得ました

crw-r--r--  1 root  wheel   45,   3 Sep 13 11:09 /dev/arandom
crw-r--r--  1 root  wheel   45,   0 Jul 15 19:02 /dev/random
crw-r--r--  1 root  wheel   45,   1 Jul 15 19:02 /dev/srandom
crw-r--r--  1 root  wheel   45,   2 Jul 15 19:02 /dev/urandom

crw-rw-rw-  1 root  wheel    2,   2 Sep 16 01:30 /dev/null
crw-rw-rw-  1 root  wheel    2,  12 Jul 15 19:02 /dev/zero

そこで、/var/www/dev フォルダーで次のコマンドを実行しました (OpenBSD Web サーバーは chroot -u www /var/www で実行されます)。

mknod -m 666 null c 2 2
mknod -m 666 zero c 2 12
mknod -m 644 random 45 0
mknod -m 644 srandom 45 1
mknod -m 644 urandom 45 2
mknod -m 644 arandom 45 3

ただし、Python は引き続き、

OSError: [Errno 6] Device not configured '/dev/urandom'

同じコードは、chroot されていない環境でも正常に機能します。

import os
import cgitb
cgitb.enable()

どんな助けでも本当に感謝します!

4

1 に答える 1

6

OpenBSD では、非ルート ( /) パーティションはオプションでマウントされnodevます。あなたのを見てください/etc/fstab。例えば:

$ mount | grep -F /var
/dev/wd0g on /var type ffs (local, nodev, nosuid)
于 2013-12-29T23:08:49.970 に答える