Я уже некоторое время ломаю голову и не могу найти способ заставить его работать...
Я хочу запустить несколько скриптов 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
Поэтому я выполнил следующие команды в папке /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()
Любая помощь будет по-настоящему оценена!
head -c16 /dev/urandom
илиdd if=/dev/urandom bs=16 count=1
из тюрьмы. Если вы получите ту же ошибку, спросите на SuperUser или ServerFault или на другом общем форуме Unix или OpenBSD. - person abarnert   schedule 16.09.2013