원하는 파일타입의 파일들 검색하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,414 조회
- 0 추천
- 목록
본문
원하는 파일타입의 파일들 검색하기
이번에는 우리가 원하는 위치에 있는 우리가 원하는 파일타입을 가진 파일만을 검색하는 방법을 보겠습니다.
find명령어에서 파일타입을 지정하고자 할 때에는 다음과 같은 방법으로 지정합니다.
-type b : 블록장치파일(block special file)
-type c : 문자장치파일(character special file)
-type d : 디렉토리(directory)
-type p : FIFO파일(first in first out)
-type f : 일반파일(regular file)
-type l : 심볼릭 링크파일(symbolic link file)
-type s : 소켓파일(socket file)
즉, 리눅스에서 사용되는 파일들은 위와 같이 파일타입(종류)이라는 것이 있으며 특정 파일타입을 가진 파일을 찾고자 할 때에 위와 같이 지정하면 됩니다.
이어지는 예들을 보십시오.
먼저, 블록장치파일을 검색한 예입니다.
즉, /dev 내에 블록장치파일을 검색하였습니다.
파일퍼미션 자리의 맨 앞부분에 보면 b라는 문자가 보일 것입니다.
이것이 블록장치파일임을 의미하고 있습니다.
[root@su250 ~]# find /dev -type b -exec ls -l {} \; brw-r----- 1 root floppy 2, 28 2008-12-23 02:08 /dev/fd0u1440 brw-rw---- 1 root floppy 2, 0 2008-12-23 02:08 /dev/fd0 brw-rw---- 1 root disk 1, 1 2008-12-23 02:08 /dev/ram1 brw-rw---- 1 root disk 1, 0 2008-12-23 02:08 /dev/ram0 brw------- 1 root root 8, 5 2008-12-23 02:08 /dev/root brw-rw---- 1 root disk 8, 17 2008-12-23 02:08 /dev/sdb1 brw-rw---- 1 root disk 8, 16 2008-12-23 02:08 /dev/sdb brw-rw---- 1 root disk 8, 5 2008-12-23 02:08 /dev/sda5 brw-rw---- 1 root disk 8, 4 2008-12-23 02:08 /dev/sda4 brw-rw---- 1 root disk 8, 3 2008-12-23 02:08 /dev/sda3 brw-rw---- 1 root disk 8, 2 2008-12-23 02:08 /dev/sda2 brw-rw---- 1 root disk 8, 1 2008-12-23 02:08 /dev/sda1 brw-rw---- 1 root disk 8, 0 2008-12-23 02:08 /dev/sda brw-rw---- 1 root disk 11, 0 2008-12-23 02:08 /dev/sr0 [root@su250 ~]# |
다음 예는 /dev 내에 존재하는 문자장치파일을 검색한 예입니다.
각 행의 앞부분이 c로 시작하고 있음을 확인하십시오.
[root@su250 ~]# find /dev -type c -exec ls -l {} \; crw-rw---- 1 vcsa tty 7, 134 2008-12-23 02:09 /dev/vcsa6 crw-rw---- 1 vcsa tty 7, 6 2008-12-23 02:09 /dev/vcs6 crw-rw---- 1 vcsa tty 7, 130 2008-12-23 02:09 /dev/vcsa2 crw-rw---- 1 vcsa tty 7, 2 2008-12-23 02:09 /dev/vcs2 crw-rw---- 1 vcsa tty 7, 131 2008-12-23 02:09 /dev/vcsa3 crw-rw---- 1 vcsa tty 7, 3 2008-12-23 02:09 /dev/vcs3 crw-rw---- 1 vcsa tty 7, 133 2008-12-23 02:09 /dev/vcsa5 crw-rw---- 1 vcsa tty 7, 5 2008-12-23 02:09 /dev/vcs5 crw-rw---- 1 vcsa tty 7, 132 2008-12-23 02:09 /dev/vcsa4 crw-rw---- 1 vcsa tty 7, 4 2008-12-23 02:09 /dev/vcs4 crw-rw---- 1 root lp 99, 0 2008-12-23 02:08 /dev/parport0 crw-rw---- 1 root root 14, 0 2008-12-23 02:08 /dev/mixer crw-rw---- 1 root root 14, 3 2008-12-23 02:08 /dev/dsp crw-rw---- 1 root root 14, 4 2008-12-23 02:08 /dev/audio crw-rw---- 1 root root 14, 12 2008-12-23 02:08 /dev/adsp crw-rw---- 1 root root 14, 9 2008-12-23 02:08 /dev/dmmidi [root@su250 ~]# |
다음은 /etc 디렉토리내에 존재하는 디렉토리들을 확인한 것입니다.
[root@su250 ~]# find /etc -type d -print /etc /etc/pulse /etc/profile.d /etc/selinux /etc/selinux/targeted /etc/selinux/targeted/modules /etc/selinux/targeted/modules/active /etc/selinux/targeted/modules/active/modules /etc/selinux/targeted/policy /etc/selinux/targeted/contexts /etc/selinux/targeted/contexts/files /etc/selinux/targeted/contexts/users …이하생략 |
다음은 /home/sspark 디렉토리내에 존재하는 일반파일(regular file)만을 검색한 예입니다.
[root@su250 ~]# find /home/sspark -type f -exec ls -l {} \; -rw-r--r-- 1 sspark sspark 124 2008-10-29 06:37 /home/sspark/.bashrc -rw-r--r-- 1 sspark sspark 18 2008-10-29 06:37 /home/sspark/.bash_logout -rw-r--r-- 1 sspark sspark 176 2008-10-29 06:37 /home/sspark/.bash_profile -rw-r--r-- 1 root root 0 2008-12-23 02:20 /home/sspark/begin [root@su250 ~]# |
그리고 다음은 /etc 디렉토리내에 존재하는 심볼릭 링크파일을 검색하는 예입니다.
[root@su250 ~]# find /etc -type l -exec ls -l {} \; [root@su250 ~]# |
즉, 위의 예는 링크파일들을 찾는 예입니다.
링크파일은 시스템 최고관리자(root) 이외에는 잘 사용하지 않는 파일입니다.
따라서 이런 링크파일이 목적한 용도 이외에 생성이 되어있는가를 확인하는 것 또한 매우 중요한 것입니다.
아래의 예는 전체 시스템(/)을 대상으로 링크파일(l)을 찾아서(find) 보여달라(ls -l {})는 의미입니다.
[root@su250 ~]# find / -type l -exec ls -l {} \; lrwxrwxrwx 1 root root 11 2008-12-01 22:16 /boot/grub/menu.lst -> ./grub.conf lrwxrwxrwx 1 root root 3 2008-12-23 02:08 /dev/floppy-fd0 -> fd0 lrwxrwxrwx 1 root root 3 2008-12-23 02:08 /dev/floppy -> fd0 lrwxrwxrwx 1 root root 4 2008-12-23 02:08 /dev/XOR -> null lrwxrwxrwx 1 root root 4 2008-12-23 02:08 /dev/ram -> ram1 lrwxrwxrwx 1 root root 4 2008-12-23 02:08 /dev/ramdisk -> ram0 lrwxrwxrwx 1 root root 4 2008-12-23 02:08 /dev/rtc -> rtc0 …이하생략 |
즉, 위의 결과를 보시면 현재 시스템 내에서 사용되고 있는 모든 링크파일들이 출력되었음을 알 수 있습니다.
이렇게 검색된 링크파일이 정상적인 목적으로 사용되고 있는가 아니면 악의적인 목적으로 해킹된 링크파일인가를 확인하여 적절히 조치(삭제, 변경 등)를 하시기 바랍니다.
그리고 다음은 /tmp 디렉토리내에 존재하는 소켓파일을 검색한 예입니다.
[root@su250 ~]# find /tmp -type s -exec ls -l {} \; [root@su250 ~]# |
이상과 같이 find를 이용하여 다양한 파일타입을 지정하여 원하는 종류의 파일을 검색할 수 있습니다.
관련자료
-
이전
-
다음