윈도우의 바로가기 같은 개념으로, 리눅스에 링크 개념이 있다. 링크에는 하드 링크(hard link)와 심볼릭 링크(symbolic link)가 있다.
심볼릭 링크 (symbolic link)
데이터가 있는 파일은 하나뿐이고, 그 원본 파일을 가리키는 링크만을 가지는 파일을 만드는 것이다.
원본 파일을 삭제하면 역할을 수행할수는 없지만, 여전히 같은 경로를 가리키면서 남아있다. 따라서 전혀 다른 파일이어도 원본 파일과 이름이 같으면 계속 사용할 수 있다. 이 점이 레이스컨디션 공격으로 이어질 수 있다.
심볼릭 링크 생성 방법
ln -s [원본 파일] [링크 파일 이름]
심볼릭 링크의 내부 작동 방식 - 새로운 inode 생성
원본파일과 링크 파일의 inode가 다른 것을 확인할 수 있다. 즉, 아래의 그림처럼 동작한다.
하드 링크(hard link)
똑같이 복사된 파일을 만드는 것으로 하드링크 파일을 수정하면 원래 파일도 수정된다. 그 이유는 i-node 번호만 복사했기 때문이다. 진짜로 복사했을 때와는 달리 파일 시스템 내의 원본 데이터 파일은 1개뿐이다. 즉, 원본 파일에 대한 포인터 느낌으로 보면 될 것 같다.
하드 링크 생성 방법
ln [원본 파일] [링크 파일]
하드 링크 내부 작동 방식 - 동일한 i node 가리킴
이는 아래의 그림과 같이 동작한다.
참고
https://koromoon.blogspot.com/2018/05/inode-symbolic-link-hard-link.html
'CS > Linux' 카테고리의 다른 글
[Linux] 데몬(Daemon)이란? (1) | 2022.05.07 |
---|