Я почесал голову на некоторое время теперь и не может найти способ, чтобы заставить его работать ...Конфигурирование устройств в изолированной среды OpenBSD
Я хочу, чтобы запустить некоторые CGI скрипты (написаны на Python) на моем Сервер OpenBSD. Поскольку веб-сервер на OpenBSD работает в тюрьме, я воссоздал всю структуру папок (/ bin/dev/usr/usr/local/lib и т. Д.), Но я все еще получаю «Внутреннюю ошибку сервера 500», m пытается импортировать некоторые модули Python, которые требуют доступа к устройству/dev/urandom.
Я создал специальные файлы устройства, используя 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
Таким образом, я выполнил следующие команды в папке/вар/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'
Тот же самый код отлично работает в среде без корневого-й изда.
import os
import cgitb
cgitb.enable()
Любая помощь будет поистине оценена!
Это почти наверняка проблема с конфигурацией системы - вы не настроили тюрьму вправо, а не на Python. Вы можете легко проверить это, просто увидев, что происходит, когда вы запускаете, например, 'head -c16/dev/urandom' или' dd if =/dev/urandom bs = 16 count = 1' изнутри тюрьмы. Если вы получите ту же ошибку, попросите SuperUser или ServerFault или другой общий форум Unix или OpenBSD. – abarnert
Спасибо! Команда dd показывает тот же результат, что и Python. Так что это определенно проблема конфигурации. – TDrabas