我现在已经摸不着头脑了,找不到办法让它发挥作用......
我想在我的OpenBSD服务器上运行一些cgi脚本(用Python编写)。由于OpenBSD上的Web服务器在jail中运行,我重新创建了整个文件夹结构(/ bin / dev / usr / usr / local / lib等等),但是当我''时,我仍然得到'500 Server Internal Error'我试图导入一些需要访问/ 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-server在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()
真正感谢任何帮助!
答案 0 :(得分:4)
在OpenBSD上,非根(/
)分区使用nodev
选项挂载。看看你的/etc/fstab
。例如:
$ mount | grep -F /var
/dev/wd0g on /var type ffs (local, nodev, nosuid)