web-dev-qa-db-ja.com

プログラムに/ dev / urandomの使用を強制する

特定のプログラムのルートなしで/ dev/randomを/ dev/urandomに再マップできる小さなコンテナを作成しようとしています。私がこれまでに持っているもの:

unshare -r bash -c 'chroot . /bin/busybox sh'

ほとんどの場合、これはSudo chroot . /bin/busybox shと同等の完全なchrootとして機能するようですが、1つの問題があります。somefilec19をmknodしようとすると、操作が許可されません。これは標準のchrootで機能します。これを回避することは可能ですか?そうでない場合、私が試みていることを行うためのより良い方法はありますか?

ランダムvsurandomのセキュリティについてのコメントで私を溺れさせないでください。それはこれが何であるかではありません。

3

プログラムが動的にリンクされている場合は、 プリロード ライブラリによってファイルを開く機能をオーバーライドできます。サンプルコードについては、 実行前にファイル記述子をリダイレクトする を参照してください。 /dev/null/dev/urandomに置き換え、ビルドコマンドでPATH_TO_OVERRIDE=/dev/randomを設定します。