![명명된 파이프에서 특정 프로세스만 읽도록 하는 방법은 무엇입니까?](https://linux55.com/image/178460/%EB%AA%85%EB%AA%85%EB%90%9C%20%ED%8C%8C%EC%9D%B4%ED%94%84%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A7%8C%20%EC%9D%BD%EB%8F%84%EB%A1%9D%20%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
시간 (1)에서 Python을 사용하여 명명된 파이프를 생성하고 결국 이 Python 프로세스가 명명된 파이프에 무언가를 기록한다고 가정해 보겠습니다. 왜? 왜냐하면 시간 (2)에서는 다른 프로세스가 명명된 파이프에서 데이터를 읽을 것으로 예상되기 때문입니다.
따라서 기본적으로 명명된 파이프를 통한 IPC입니다. 왜 이렇게 깔끔한 걸까요? 파일처럼 보이기 때문에 파일 읽기만 가능한 다른 프로세스는 다른 프로세스를 다시 작성할 필요 없이 편리한 IPC로서 이 명명된 파이프 메커니즘을 통해 통신할 수 있습니다.
하지만 문제가 있습니다.시간(1)과 시간(2) 사이에 악의적인 프로세스가 의도된 프로세스보다 먼저 명명된 파이프에서 읽기 시작한다고 가정합니다. 이렇게 하면 내 Python 스크립트가 의도하지 않은 프로세스에 데이터를 보낼 수도 있습니다. 따라서 하이재커가 내 특정 위험 모델의 프로세스에 쓰기 시작하는지 여부는 신경 쓰지 않습니다(예상 프로세스 전에 파이프에서 읽는 하이재킹에만 관심이 있습니다).
질문:예상 프로세스 이외의 프로세스가 예상 프로세스에 대해 IPC에서 읽지 않도록 하는 메커니즘이 있습니까?
답변1
명명된 파이프에는 다른 파일과 마찬가지로 파일 권한이 있습니다. 프로세스가 실행되는 계정만 파이프에서 데이터를 읽을 수 있도록 파이프를 생성할 때 권한을 설정해야 합니다.