원본 파일에서 심볼릭 링크까지 읽기 전용 권한을 유지하는 방법은 무엇입니까?

원본 파일에서 심볼릭 링크까지 읽기 전용 권한을 유지하는 방법은 무엇입니까?

디렉터리 A의 파일 복사본을 디렉터리 B의 심볼릭 링크로 만들었으며 원본 파일에서 심볼릭 링크에 대한 읽기 권한만 유지하면 되었습니다. 이 예와 같습니다. 원본 파일에는 가 있고 –rwx-wxr-x링크에는 가 있어야 합니다.–r-----r--

명령이 아닌 Linux의 코드 C에서 이 작업을 수행해야 합니다. umask와 관련이 있는 것 같은데 어떻게 작동하는지 모르겠습니다.

답변1

심볼릭 링크에는 권한 개념이 없으므로 심볼릭 링크를 전달할 때 최종 파일에 액세스할 때와 다른 권한을 적용할 수 없습니다. 본질적으로 다른 파일에 대한 경로를 저장합니다(또는 심볼릭 링크가 매달려 있을 수 있으므로 그렇지 않습니다).

심볼릭 링크 자체에 권한 개념이 없는 이유는 이를 수행하는 사용 사례를 생각하기 어렵기 때문입니다. 심볼릭 링크를 역참조하고 최종 파일에 성공적으로 액세스할 수 있으면 readlink심볼릭 링크에서 (2)를 사용할 수도 있고 원래 권한으로 읽으십시오. 최종 파일을 얻으십시오. 그러므로 가장 간단하고 합리적인 대답은 "당신은 할 수 없습니다"입니다. :-)

이 작업을 수행하기로 결정한 경우 한 가지 옵션은 eBPF, ptrace 또는 이와 유사한 것을 사용하여 파일 경로에 대한 호출을 가로채고 일부 권한을 위조하는 것입니다(단, 프로그램이 올바르게 예상하지 못하는 경우 오류를 피하기 위해 심볼릭 링크가 아닌 척해야 할 수도 있음). 이것이 문제이다). 다시 말하지만, 심볼릭 링크가 있는 경우 사람들은 최종 목적지까지만 이를 해결하므로 여기서 달성하려는 목표가 무엇인지 잘 모르겠습니다.

관련 정보