web-dev-qa-db-ja.com

Ubuntu 12.04以降、/ dev / urandomがrootでしか読み取れないのはなぜですか。どうすれば「修正」できますか?

以前は、多くのサーバーでUbuntu 10.04テンプレートを使用していました。 12.04に変更してから、問題を特定できました。

/ dev/urandomデバイスはrootのみがアクセスできます。

これにより、少なくともPHPではSSLエンジン、たとえばfile_get_contents(https:// ...)が失敗しました。

また、レッドマインを壊しました。

Chmod 644の後は問題なく動作しますが、再起動しても残りません。

だから私の質問。

  1. どうしてこれなの?セキュリティのリスクはないので...ランダムなデータを盗みたいですか?

  2. どうすれば「修正」できますか?サーバーは分離され、1つのアプリケーションだけで使用されるため、openvzを使用しています。ランレベルスクリプトなどのことを考えていますが、どうすれば効率的に実行できますか? dpkgまたはaptのMaby?

  3. / dev/shmでも同様です。この場合、アクセスできない理由は完全に理解できますが、/ dev/urandomを修正するのと同じ方法で「修正」できると思います

10
The Shurrican

Udevからの過剰な読み取りにより、ランダムプールを排出して、予測可能な乱数を生成できます。おそらく、これが/ dev/urandomを誰もが読めない理由です。 (Graeme Donaldsonが正しいため削除されました)

それでもパーミッションを変更したい場合は、initスクリプトを台無しにするのではなく、/ dev/urandomでモードを設定する責任があるudevルールを調べてください。

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で可能な違いに注意してください) !)

3
asdmin

実際には、ubuntu 12.04 openvzテンプレートが公開され、uraondmとshmデバイスのアクセス権も修正されました

1
The Shurrican

修正方法については、一時的なバンドエイドは

cat "chmod 666 /dev/urandom" >> /etc/rc.local
1
michel-slm

Udevtriggerが起動していない問題。 /etc/init.d/udevtrigger restart...で再起動してみてください。問題が解決した場合は、/ etc/init/udevtrigger.confファイルを変更してください。

-     and not-container)
+     )
1
Csabka

RHELの場合:/etc/security/console.perms.d/に権限のオーバーライドを含むセキュリティルールを追加します。

ubuntuで類似している必要があります

0
GioMac