linux – 为什么/ dev / urandom只能从root用户可读,因为Ubuntu 12.04以及如何“修复”它?

我曾经在很多服务器上使用Ubuntu 10.04模板.
自从改为12.04后,我遇到了一些我现在已经孤立的问题.

/ dev / urandom设备只能由root访问.

这导致SSL引擎,至少在PHP中,例如file_get_contents(https:// …失败).

它也打破了redmine.

在chmod 644之后,它可以正常工作,但重启时不会停留.

所以我的问题.

>这是为什么?我认为没有安全风险,因为……我的意思是……想偷一些随机数据?
>我怎样才能“修复”它?服务器是隔离的,只有一个应用程序使用,这就是我使用openvz的原因.我认为像运行级别脚本这样的东西……但我该如何有效地做到这一点? Maby与dpkg或apt?
> vor / dev / shm也一样.在这种情况下,我完全理解为什么它不可访问,但我认为我可以“修复”它以相同的方式来修复/ dev / urandom

解决方法

如果从udev读取过多,您可以消耗随机池,从而产生可预测的随机数.可能这就是为什么/ dev / urandom无法为所有人阅读的原因. (删除因为Graeme Donaldson是对的)

如果您仍想更改权限,请查看负责在/ dev / urandom上设置模式的udev规则,而不是弄乱您的init脚本.

在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中可能存在的差异) !)

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...