Linux에서 심볼릭 링크의 소유자를 변경하는 이유는 무엇입니까?

Linux에서 심볼릭 링크의 소유자를 변경하는 이유는 무엇입니까?

Linux에서는 기호 링크(symlink)의 소유자 또는 그룹 소유자를 변경할 수 있습니다. 심볼릭 링크를 통해 파일에 액세스할 때 심볼릭 링크의 권한이 사용되지 않기 때문에 누군가가 이것을 원하는 이유가 무엇인지 궁금합니다.

유용할 수 있는 한 가지 사용 사례만 상상할 수 있습니다. 즉, 사용자가 고정 비트를 사용하여 디렉터리에서 심볼릭 링크를 삭제할 수 있도록 허용하는 것입니다.

심볼릭 링크의 소유자 또는 그룹 소유자를 변경하는 것이 유용할 수 있는 다른 상황을 알고 있습니까?

답변1

링크 소유자가 대상 소유자와 일치하는 경우에만 Apache가 기호 링크를 따르도록 구성할 수 있습니다. 이는 사용자가 네트워크(예: /etc/passwd)를 통해 자신에게 속하지 않은 파일에 액세스하기 위한 링크를 생성하는 것을 방지하는 데 도움이 됩니다.

...그래서 당신이 루트라고 가정하면,구함apache는 xymon 등이 소유한 특정 로그 파일을 표시하기 위해 링크를 따라가지만, 소유자에 관계없이 심볼릭 링크를 따르도록 허용하여 Apache의 보안을 약화시키고 싶지는 않습니다. 그런 다음 xymon을 심볼릭 링크의 소유자로 만들고 싶을 수도 있습니다.

답변2

루트가 Eve가 쓸 수 있는 디렉터리에서 작업하고 있다고 가정합니다. 이 디렉터리에는 fooEve에 속하도록 변경해야 하는 파일이 있습니다 . 그래서 루트 유형 chown eve foo. 그러나 루트가 Enter를 누르기 직전에 Eve가 실행됩니다 ln -sf /etc/passwd foo. 이제 /etc/passwd그것은 Eve의 것입니다 ! chown -h eve foo심볼릭 링크를 따르지 않도록 루트를 실행할 수 있는 경우 가장 큰 피해는 동일한 디렉터리에 있는 일부 다른 파일이 Eve에 속하도록 변경되었다는 것입니다.

lchown디렉토리 트리의 소유자를 변경할 때도 편리합니다. 심볼릭 링크를 호출하기 때문에 실수로 트리 외부의 파일에 영향을 미칠까 걱정할 필요가 없습니다 chown.

답변3

첫 번째 답변은 문제를 해결하지 못하는 것 같고 두 번째 답변은 Apache에서만 작동합니다.

Linux에 대해 내가 생각할 수 있는 한 가지는 사용자가 심볼릭 링크의 소유자인 경우 일반 사용자가 심볼릭 링크에 대한 하드 링크를 만드는 것이 가능하다는 것입니다. 왜 누군가가 그런 링크를 만들고 싶어하는지 모르겠습니다.

또 다른 점은 일반 사용자가 파일을 소유하고 있는 경우(또한 파일이 추가되는 그룹의 구성원인 경우)에만 파일의 그룹 소유권을 변경할 수 있다는 것입니다. 이는 다음과 같은 질문을 제기합니다. 이 파일의 그룹 소유권은 무엇입니까? 심볼릭 링크는 괜찮습니다. 조직에서는 링크가 필요한 팀을 나타내는 레이블로 사용될 수 있습니다.

또한 적어도 Ubuntu에서는 누구나 심볼릭 링크의 타임스탬프를 업데이트할 수 있습니다. 그러나 일부 시스템에서는 소유자만 이 작업을 수행하도록 허용할 수 있습니다. 심볼릭 링크에 어떤 타임스탬프가 좋은지 잘 모르겠지만 사용법에 대한 유용한 정보를 제공할 수 있습니다.

편집: 소유권이 중요한 또 다른 이유를 방금 깨달았습니다. 링크는 파일 소유자만 삭제하거나 이름을 바꿀 수 있는 고정 디렉터리 내에 있을 수 있습니다.

답변4

로그 파일에 추가하는 프로그램이 있습니다. 이러한 로그 파일은 매월 생성되며 각 파일의 이름은 다릅니다. 소프트웨어가 정확한 파일 이름을 파악하도록 하는 대신 해당 월의 현재 파일에 대한 심볼릭 링크인 "일반" 파일 이름(예: data.log)을 사용합니다. 이는 cron 작업을 통해 자동으로 수행됩니다.

이제 새 월별 파일을 생성할 때 새 파일에 대한 심볼릭 링크를 가리켜야 합니다. 소유권/그룹 충돌이 있는 경우 소프트웨어는 기호 링크를 변경할 수 없습니다. 따라서 심볼릭 링크를 변경하려면 소유권/그룹 쓰기 권한이 필요합니다.

관련 정보