사이트 내 전체검색
몇가지 find 예문을
로빈아빠
https://cmd.kr/server/929 URL이 복사되었습니다.

본문

몇가지 find 예문을 더 적어 봅니다.

옵션들을 차례로 기술하여 파일을 찾을 경우 AND 연산이 적용된다.
하지만 -o 옵션을 이용하여 OR 을 적용할수도 있고 ( ) 를 이용하여 그룹을 지어 적용할수도 있다. 이밖에 NOT 연산도 가능한데 옵션 앞에 !부호를 달아 주면 된다. 밑의 몇가지 예를 살펴 보자.

# find ./ -atime 60 -mtime 120 
( AND 논리연산으로 접근한지 60일 지난 파일중 수정한지 120 일 지난 파일 )

# find ./ \( -user design -o -group design \) 
(OR 논리연산으로 소유자나 그룹이 design 인경우 )

# find ./ \( ! -user design -o ! -group design \)
(NOT 논리연산으로 소유자나 그룹이 design 이 아닌 경우 )

-perm 옵션은 숫자형태의 특정 접근 모드를 이용하여 파일을 검색하는 옵션이다.
옵션별 사용예를 들어 보자.
-perm 75 : permission = 755
-perm -002 : 모든 사람들이 기록할수 있는 파일
-perm -4000 : SUID 액세스 설정
-perm -2000 : SGID 액세스 설정

-print 옵션은 근래는 기본으로 들어간다. 굳이 붙일 필요는 없고, -exec, -ok옵션 사용시에는 반드시 마지막에 \; 으로 구문을 마감해야 한다.

예를 들어서 find 로 검색한 파일을 지우기 위해서는 다음과 같이 한다.
# find ./ -name *.* -exec rm -f {} \;

파일 크기가10M 이상이며 한달 이상동안 수정되지 않은 파일을 찾는다.
# find / -type f -size 20480 -mtime 30 -ls
# find / -type f -size 20480 -mtime 30 -exec rm -f {} \;
(대응되는 파일삭제)

보안에 관련된 팁이다. 모든 setuid, setgid 를 검색한다.
# find / -type f \( -perm -4000 -o -perm -2000 \)
# find / -type f \( -perm -4000 -o -perm -2000 \) | diff - setuidlist
(찾아된 setuid,setgid를 기존에 작성한 목록과 비교하여 새로 추가 된것이 있는지를 확인한다.)

침입을 당한 시스템에 있는 setuid 와 setgid 파일을 모두 찾아 본다(특히, setuid root 파일). 일반적으로 나중에 재침입을 위해 침입자들은 이러한 setuid 설정이 된 /bin/sh 이나 /bin/time 등과 같은 복사본을 만들어 놓는 경우가 많다. 
이러한 파일은 찾아서 삭제해야만 한다. 유닉스의 find(1) 프로그램을 시용하여 이러한 setuid 나 setgid 파일을 찾아낼 수가 있다. 
예를 들면, 아래 명령을 이용하여 setuid root 파일과 setgid kmem 파일을 전체 파일 시스팀에서 찾을 수 있다. 
# find / -user root -perm -4000 -print find / -group kmem -perm -2000 -print 

주의할 점은 위 명령은 NFS/AFS로 마운트된 파일 시스템까지 몽땅 찾으므로 이러한 파일 시스템을 찾는 대상에서 제외하고자 하는 경우, “-xdev” 옵션을 사용한다(단, 이 옵션은 지원하지 않는 find 도 있음).
# find / -user root -perm -4000 -print -xdev

댓글목록

등록된 댓글이 없습니다.

1,139 (4/23P)

Search

Copyright © Cmd 명령어 3.133.153.167