python - 在 chroot 环境 OpenBSD 中配置设备

标签 python cgi chroot openbsd jail

我已经摸不着头脑了一段时间,找不到让它工作的方法......

我想在我的 OpenBSD 服务器上运行一些 cgi 脚本(用 Python 编写)。由于 OpenBSD 上的 Web 服务器在 jail 中运行,我重新创建了整个文件夹结构(/bin/dev/usr/usr/local/lib 等),但当我“我正在尝试导入一些需要访问/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 网络服务器在 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()

任何帮助将不胜感激!

最佳答案

在 OpenBSD 上,非根 (/) 分区使用 nodev 选项挂载。查看您的 /etc/fstab。例如:

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

关于python - 在 chroot 环境 OpenBSD 中配置设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18819557/

相关文章:

linux - 使用 chroot 运行 snmp 没有给出当前值

linux - 如何限制用户只能访问特定文件夹

linux - chroot 进程 jail ,每次运行时将任意目录设置为 root

javascript - HTML和Python一起使用时如何使用 ' and "

python - 使用 python 的 ** 运算符和 * 运算符时进行签名

apache - 如何在没有 CGI 的情况下用 Perl 建立一个网站?

python - 无法部署 webpy 应用程序

python - Python 的 Oracle DB 连接错误 - cx_Oracle : cx_Oracle. DatabaseError: DPI-1047

python - 训练后如何保存/恢复模型?

linux - cgi-停止读取输入