바로가기 메뉴
본문내용 바로가기
메인메뉴 바로가기



Customer Center

Notice · Security Issue · Account Guide · Global Traffic Test

HOME > Customer Center > Security Issue

보안이슈

find
2016.02.19

*find

지정된 경로로 주어진 조건에 따라 파일을 찾고, 경로를 보여줌

root에서 접근권한을 제한한 파일이나 디렉토리에 관해서는 "허가거부됨"이라는 메세지가 뜨고 찾지못함

(경로를 지정하지 않으면 현재 디렉토리 부터임)

[기본사항]

1. * : 모든 것을 의미한다.

2. $ 와 같이 쉘에서 의미를 갖는 문자를 검색할 경우 앞에 ""를 붙인다.

3. 단어를 검색할 경우 반드시 single quotation(")을 앞뒤에 붙여서 검색한다.

4. 각 옵션은 혼합하여 사용할 수 있다.

5. 숫자 옵션

+n : n 이상인 파일 검색

-n : n 이하인 파일 검색

n : 정확하게 n 일치하는 파일 검색

[사용법]

find [경로] [옵션] [__EXPRESSION__]


-name : 이름기준, 파일명 검색

-perm : 퍼미션 기준

-group : 해당 그룹 소유의 파일/디렉토리 찾을 경우

-user : 해당 소유자의 파일/디렉토리 찾을 경우

-atime n : n 이전에 엑세스한 파일을 찾을 경우, "파일 액세스 일자"

+n : 오늘을 기준으로 n 이전에 변경된 적이 있는 파일 검색

-n : 오늘을 기준으로 n 이내에 변경된 적이 있는 파일 검색

ex) find . -atime +10 : 10 이전에 변경된 적이 있는 파일 검색

-ctime n : n 이전에 변경된 파일을 찾을 경우

-mtime n : n 이전에 수정된 파일을 찾을 경우, "파일 수정일자"

+n : 오늘을 기준으로 n 이전에 액세스한 적이 있는 파일 검색

-n : 오늘을 기준으로 n 이전에 액세스한 적이 있는 파일 검색

ex) find . -mtime +10

-exec : 찾아진 파일등과 연계하여 명령을 내리게 하는 옵션

반드시 마지막에 "; " 입력해야함

{} 찾은 파일명이 들어감

ex) find . -name "*bak" -exec rm {} ; => 파일명이 bak으로 끝나는 파일을 삭제

-type : 찾고자 하는 파일/디렉토리의 유형을 지정

-type d : 디렉토리를 찾음

-type f : 일반파일을 찾음

-type l : 링크된 것을 찾음, 심볼릭링크 파일

-type b : 블록파일 찾음

-type c : 문자파일 찾음 ex) usb, 시리얼 포트

-type p : 파이프된 특수파일 찾음

-type s : 소켓파일 찾음

-ok : -exec 유사

-print : 출력을 화면으로(생략 가능)

-ls : 상세히 출력

-size n : n블록길이의 파일을 찾음, 용량검색

+n : n블록보다 파일

-n : n블록보다 작은 파일

nc : n문자 길이의 파일

ex) find . -size +100k : 100kbytes이상인 파일 검색

-inum n : 아이노드번호가 n 파일을 찾을

-maxdepth : 검색할 디렉토리의 깊이 지정, 지정한 디렉토리에서 n 깊이의 디렉토리까지 검색

ex) find . -name "*php*" -maxdepth 2 : 2 깊이까지 php 있는 파일을 검색

실습1.

find -name config : config 이름의 파일/디렉토리 찾음

find / -user galaxy : galaxy 사용자의 파일/디렉토리를 루트부터 찾음

find / -type d -name "doc" : 이름이 "doc" 디렉토리를 루트부터 찾음

find / -type f -perm +6000 -ls : 퍼미션이 6000 파일을 상세하게 루트부터 찾음

퍼미션 6000 주게되면, setuid/setgid 걸려있는 파일을 찾게

find / -nouser -o -nogroup : 소유자 또는 소유그룹이 없는 파일들을 찾음

여기서 -o옵션은 or(또는)으로 쓰임

find / -user root -group root -print : 소유자가 root이고 소유그룹이 root 것을 루트부터 출력

find / -user root -group root -print 2>/dev/null

실습2.

find . -name "d*" : 이름이 d 시작하는 현재디렉토리와 하위디렉토리를 찾음

find /home/leslie -newer myfile : /home/leslie디렉토리와 하위디렉토리에서 myfile이후에 수정된 모든파일을 찾아서, 모두 출력

find . -name "*.tmp" -exec rm {} ; : 현재디렉토리와 하위디렉토리에서 tmp 끝나는 모든 파일을 찾아, 화면에 출력+모두 삭제

*참조한 사이트

http://privileged.tistory.com/305

http://openchannel.co.kr/10543384

http://www.happyjung.com/gnuboard/bbs/board.php?bo_table=lecture&wr_id=244&sca=%B8%AE%B4%AA%BD%BA

http://blog.bsmind.co.kr/101

*find를 잘 설명해 놓은 사이트

http://citylock.tistory.com/124

http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/1/find

http://hopemini.tistory.com/1432977

이호스트데이터센터(http://www.ehostidc.co.kr)
첨부파일