사용형식 [찾을 디렉토리경로] [찾기옵션] [찾은후행할 작업]
option
[찾을 디렉토리경로]
. : 현재 디렉토리 이하를 검색대상으로 한다.
/ : 루트디렉토리(파일시스템전체) 이하를 대상으로 한다.
~ID : 지정된 ID의 홈디렉토리이하를 대상으로한다.
[찾기옵션]
-empty : 비어있는 파일을 찾는다.
-uid UID : 지정된 UID를 갖는 파일을 찾는다.
-gid GID : 지정된 GID를 갖는 파일을 찾는다.
-group 그룹명 : 지정된 group을 갖는 파일을 찾는다.
-name : 지정된 형식의 패턴을 가지는 파일을 찾는다.
-newer : 지정된 파일 이후에 생성된 파일을 찾는다.
-perm : 지정된 퍼미션을 가진 파일을 찾는다.
-used 일자수 : 최근 n일 이후에 변경된 파일을 찾는다.
-user : 지정된 파일을 소유하고 있는 소유자의 모든 파일을 찾는다.
[찾은후 수행할 작업]
-print : 찾은 내용을 보여준다.
-exec "수행명령어" : 검색된 파일을 대상으로 :수행명령어"를 실행한다.
[예제]
특정 사용자의 ID 소유로된 모든 파일 찾기.
[os] find / -user khi083 -print
현재 디렉토리 이하부터 test 파일명을 찾아 보여준다.
[os] find . -name test -print
khi083 사용자의 홈디렉토리에서 test 파일명을 찾아 보여준다.
[os] find ~khi083 -name test -print
특정 파일을 찾은 후 자동 삭제방법.
[os] find ~khi083 -name test -exec rm -f {} \;
지정한 소유자의 모든 파일을 찾아서 확인하기.
[os] find / -user khi083 -exec ls -l {} \;
특정용량 이상되는 파일들 모두찾기.
[os] find /usr/ -size +10000k -exec ls -l {} \; -- 약 10MB이상
특정 퍼미션을 가지고 있는 파일들을 모두 찾기
[os] find / -perm 4755 -exec ls -l {} \;
존재하는 모든 링크파일 찾기
[os] find / -type l -exec ls -l {} \;
디렉토리 이하에서 "doc" 라는 문자를 포함하고 있는 파일을 찾아서 파일의 위치와 파일명, 포함된 행을 출력한다.
[os] find /etc type f -exec egrep -i "doc" /dev/null {} \;
-------------------------------------- 보안 관련된 find --------------------------------------
지정된 일자 이후에 변경된 모든 파일 찾기(서버점검시에 서버해킹으로 인하여 변경된 파일을 찾을 경우)
[os] find / -used 2 -exec ls -l {} \; -- used 뒤에 나오는 숫자는 "일" 즉, 24시간 단위.
지정된 파일보다 이후에 생성된 파일 찾기(해킹된 파일이나 백도어 파일을 찾은 후에 그 파일과 함께 시스템에 생성된 파일찾기)
[os] find / -newer /root/file1.txt -exec ls -l {}; -- used 뒤에 나오는 숫자는 "일" 즉, 24시간 단위.
root소유의 SetUID 파일 찾기
[os] find / -user root -perm -4000 -print
서버내부에서 .bash_history 파일을 모두 찾아서 확인하기(root소유의 .bash_history파일이 용량이 0이라면 이는 매우 심각한 경우로서 거의 99%이상은 해킹되었다고 보셔도 무방하다.)
[os] find / -name .bash_history -exec ls -l {} \;
소유자가 없는 파일 또는 소유그룹이 없는 무적파일 찾기
[os] find / -nouser -o -nogroup -print -- -o옵션은 "OR"를 의미한다
출 처 : http://blog.naver.com/nixblade?Redirect=Log&logNo=10092313804