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

前端之家收集整理的这篇文章主要介绍了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相关文章