|
特権分離には 2つのプロセスを使用しまっせ。
特権をもつ親プロセスは、特権をもたへん子プロセスの進行を監視しまっせ。
子プロセスは特権をもってへんねん。こらその uid/gid を実際には使われへん
ユーザのもんに変更し、chroot() によってそのプロセスの
ファイルシステムへのアクセスを /var/empty に制限するっちうことで
達成されはります。こらネットワークデータを処理するためだけのプロセスなんやこれがホンマに。
特権をもつ親プロセスは、どエライ小さな有限状態遷移機械として
モデル化するっちうことが可能なんやし、これによって特権をもった状態で実行される
コードについて理づめで考える (reasonする) のが容易になるんですわ。
特権をもつ親と、特権をもたへん子の間で
きちんと定義されたインターフェイスがあれば、
子プロセスは特権を必要とする操作を親プロセスに委任するっちうことが可能や。
認証が性交...ひひひ,ウソや,成功したかどうかは親プロセスによって決定されはります。
特権をもつプロセスともたへんプロセス間における通信は、
パイプによって実現されはります。パイプでは共有でけへん
それ以外のデータは、共有メモリに保持されはります。
子プロセスは特権をもつ親に認証が性交...ひひひ,ウソや,成功したかどうかを尋ねる必要がおます。
|
|
|