8. Link
1) Inode
▣ Inode란?
- 파일의 이름과 실제 데이터를 연결시켜주는 다리
[출처 : https://en.wikipedia.org/wiki/Inode_pointer_structure]
▣ 삭제
- 파일을 삭제해도 실제 하드디스크에는 남아있음.
- 삭제 : 데이터를 삭제하는게 아닌 Inode를 끊어버리는 것.
- 복원 : 다시 해당 데이터와의 Inode를 연결시켜줌.
- 포맷 : 데이터를 날리는게 아니고 그 위에 새 종이를 덮어 버리는 것과 비슷.
☞ 포맷을 5~6번 하면 그나마 복원하기 힘들어짐.
☞ SSD는 복원이 불가함.
2) 링크
<Hard Link File>
- 원본파일 abc가 존재한다고 가정.
- abc에 대해 하드 링크 파일을 생성 -> habc
- 하드 링크 파일은 동일한 inode를 사용하기 때문에 abc와 habc 모두 같은 문자열을 출력한다.
- 이 때 abc파일을 삭제해도 habc는 여전히 동일한 문자열을 출력한다.
- abc파일의 삭제는 데이터를 삭제하는 것이 아닌 inode1과 원본파일 사이를 끊는것을 의미.
- 그렇기 때문에 inode1은 계속해서 존재하므로 habc에는 아무런 영향이 없음.
- 또한 abc의 내용을 바꾸면 habc 또한 내용이 바뀜.
<Symbolic Link File>
- 원본파일 abc가 존재한다고 가정.
- abc에 대해 심볼릭 링크 파일을 생성 -> sabc
- 이 때 sabc는 새로운 아이노드인 inode2를 생성. 이 때는 포인터기 때문에 원본 파일을 가리킴.
- abc를 삭제 후 cat sabc를 하면 에러가 뜸.
- 하지만 심볼릭 링크 파일은 파일의 이름을 따라가기 때문에 다른 abc를 만들면 sabc는 새로 생성된 abc의 내용을 출력해줌.
▣ 하드 링크
- usage : ln <원본 파일> <링크 파일명>
- 링크 수에 영향을 줌. (링크 수 증가, 원본 삭제시 다시 내려옴)
- 동일한 inode 사용
- 원본 수정시 하드링크도 수정됨.
- 원본의 이동이나 삭제 시 남아 있음.
- 파일 복사와의 차이는 공간을 차지하지 않음.
▣ 심볼릭 링크
- usage : ln -s <원본 파일> <링크 파일명>
- 윈도우의 바로가기 아이콘과 비슷
- 주로 사용자가 많이 사용
- 긴 디렉토리명 이동시 유용
- 원본을 다른 곳으로 이동시키면 사용 못함.
- 새로운 inode 생성
- 원본 자체 포인터 역할 뿐이므로, 원본 수정시 수정된 파일이 보임.
- 원본의 삭제 시 링크가 끊김
- 파일 유형이 'l'이 됨. 권한은 777
▣ inode를 보여주는 명령어 : ls -il
☞ 원본 파일을 삭제한 후의 링크 파일들 출력 상태
[생각해봅시다~]
원본 권한 변경시 하드링크는? 심볼릭링크는?
- 하드링크 : 권한변경, 심볼릭링크 : 권한변경x
하드링크 권한 변경시 원본?
- 원본의 권한이 변경됨
심볼릭 링크 권한 변경시 원본은?
- 심볼릭링크 : 권한변경x , 원본: 권한변경됨
심볼릭 걸고 원본 삭제 후 같은 이름으로 다른파일 생성하면?
- 다른파일의 내용을 출력함
하드링크 걸고 원본 삭제 후 같은 이름으로 다른파일 생성하면?
- 새로운 파일이 생성됨
하드링크에 심볼릭 링크가 걸리나?
- O
심볼릭 링크에 하드링크가 걸리나?
- O
걸린다면 원본과는 어떻게 되나?
- 동일한 Inode 형성
디렉터리는 링크가능? 하드? 심볼릭?
- 심볼릭 링크 가능
Q. 디렉토리도 링크가 됨?
A. 심볼릭만 가능.
- 디렉토리는 실제 하드에 저장되어 있는 존재가 아니라 편리한 사용을 위해 제공되어지는 가상의 것임.
- 그러나 디렉토리 명은 존재하기때문에 심볼릭 링크는 가능함.
i2sec 대구지점 23기 수료생.
'해킹&보안 > Linux' 카테고리의 다른 글
[D+12] Package Install & Daemon (0) | 2017.02.22 |
---|---|
[D+11] Vi editor (0) | 2017.02.21 |
[D+9] Process Management (0) | 2017.02.17 |
[D+8] Permissions (0) | 2017.02.16 |
[D+7] 유저 관리 (0) | 2017.02.15 |