Назад | Перейти на главную страницу

Почему с Ubuntu 12.04 / dev / urandom можно читать только root и как я могу это «исправить»?

Раньше я работал с шаблонами Ubuntu 10.04 на многих серверах. После перехода на 12.04 у меня возникли проблемы, которые я теперь изолировал.

Устройство / dev / urandom доступно только для root.

Это привело к сбою механизмов SSL, по крайней мере, в PHP, например file_get_contents (https: // ....

Это также сломало Redmine.

После chmod 644 он работает нормально, но не остается после перезагрузки.

Итак, мой вопрос.

  1. почему это? Я не вижу угрозы безопасности, потому что ... то есть ... хотите украсть какие-то случайные данные?

  2. Как я могу это "исправить"? Серверы изолированы и используются только одним приложением, поэтому я использую openvz. Я думаю о чем-то вроде сценария уровня запуска или около того ... но как мне это сделать эффективно? Маби с dpkg или apt?

  3. То же самое и с vor / dev / shm. в этом случае я полностью понимаю, почему он недоступен, но предполагаю, что могу «исправить» его так же, как и / dev / urandom

При чрезмерном чтении из udev вы можете истощить случайный пул, что приведет к предсказуемым случайным числам. Вероятно, по этой причине / dev / urandom не доступен для чтения всем. (удалено, потому что Грэм Дональдсон прав)

Если вы все же хотите изменить разрешение, изучите правила udev, отвечающие за установку режимов на / dev / urandom, вместо того, чтобы испортить свои сценарии инициализации.

В Debian легко найти виновное правило:

$ dpkg -L udev | xargs grep urandom
/lib/udev/rules.d/91-permissions.rules:KERNEL=="urandom", MODE="0666"

В вашем случае MODE определенно не 0666.

Если хотите, измените его в соответствии с правилами конфигурации udev.

Примечание: http://lists.centos.org/pipermail/centos/2009-July/079134.html может помочь с изменением udev.

В основном вам нужно создать правило, которое выглядит как результат grep, за исключением того, что для него установлен правильный режим, и добавить его как файл правил в /etc/udev/rules.d/ (обратите внимание на возможные различия в Ubuntu и Debian !)

Проблема в том, что udevtrigger не запущен. Попробуйте перезапустить с помощью /etc/init.d/udevtrigger restart... и если это решит проблему, как для меня ... тогда измените файл /etc/init/udevtrigger.conf:

-     and not-container)
+     )

на самом деле шаблон openvz ubuntu 12.04 теперь общедоступен, и они исправили разрешения как на uraondm, так и на устройстве shm

Что касается того, как вы можете это исправить, временный пластырь будет просто

cat "chmod 666 /dev/urandom" >> /etc/rc.local

В RHEL: добавьте правила безопасности с переопределением разрешений в /etc/security/console.perms.d/

должно быть похоже в ubuntu