Python 在chroot环境OpenBSD中配置设备

Python 在chroot环境OpenBSD中配置设备,python,cgi,chroot,openbsd,jail,Python,Cgi,Chroot,Openbsd,Jail,我挠头已经有一段时间了,找不到办法让它工作 我想在我的OpenBSD服务器上运行一些cgi脚本(用Python编写)。由于OpenBSD上的web服务器在监狱中运行,我重新创建了整个文件夹结构(/bin/dev/usr/usr/local/lib等),但当我尝试导入一些需要访问/dev/uradom设备的Python模块时,仍然会遇到“500服务器内部错误” 我已经使用mknod创建了设备特殊文件 ls -la /dev/*random ls -la /dev/{null,zero} 我得到了

我挠头已经有一段时间了,找不到办法让它工作

我想在我的OpenBSD服务器上运行一些cgi脚本(用Python编写)。由于OpenBSD上的web服务器在监狱中运行,我重新创建了整个文件夹结构(/bin/dev/usr/usr/local/lib等),但当我尝试导入一些需要访问/dev/uradom设备的Python模块时,仍然会遇到“500服务器内部错误”

我已经使用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

因此,我在/var/www/dev文件夹中执行了以下命令(OpenBSDWeb服务器在chroot-uwww/var/www中运行)

然而,Python仍然报告

OSError: [Errno 6] Device not configured '/dev/urandom'
同样的代码在非chroot环境中工作良好

import os
import cgitb
cgitb.enable()
任何帮助都将不胜感激

在OpenBSD上,非根(
/
)分区通过
nodev
选项装入。查看您的
/etc/fstab
。例如:

$ mount | grep -F /var
/dev/wd0g on /var type ffs (local, nodev, nosuid)

这几乎可以肯定是一个系统配置问题,因为您没有正确设置监狱,而不是Python监狱。你可以很容易地测试这一点,只要看看你在监狱里运行时会发生什么,比如说,
head-c16/dev/uradom
或者
ddif=/dev/uradom bs=16 count=1
。如果您遇到同样的错误,请访问SuperUser或ServerFault或其他通用Unix或OpenBSD论坛。谢谢!dd命令显示的结果与Python完全相同。所以这肯定是配置问题。NetBSD也是如此。
import os
import cgitb
cgitb.enable()
$ mount | grep -F /var
/dev/wd0g on /var type ffs (local, nodev, nosuid)