-
[EXT] 리눅스 시스템 - 아이노드> Information Security/Linux 2013. 10. 15. 22:45
아이노드(Inode)는 리눅스 시스템에서 사용되는 자료구조로, 파일시스템에 관한 정보를 담고 있다. 파일 시스템 내에서 파일이나 디렉토리는 고유한 아이노드를 가지고 있으며, 아이노드넘버를 통해 구분이 가능하다.
<아이노드가 담고 있는 정보>
- 파일이나 디렉토리마다 하나씩 할당됨.
- 소유자 그룹
- 접근 모드 (w,r,x)
- 파일 형태
- 아이노드넘버
이번 포스팅에서는 아이노드를 이해하기 위해
새로운 하드디스크를 추가하고, 파일을 생성했을 때 inode 값이 어떻게 변경되는지 확인해보도록 하겠다.
1. 하드디스크 추가 및 파티션 추가
1) 하드디스크 추가
# ls /dev/sd*
2) 파티션 추가
# fdisk /dev/sdb
주 파티션(primary partition)을 사용할 것인지, 확장 파티션(extended partition)을 사용할 것인가? p(주 파티션)
파티션 번호 설정(1부터 4까지 선택 가능 : ext파일 시스템에서는 주 파티션은 4개까지 지정이 가능하기 때문!)
실린더 설정을 하고나면 아래와 같이 파티션을 확인할 수 있다.
2. 파일시스템 생성
# mkfs.ext /def/sdb#
3. 마운트
# mkdir /mnt/extlab (마운트할 디렉토리 생성)
# mount /dev/sdb1 /mnt/extlab (마운트할 디렉토리에 디바이스 연결)
# mount
4. 덤프
추가된 하드디스크를 좀 더 깊이 살펴보기 위해 덤프해주고, Win_HEX로 자세히 살펴보겠다.
# dd if=/dev/sdb1 of=sdb1.dump
Win_HEX에서는
Specialist > Interpret Image As Disk로 덤프한 파일을 디스크로 인식시켜 열어준다.
5. inode값 확인
새로 추가된 하드디스크가 마운트 된 디렉토리에서 inode 값을 확인해본다.
# ls -ail
# echo aaaa>a.txt (a.txt 파일 생성)
# ls -ail (새로 생성된 파일의 inode 값 확인)
이 때, 새로운 파일 a.txt를 생성하게 되면 inode가 12일 것으로 예측할 수 있다.
6. lde로 더 자세한 정보 파악
# lde /dev/sdb#
※ 이 때 lde를 미리 설치해두어야 한다!
# apt-get install lde
lde에서는 MAC(Modification, Access, Creation) TIME을 확인할 수 있을 뿐더러, 해당 블록의 위치를 알 수도 있다.
아까 생성한 a.txt를 가리키는 블록 및 자세한 정보를 알기 위해 "h"로 0xc(a.txt의 inode의 헥사값)로 가보도록 한다.
12번 아이노드의 정보를 담고 있는 DIRECT BLOCK과 MAC TIME 등 정보를 확인할 수 있다.
7. WinHEX로 inode Bitmap의 inode 확인
728x90반응형'> Information Security > Linux' 카테고리의 다른 글
[ubuntu] Unix 침해사고 분석-스케줄링(crontab) (0) 2017.02.11 파일시스템 (0) 2014.01.02 [EXT] 디렉토리 엔트리 (0) 2013.10.15 [Linux] EXT 파일시스템 구조 (0) 2013.10.15 입출력 방향 변경 (0) 2010.11.15