![루트가 소유한 프로세스는 파일에 쓸 수 없습니다.](https://linux55.com/image/50649/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%EC%86%8C%EC%9C%A0%ED%95%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%93%B8%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
저는 주어진 경로에서 여러 파일을 읽고 써야 하는 프로그램(syslog-ng)을 실행하고 있습니다. 해당 경로의 파일을 열 수 없다고 주장하면서 시작 시 실패합니다.
다음 디렉토리 구조를 가정하십시오.
/var/platform/program
디렉터리 platform
의 권한은 0655로 설정됩니다(소유자 사용자에게는 실행 권한이 없습니다). 해당 권한을 0755로 변경하면 syslog-ng가 제대로 작동합니다.
반면에, 나는 같은 디렉토리에 있는 파일을 열고 쓰려고 시도하는 작은 프로그램을 C로 작성했는데 루트로 실행하면 잘 작동하지만 syslog-ng는 실패합니다...
이 상황에서는 어떤 문제가 발생할 수 있나요?
답변1
syslog가 이 디렉터리에 액세스하려고 할 수 있으므로 chdir
해당 디렉터리에 실행 비트를 설정해야 합니다.
바라보다비트를 실행하고 읽습니다. Linux에서 디렉토리 권한은 어떻게 작동합니까?더 많은 정보를 알고 싶습니다.