Digital Forensics/Linux2010. 3. 15. 15:22
반응형

2-4-5. EXT2 파일 시스템에서 파일 찾기


     리눅스 파일 이름은 다른 유닉스의 파일 이름과 같은 형식으로 되어 있다
. 이름은 앞에 슬래시('/')가 붙은 디렉토리 이름이 이어지고 마지막에 파일 이름이 오는 형태이다. 예를 들어, 파일 이름이 /home/rusling/.cshrc이라면, /home /rusling은 디렉토리 이름이고 파일 이름은 .cshrc이다. 다른 모든 유닉스 시스템과 마찬가지로 리눅스는 파일 이름 자체의 형식은 신경쓰지 않는다. 길이 제한도 없고, 인쇄 가능한 아무런 문자로 구성된다. 이 파일을 나타내는 inode EXT2 파일 시스템 안에서 찾기 위해, 시스템은 파일 이름을 해석해서 한 디렉토리씩 처리하여 파일 자체를 얻게 된다.


     처음 필요한
inode는 파일 시스템의 루트의 inode, inode 숫자값은 파일 시스템의 수퍼 블럭에서 얻는다. EXT2 inode를 읽기 위해서는 해당하는 블럭 그룹의 inode 테이블에서 찾아야 한다. 예를 들어 루트 inode의 번호가 42라면 우리는 블럭 그룹 0 inode 테이블의 42번 째 inode가 필요한 것이다. 루트 inode EXT2 디렉토리를 위한 것이다. 다시 말해서 루트 inode의 모드는 루트 inode가 디렉토리임을 나타내며 데이터 블럭에는 EXT2 디렉토리 엔트리가 들어 있다.


     home
은 여러 디렉토리 엔트리 중의 하나일 뿐 이며 /home 디렉토리를 나타내는 inode의 번호를 알려준다. 이 디렉토리를 읽어서 (디렉토리를 읽으려면 우선 inode를 읽고 그 inode 가 가리키는 데이터 블럭으로부터 디렉토리 엔트리를 읽어야 한다.) rusling 엔트리를 찾으면 그 엔트리는 /home/rusling 디렉토리를 나타내는 inode의 번호를 알려줄 것이다. 마침내 우리는 /home/rusling 디렉토리를 나타내는 inode가 가리키는 디렉토리 엔트리를 읽어서 .cshrc 파일의 inode 번호를 찾은 다음, 이 번호를 이용하여 파일의 내용을 갖고 있는 데이터 블럭을 가져오게 된다.

 

“ /dir/file.txt “ inode를 이용해 찾아가기!

1 루트 디렉토리의 inode 번호는 2 (ext)

2 루트 inode index block을 통해 Dir inode를 알아냄

3 dir inode index block을 통해 file inode를 알아냄

4 file inode index block을 통해 DATA를 찾음!

반응형
Posted by CCIBOMB