파일시스템 디버거 debugfs모드에서 파일링크 삭제하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,351 조회
- 0 추천
- 목록
본문
파일시스템 디버거 debugfs모드에서 파일링크 삭제하기
특정 파일시스템 내부에서 debugfs의 unlink명령어로 파일 또는 디렉토리링크를 삭제할 수 있습니다.
다음 예를 보시면 /home/sulinux 디렉토리에 있는 파일들을 ls로 먼저 확인하였습니다.
[root@su250 sulinux]# ls -l 합계 424 -rw-r--r-- 1 root root 410108 2009-01-04 20:40 services -r-------- 1 root root 1710 2009-01-04 20:40 shadow -rw-r--r-- 1 root root 32 2009-01-04 20:40 shells -rw-r--r-- 1 root root 212 2009-01-04 20:40 statetab drwxr-xr-x 2 root root 4096 2008-12-23 02:55 www [root@su250 sulinux]# |
이 디렉토리에는 모두 5개의 파일(한 개는 www디렉토리)이 있고 shells라는 파일도 존재하고 있습니다.
그리고 다음은 debugfs를 -w옵션(읽고/쓰기모드)으로 실행하면서 /dev/sda3파일시스템을 오픈 하였습니다.
/dev/sda3파일시스템은 /home에 마운트되어 있습니다.
따라서 이렇게 debugfs를 실행하여 /dev/sda3파일시스템을 오픈 하면 debugfs는 /home위치를 초기 작업대상위치로 인식합니다.
그리고 cd전용명령어로 sulinux라는 디렉토리로 이동하였습니다.
[root@su250 sulinux]# debugfs -w /dev/sda3 debugfs 1.41.3 (12-Oct-2008) debugfs: debugfs: ls 2 (12) . 2 (12) .. 11 (20) lost+found 51185 (16) bible 36561 (16) sspark 7313 (16) sulinux 21937 (4004) command debugfs: debugfs: cd sulinux debugfs: |
그리고 다음과 같이 ls전용명령어로 파일리스트를 확인한 결과 sulinux디렉토리에는 .(점)으로 시작되는 여러 개의 파일들과 앞에서 확인했던 5개의 파일(한 개는 www디렉토리)이 존재하고 있습니다.
이런 상황에서 “unlink shells”라는 debugfs전용명령어를 실행하였습니다.
과연 어떤 결과가 발생하였을까요?
debugfs: ls 7313 (12) . 2 (12) .. 7314 (24) .bash_profile 7315 (16) .bashrc 7316 (16) .mozilla 7319 (20) .bash_logout 7320 (16) .gnome2 7321 (80) www 7328 (40) services 7330 (32) shadow 7332 (52) shells 7335 (3776) statetab debugfs: debugfs: unlink shells debugfs: debugfs: ls
7313 (12) . 2 (12) .. 7314 (24) .bash_profile 7315 (16) .bashrc 7316 (16) .mozilla 7319 (20) .bash_logout 7320 (16) .gnome2 7321 (80) www 7328 (40) services 7330 (84) shadow 7335 (3776) statetab debugfs: |
그 결과 shells라는 파일의 링크가 삭제되었습니다.
“unlink shells”명령을 실행한 후에 “ls”를 실행하여 그 결과를 확인해 보면 shells라는 파일이 아예 존재하지 않고 있습니다.
링크가 삭제되었기 때문에 ls로 확인되지 않는 것입니다.
그리고 이번에는 debugfs에서 빠져 나와서(quit) 쉘상태에서 ls를 실행한 결과 shells라는 파일이 보이지 않습니다.
즉, 삭제된 것과 같이 나온다는 것입니다.
debugfs: quit [root@su250 sulinux]# [root@su250 sulinux]# ls -l
합계 420 -rw-r--r-- 1 root root 410108 2009-01-04 20:40 services -r-------- 1 root root 1710 2009-01-04 20:40 shadow -rw-r--r-- 1 root root 212 2009-01-04 20:40 statetab drwxr-xr-x 2 root root 4096 2008-12-23 02:55 www [root@su250 sulinux]# |
즉, debugfs에서 특정 파일의 링크를 삭제하면 debugfs 전용명령어 ls로도 그 파일은 보이지 않고 쉘상태로 돌아와서 쉘명령어 ls로도 그 파일은 보이지 않습니다.
관련자료
-
이전
-
다음