1579, 9/79 회원가입  로그인  
   파란바다
   find 명령어중 -perm 옵션에서 -,+의 차이

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1836 [복사]



안녕하세요.

ftz 레벨 1을 클리어 해보신 분은
find -perm -4000 에서 -의 의미에대해서 궁금해보셨을 겁니다.

오늘은 이거에 대해서 공부해보도록 하겠습니다.^^:


일단 간단하게 파일퍼미션을 보겠습니다.
ls -al 을 하면
drwxrwxrwx    5 guest    guest     1413120  7¿ù 29 04:21 .
drwxr-xr-x   44 root     root         4096  1¿ù 15  2009 ..
-rw-------    1 guest    guest        1599  7¿ù 29 05:11 .bash_history
-rw-r--r--    1 root     root          224 12¿ù  1  2009 .bash_profile
-rw-r--r-x    1 root     root          151 12¿ù  1  2009 .bashrc
drwxrwxr-x    2 guest    guest        4096  7¿ù 29 03:34 .pwn3
-rw-------    1 guest    guest       12288  7¿ù 29 04:17 .test.c.swp
-rw-------    1 guest    guest        2993  7¿ù 29 03:49 .viminfo
-rwxrwxr-x    1 guest    guest       11755  7¿ù 29 03:49 1
-rw-rw-r--    1 guest    guest         126  7¿ù 29 03:49 1.c
drwxrwxr-x    2 guest    guest        4096  7¿ù 29 03:47 aa
drwxrwxr-x    2 guest    guest        4096  7¿ù 29 04:56 test
이렇게 나오는 데 맨앞부분이 퍼미션입니다.


퍼미션(권한)을 사용하는 이유는, 예를 들어서 내가 고생해서 만든 파일, 다른 사람이 와서, 지우면 기분더럽겠죠?(일반사용자)
또는, 친구간에 읽기만 할 수 있게 공유할 파일인데 어떻하죠?(그룹) 내가 혹시라도 내파일을 잘못건드릴까봐 걱정되죠?(소유자)



맨앞글자에 d는 디렉토리즉 폴더고, -는 일반파일입니다. 그밖에 심볼릭링크 등등있습니다.
그 다음부분인 9자가 권한을 나타내는 데,
d/rwx/rwx/rwx 여기서 d는 디렉토리를 나타낸다고했죠?
d다음에 처음으로 나오는 rwx는 소유자에대해서, 그다음은 그룹에대해서, 마지막은 그외에 일반유저에대해서 입니다. (r는 read 즉 읽기, w는 write 즉 쓰기, x는 execute 즉 실행입니다.)
소유자, 그룹 , 일반유저(소유자도 그룹도아닌 사람)에 대해서 각각 따로 설정할 수 있습니다.

파일퍼미션에대해서는 간단하게 다루겠습니다.
네이버에서 퍼미션을 검색하면, 그림으로 자세히 설명한 블로그 많이 나오니,
한번 보고오세요.^^;




먼저 find 메뉴얼을 봐야겠죠?
telnet으로 ftz.hackerschool.org 를 접속해주세요.
guest로 로그인해주세요.

man find를 입력해주시면
영어로 어쩌구저쩌구 나오는데, perm부분이 나올 때까지 enter를 눌러줍니다.~


                 -perm mode
                        File's  permission  bits are exactly mode (octal or
                        symbolic).  Symbolic modes use mode 0 as a point of
                        departure.

                 -perm -mode
                        All  of  the  permission  bits mode are set for the
                        file.

                 -perm +mode
                        Any of the permission bits mode  are  set  for  the
                        file.

-perm mode 는 그냥 정확히 같은 퍼미션을 가진 파일찾는 거니까 무시해주고,

-mode 와 + mode 를 봅니다.

-perm -mode  : 퍼미션 비트 모드중에 모든 것이 파일에 대하여 설정된 것
-perm +mode :  퍼미션 비트 모드중에 하나라도 파일에 대하여 설정된 것
정도 되겠네요. 이하 발번역이었습니다.

뭔소리인지 모르겠죠?
직접 해봅시다. 참고로 touch 는 파일생성, chmod는 권한변경하는 명령어입니다.
touch 1
touch 2
touch 3
.....
touch 7
까지 입력합니다.

그다음에
chmod 100 1
chmod 200 2
...
chmod 700 7
까지 입력합니다.

ls -l 을 입력했을 때
---x------    1 guest    guest           0  7¿ù 29 04:33 1
--w-------    1 guest    guest           0  7¿ù 29 04:33 2
--wx------    1 guest    guest           0  7¿ù 29 04:33 3
-r--------    1 guest    guest           0  7¿ù 29 04:33 4
-r-x------    1 guest    guest           0  7¿ù 29 04:33 5
-rw-------    1 guest    guest           0  7¿ù 29 04:33 6
-rwx------    1 guest    guest           0  7¿ù 29 04:33 7
이렇게 나옵니다.

