[리눅스]Find perm 옵션
find 의 -perm 옵션은 보통 3가지 mode 를 사용합니다.
- -perm mode
- -perm -mode
- -perm /mode
mode 는 정확하게 mode 가 매치되는 것만
-mode 는 mode 를 포함하고, 추가적인 퍼미션이 있는 것만
/mode 는 mode 에서 한개 bit라도 매치되는 것이 있으면
아래의 예들을 실행해 보시면 이해에 도움이 되실 겁니다.
하나의 임시 디렉토리 속에 아래 명령으로 모든 가능한 퍼미션을 만들고 테스트 해보세요.
for i in $(seq 0 7); do for j in $(seq 0 7); do for k in $(seq 0 7); do touch ${i}${j}${k}; chmod ${i}${j}${k} ${i}${j}${k}; done; done; done
아래는 서로 결과가 같고, 퍼미션이 0700인 것만 찾습니다.
find . -perm u+rwx
find . -perm u=rwx
find . -perm 0700
find . -perm 700
아래는 서로 결과가 같고, 퍼미션이 0020인 것만 찾습니다.
find . -perm g+w
find . -perm g=w
find . -perm 0020
find . -perm 020
find . -perm 20
아래는 서로 결과가 같고, 퍼미션이 0500 보다 더 많이 허용된 것을 찾습니다.
find . -perm -u+rx
find . -perm -u=rx
find . -perm -0500
find . -perm -500
아래는 서로 결과가 같고, 퍼미션 0771 의 각 권한(rwxrwxrwx) 중 한 개 이상의 권한이 같은 것을 찾습니다.
find . -perm /u+rwx,g+rwx,o+x
find . -perm /u=rwx,g=rwx,o=x
find . -perm /u=rwx,g=rwx,o+x
find . -perm /0771
find . -perm /771
아래와 같이 !을 붙일 때 찾을 수 있는 퍼미션의 예상은
find . ! -perm /u+rwx,g+rwx,o+x -ls
-------rw-
--------w-
----------
-------r--
입니다.
참조하세요 ^^
추가질문에 대한 답변
-perm -2 -o -perm -20
-o 는 or 의 의미입니다.
-perm -2 또는 -perm -20 입니다.
other 가 writable 이상이거나 또는 group 이 writable 이상인 것을 의미합니다.
즉, other 또는 group 에 실행권한이 있는 파일을 의미합니다.
같은 의미지만 반대로 이야기 하면, 실행권한이 user 에게만 있거나 아예 없는 파일을 제외한 파일을 의미합니다.
만약,
find ../ ! -user mylin \( -perm 2 -o -perm -20 \) -exec {} \; 이라면
상위 디렉토리의 하위로 소유자가 user가 아니고 other나 group 에 실행권한이 있는 파일을 찾아서 실행한다
는 의미가 됩니다.
'02.서버-Linux' 카테고리의 다른 글
[리눅스]CentOS virbr0 NAT disable (0) | 2013.05.08 |
---|---|
[리눅스]멀티 환경변수 case 문 이용 (0) | 2013.03.29 |
[리눅스]RPM Failed dependencies (0) | 2013.03.28 |
[리눅스]NDD & TCPDUMP (0) | 2013.03.25 |
[리눅스]SoftWare RAID10 (0) | 2013.03.18 |