我绞尽脑汁已经有一段时间了,找不到一个办法让它发挥作用。。。在
我想在我的OpenBSD服务器上运行一些cgi脚本(用Python编写)。由于OpenBSD上的web服务器运行在一个监狱中,我重新创建了整个文件夹结构(/bin/dev/usr/usr/local/lib等),但是当我试图导入一些需要访问/dev/urandom设备的Python模块时,仍然会遇到“500服务器内部错误”。在
我用mknod创建了设备专用文件。在
ls -la /dev/*random
ls -la /dev/{null,zero}
我得到以下输出
^{pr2}$以及
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-uwww/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()
如有任何帮助,我们将不胜感激!在
在OpenBSD上,非根(
/
)分区是用nodev
选项装入的。看看你的/etc/fstab
。例如:相关问题 更多 >
编程相关推荐