심볼릭 링크는 항상 상위 파일과 동기화됩니까?

심볼릭 링크는 항상 상위 파일과 동기화됩니까?

루트 소유권만 있는 로그 파일이 있습니다. 이 파일은 활성 수신 로그로 구성되며 항상 지속적으로 업데이트됩니다. 이 파일에 대한 심볼릭 링크를 생성하고 소유권을 syslog로 변경해야 합니다. 파일을 선택하고 원격 nxlog 서버로 보내려면 rsyslog가 필요하기 때문에 심볼릭 링크 파일이 항상 상위 파일과 동기화되어 있고 소유자 변경이 작동하는지 잘 모르겠습니다.

답변1

심볼릭 링크는 실제 파일에 대한 참조일 뿐입니다. 동기화나 그런건 전혀 없습니다.

ls심볼릭 링크의 출력을 보면 일반적으로 다음과 같은 내용이 표시됩니다.

ls -l /bin/bzcmp 
lrwxrwxrwx 1 root root 6 jul  9  2014 /bin/bzcmp -> bzdiff

보시다시피 /bin/bzcmp파일 크기는 정확히 6바이트에 불과합니다 . 이를 사용하여 심볼릭 링크가 가리키는 위치를 확인할 bzdiff수도 있습니다 .readlink

링크의 경우 대상 권한이 적용되므로 권한을 변경할 필요가 없으며 불가능합니다. 따라서 링크 소유자를 변경할 필요가 없습니다(lrwxrwx읽고 쓰기).

답변2

심볼릭 링크는 파일의 복사본이 아니며 본질적으로 동일한 파일에 대한 포인터입니다. 예를 들어, 권한으로는 아무 것도 할 수 없으며 원본 파일에 액세스할 수 없으면 심볼릭 링크로 무엇을 하든 문제가 해결되지 않는다는 의미입니다.

게다가 항상 동일한 파일을 직접 가리키기 때문에 항상 "동기화"되어 있습니다.

답변3

심볼릭 링크는 바로가기와 같이 파일/폴더에 대한 포인터일 뿐입니다. 항상 lrwxrwxrwx 권한을 갖습니다. 다른 답변에서 지적했듯이 대상 권한이 적용됩니다.

반면, 하드 링크는 동일한 인덱스 노드를 가리키는 디렉터리 항목(파일)입니다. 다른 파일의 이름을 변경하더라도 하드 링크는 여전히 해당 파일을 가리킵니다. 이는 원본 파일을 삭제한 경우에도 마찬가지입니다. inode를 가리키는 모든 파일이 삭제되면 해당 파일도 삭제됩니다. 원본 파일이나 하드 링크된 파일의 권한을 변경하면 동일한 inode를 가리키는 모든 파일의 권한이 변경되므로 이 경우 권한이 동기화됩니다.

관련 정보