特定のプロセスだけが名前付きパイプから読み取ることを保証するにはどうすればよいですか?

特定のプロセスだけが名前付きパイプから読み取ることを保証するにはどうすればよいですか?

時点 (1) で、Python を使用して名前付きパイプを作成し、最終的にこの Python プロセスがその名前付きパイプに何かを書き込むことを目標としているとします。なぜでしょうか? 時点 (2) で、その名前付きパイプから読み取ることが予想される別のプロセスが存在するためです。

つまり、基本的には名前付きパイプ経由の IPC です。これがなぜ便利なのでしょうか? ファイルのように見えるため、ファイルの読み取りしかできない他のプロセスは、他のプロセスを書き換える必要なく、便利な IPC としてこの名前付きパイプ メカニズムを介して通信できます。

しかし問題がある:時間 (1) と時間 (2) の間に、悪意のあるプロセスが、その意図されたプロセスよりも先に名前付きパイプからの読み取りを開始したとします。このように、私の Python スクリプトは、意図しないプロセスにデータを送信してしまう可能性があります。したがって、私の特定のリスク モデルでは、ハイジャッカーがプロセスへの書き込みを開始しても心配はありません (意図されたプロセスよりも先にパイプからハイジャックを読み取ることだけを心配しています)。

質問:意図したプロセス以外のプロセスが IPC から読み取らないようにするメカニズムはありますか?

答え1

名前付きパイプには、他のファイルと同様にファイル権限があります。パイプを作成するときは、プロセスを実行するアカウントのみがパイプから読み取ることができるように権限が設定されていることを確認してください。

関連情報