如何保證只有特定程序從命名管道讀取?

如何保證只有特定程序從命名管道讀取?

假設在時間 (1),我使用 Python 建立一個命名管道,目標是最終此 Python 進程將向該命名管道寫入一些內容。為什麼?因為在時間 (2) 時,預計有另一個程序從該命名管道中讀取資料。

所以,基本上,它是透過命名管道的 IPC。為什麼這麼整齊?因為它看起來像一個文件,所以其他只能讀取文件的進程可以透過這種命名管道機製作為方便的 IPC 進行通信,而無需重寫其他進程。

但有一個問題:假設在時間 (1) 和時間 (2) 之間,一個邪惡進程在該預期進程之前首先開始從命名管道讀取資料。這樣,我的 Python 腳本最終可能會將資料傳送到非預期進程。因此,我不關心劫持者是否開始寫入我的特定風險模型中的進程(我只關心在預期進程之前從管道中讀取的劫持)。

問題:是否有任何機制可以確保除預期進程之外沒有其他進程從 IPC 中讀取預期進程?

答案1

命名管道與其他文件一樣具有檔案權限。確保在建立管道時設定權限,以便只有運行進程的帳戶才能從中讀取資料。

相關內容