find 명령어 활용법
리눅스 서버를 운영하다보면 여러가지 조건에 맞는 파일이나 디렉토리를 찾아야 경우가 많이 있다.
그럴때 제가 많이 사용하는 find 명령어를 간단하게 정리해 보겠다.
1) find 명령어를 이용 setuid 파일 검색
서버가 해킹을 당했거나 어떤 의심이 가면 파일 변조를 꼭 확인해봐야 한다.
리눅스 명령어중에 파일이 명령어를 실행할때 순간적으로 root 권한으로 실행되는 파일이 있다
대표적인가 passwd 란 패스워드 변경때 사용하는 명령어가 있는데
이실행 파일은 일반 사용자가 실행하더라고 순간적으로 root권한을 가지고 실행이 된다
공격자는 이런 취약점을 많이 노린다. 만약 어떤 특정 파일이 변조가 되어서
setuid 설정이 되어 있지 않아야 할 파일에 setuid 설정이 되어있다면 보안상 상당히 위험하다고 할수 있다.
그런 setuid 설정이 되어 있는 파일을 find 명령어를 통해 찾을수 있다.
perm 옵션은 말 그대로 퍼미션을 찾는 기능이다.
setuid는 기본적으로 기본적으로 퍼미션 숫자의 앞에 4를 입력한다.
아래 퍼미션이 755인 permission 이란 파일
root ~ # ll -l perm
-rwxr-xr-x 1 root root 0 21 16:28 perm
setuid 설정
root ~ # chmod 4755 perm
root ~ # ll perm
-rwsr-xr-x 1 root root 0 21 16:28 perm
root ~ # find ./ -perm -4000 |xargs ls -al
-rwsr-xr-x 1 root root 0 21 16:28 ./perm
setuid, sticky bit 도 검색가능하다
setuid -perm -2000
find ./ -perm -2000
sticky bit -perm -1000
find ./ -perm -1000
한번에 검색
find ./ -perm -4000 -o -perm -2000 -o -perm -1000
2) find를 이용 파일 삭제
이름검색
find /test -name “test.*” |xargs rm -rf
용량검색
10M메가 보다 큰 파일삭제
find /test -size +10M |xargs rm -rf
ctime을 이용 오늘부터 15일이 지난 파일들 삭제
find /test -ctime +15 |xargs rm -rf
rm -rf 혹시 모를 위험이 있으니
xargs ls -al
파일들을 확인후 맞다면 rm -rf 로 지우는게 좋을것이다.
간단하게 이정도만 알아도 백업 할때 지난 파일 삭제나 여러가지 검색옵션을 넣어서 원하는 파일을 쉽게 검색할수 있을것이다.