티스토리 뷰

Linux에서는 copy -a 옵션으로 파일의 metadata까지 복사가 가능합니다.

 

 

1. 파일의 Metadata

 

파일의 metadata란?

: 파일의 권한, 소유자 정보, 크기, MAC time 등의 상세 정보

 

 

MAC time
M - Modification time 수정 시간
A - Access time 접근 시간
C - Change time (속성, 권한) 변경 시간

 

*** stat [파일 이름] 으로 확인 가능

 

stat 명령어로 확인한 파일의 MAC time

 

따라서 metadata에서의 시간은 파일을 생성한 시간이 아니라 "마지막으로 수정한 시간 " 입니다.

 

또한 모든 파일에는 inode 번호라는 데이터가 존재합니다.

 

 

inode number
Linux에서 파일과 디렉토리를 관리하는 고유한 번호로 data의 위치를 가리킴
ls -il로 inode 확인 가능

 


 

2. Link

 

Linux에서는 파일 자체를 복사하지 않고도 링크를 걸어 파일을 가리킬 수 있습니다.

링크를 이용하면 필요한 library를 불러다가 사용할 수 있으므로 시간을 훨씬 단축할 수 있습니다.

 

Link의 등장 배경

링크는 다시 hard link와 symbolic link로 나뉘게 됩니다.

 

 

2.1 Hard Link

 

ln [원본 파일] [대상 파일]

하드 링크는 inode number가 동일한 완벽하게 같은 파일을 생성합니다. (inode number 공유)

 

a.txt와 aaaa.txt의 inode 번호 동일

 

그러나 동일한 partition / 동일한 file system을 사용해야 하며 디렉토리는 link가 불가능하다는 제약이 있습니다.

 

 

2.2 Symbolic Link

 

ln -s [원본 파일] [대상 파일]

 

심볼릭 링크는 Windows의 바로가기 아이콘과 유사합니다.

대상 파일이 원본 파일의 이름을 참조하는 구조이며, 따라서 원본 파일 이름이 삭제될 경우 더 이상 파일을 참조할 수 없습니다.

 

a.txt를 참조하는 b.txt (symbolic link)

 

b.txt는 a.txt를 참조하지만 서로의 inode 번호도 다르고, a.txt가 삭제 될 경우 더 이상 링크로 파일을 참조할 수 없습니다.

 

 


 

 

Linux File System의 inode 이해

 

내용을 정리하면 위 그림과 같습니다. (inode는 원본 data의 위치를 가리킴)

 

하드 링크와 심볼릭 링크의 개념을 잘 이해했는지, 다음의 경우를 통해 살펴보겠습니다.

 

 

 

case 1. 원본 파일 내용 변경

⇒ hard link, symbolic link 파일 모두 변경

 

case 2. 원본 파일 삭제 = 원본 파일 이름 삭제

⇒ hard link : inode를 통해 원본 파일이 저장된 주소를 찾아내므로 지워지지 않고 유지

⇒ symbolic link : 링크 참조 불가

 

case 3. 원본 파일 삭제 후 같은 이름의 파일 생성

⇒ hard link : inode가 달라지므로 처음 생성한 원본 파일로 유지

⇒ symbolic link : 파일 이름만 참조하므로 새로운 a.txt를 만들어도 그대로 연결

 

 

 

*** 파일을 삭제해도 모든 data가 완전히 사라지지 않기 때문에 원본 파일이 삭제되어도 hard link로의 접근이 가능합니다.따라서 파일이 삭제되었더라도 inode 기반의 metadata를 통해 원본의 복구가 가능합니다. (포렌식에서 inode 블록이 아주 중요한 이유!)

*** 모든 data까지 완전히 지우고 싶다면 별도의 wiping 프로그램을 이용해야 합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함