그럼 이제 실험을 해볼까요?

-find -perm -300을 입력해주세요.
-find -perm +300을 입력해주세요.

[guest@ftz test]$ find -perm +300
.
./1
./2
./3
./5
./6
./7
[guest@ftz test]$ find -perm -300
.
./3
./7
[guest@ftz test]$


짠! 이런 결과가 나옵니다.


---x------    1 guest    guest           0  7¿ù 29 04:33 1
--w-------    1 guest    guest           0  7¿ù 29 04:33 2
--wx------    1 guest    guest           0  7¿ù 29 04:33 3
-r--------    1 guest    guest           0  7¿ù 29 04:33 4
-r-x------    1 guest    guest           0  7¿ù 29 04:33 5
-rw-------    1 guest    guest           0  7¿ù 29 04:33 6
-rwx------    1 guest    guest           0  7¿ù 29 04:33 7
이부분을 다시 봐주세요.

300은 write 와 execute 권한을 소유자에게 준거죠?
파일 1은 소유자에게 execute 권한이 있고, find -perm +300에서 검색되었습니다.
파일 2는 소유자에게 write 권한이 있고, find -perm +300에서 검색되었습니다.
파일 3은 소유자에게 write 와 execute 권한이 있고, find -perm +300과 find -perm -300에서 검색되었습니다.
파일 4는 소유자에게 read 권한이 있고, 어디서도 검색되지않았습니다....
이걸로 무엇을 알 수 있을까요?

파일 3과 7의 공통점은 무엇일까요?
파일7은 소유자에게 rwx 권한을 줬고,
파일 3은 소유자에게 wx 권한을 줬습니다.
우리가 검색한 300은 소유자에게 wx권한이죠?

이쯤 되면 아@!
find -perm +mode는  mode에있는 권한중에서 하나만이라도 만족하면,
출력해주고
find -perm -mode는 mode에있는 권한중에서 모두를 만족해야지,
출력해준다는 걸 알 수 있겠죠?

마지막으로 문제 !
a라는 파일이 있는데 퍼미션은 321입니다.
find -perm -311 을 하면 a라는 파일을 찾을까요? 못찾을까요?


주의사항 : 혹시 문제가 생기거나 이상하다 싶은 부분이 있으면, 꼭 덧글남겨주세요!
+와 -의 차이에 대해서 궁금해서 정리한 문서이기때문에
정확하지 않을 수 있습니다. 꼭 지적해주세요!

  Hit : 21946     Date : 2011/08/04 04:42
[불법/스팸글로 신고하기]



    
phpmyadmin 2011/11/25  
1419   Hacking 커리큘럼 시스템분야     카르페이
05/08 6225
1418   밑에 버퍼오버플로우 왕기초 찾으신다는분[1]     치킨발랄
03/13 7128
  find 명령어중 -perm 옵션에서 -,+의 차이[1]     파란바다
08/04 21945
1416   ftz 서버 구축해보기[15]     파란바다
09/10 19765
1415   왜 고등학교[5]     파란눈물
02/05 5586
1414   함수의 기능에 관하여     컨티뉴
05/31 5445
1413   기본 문법을 통해 보는 c++의 기본 구조     컨티뉴
05/31 5619
1412   TFT LCD 모니터의 3대 핵심 모듈에 관해[7]     컨티뉴
06/29 5600
1411   리눅스에서 인터넷이 안될때(asiris2000님 강좌)[6]     컨티뉴
10/13 7973
1410   윈도우즈xp 팁(1)[8]     컨티뉴
10/09 7729
1409   오버클럭킹의 원리[11]     컨티뉴
10/09 8229
1408   c좀알려주실분[7]     키메라
01/09 4988
1407   브로드캐스트에대한 정보하나 알려드립니다.[2]     zzangon7
08/01 6799
1406   OSI 7layer에 대한 정보 ^^;     zzangon7
07/30 6190
1405   컴퓨터 초보인데[5]     zlxpcmdh97
03/04 7330
1404   레벨업 하려면     zeuswoo7
03/03 6065
1403   [해설]C언어의 함수라는 개념이 잘 이해되지 않을 때[2]     zephyros215
03/31 7193
1402   About Reversing     zen0c1de
07/19 8099
1401   [Reverse Engineering] 리버싱의 기초 - 범용 레지스터와 Assembly(Pop,Mov)     zen0c1de
07/18 10630
1400     [re] 간단하게 리눅스 계정 추가하는 방법!!![6]     zcb707
08/03 5539
[1][2][3][4][5][6][7][8] 9 [10]..[79]

Copyright 1999-2021 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com