명명된 파이프에서 특정 프로세스만 읽도록 하는 방법은 무엇입니까?

명명된 파이프에서 특정 프로세스만 읽도록 하는 방법은 무엇입니까?

시간 (1)에서 Python을 사용하여 명명된 파이프를 생성하고 결국 이 Python 프로세스가 명명된 파이프에 무언가를 기록한다고 가정해 보겠습니다. 왜? 왜냐하면 시간 (2)에서는 다른 프로세스가 명명된 파이프에서 데이터를 읽을 것으로 예상되기 때문입니다.

따라서 기본적으로 명명된 파이프를 통한 IPC입니다. 왜 이렇게 깔끔한 걸까요? 파일처럼 보이기 때문에 파일 읽기만 가능한 다른 프로세스는 다른 프로세스를 다시 작성할 필요 없이 편리한 IPC로서 이 명명된 파이프 메커니즘을 통해 통신할 수 있습니다.

하지만 문제가 있습니다.시간(1)과 시간(2) 사이에 악의적인 프로세스가 의도된 프로세스보다 먼저 명명된 파이프에서 읽기 시작한다고 가정합니다. 이렇게 하면 내 Python 스크립트가 의도하지 않은 프로세스에 데이터를 보낼 수도 있습니다. 따라서 하이재커가 내 특정 위험 모델의 프로세스에 쓰기 시작하는지 여부는 신경 쓰지 않습니다(예상 프로세스 전에 파이프에서 읽는 하이재킹에만 관심이 있습니다).

질문:예상 프로세스 이외의 프로세스가 예상 프로세스에 대해 IPC에서 읽지 않도록 하는 메커니즘이 있습니까?

답변1

명명된 파이프에는 다른 파일과 마찬가지로 파일 권한이 있습니다. 프로세스가 실행되는 계정만 파이프에서 데이터를 읽을 수 있도록 파이프를 생성할 때 권한을 설정해야 합니다.

관련 정보