Security

hackerschool level4 service finger, chmod

gukbap 2011. 7. 14. 23:24
반응형

service finger. 어떤 서비스를 하기위한 initd 데몬. initd 데몬은 컴퓨터가 켜질 때 자동으로 실행되는 프로그램.


cat services | grep finger


/etc의 services 파일 중 grep 명령을 이용해 finger만 찾음.


쉘 스크립트를 만들때,  가장 첫 라인에 

#!/bin/bash 

를 씀.


쉘 스크립트의 가장 첫 라인에  !/bain/bash 를 쓰게 됨으로 해서, 내가 사용 하려는 명령어 해석기가 bash 쉘 임을 미리 알려준다.


일반적으로 스크립트에서 #는 주석기호이지만, 첫라인의 #!/bin/bash 에서의 #은 주석기호가 아니다.


스크립트의 가장 첫라인에 있는 #! 은 스크립트의 제일 앞에서 이 파일이 어떤 명령어 해석기의 명령어 집합인지를 시스템에게 알려주는 역할을 한다.


#! 은 두 바이트의 "매직넘버"("magic number")로서, 실행 가능한 쉘 스크립트라는 것을 나타내는 특별한 표시자이다.


#! 바로 뒤에 나오는 것은 경로명으로, 스크립트에 들어있는 명령어들을 해석할 프로그램의 위치를 나타내는데 그 프로그램이 쉘인지, 프로그램 언어인지, 유틸리티인지를 나타낸다.


이 명령어 해석기가 주석은 무시하면서 스크립트의 첫 번째 줄부터 명령어들을 실행시킨다.


거의 대부분의 상업용 유닉스 및 리눅스 에서 기본 본쉘인 #!/bin/sh을 쓰면 비록 Bash 만 가지고 있는 몇몇 기능들을 못 쓰게 되겠지만 리눅스가 아닌 다른 머신에 쉽게 포팅 할 수 있게 해준다.. (이렇게 작성된 스크립트는 POSIX sh 표준을 따르게 된다. )


"#!" 뒤에 나오는 경로는 정확히 Full PATH를 기록.


만약 PATH를 잘못 적게 되면, 스크립트를 돌렸을 때 거의 대부분 "Command not found"라는 에러 메세지만 보게 된다.



chmod

chmod [옵션] (u|g|o|a)(+|-)(r|w|x) files directory...


u : user의 퍼미션
g : group의 퍼미션
o : other의 퍼미션
a : user + group + other


+ : 퍼미션 추가
_ : 퍼미션 삭제
= : 퍼미션을 일치시킴


r : 읽기 퍼미션
w : 쓰기 퍼미션
x : 실행 퍼미션 (디렉토리는 탐색 퍼미션)
s : SUID, SGID
t : sticky bit


400 : owner의 읽기
200 : owner의 쓰기
100 : owner의 실행
 40 : group의 읽기
 20 : group의 쓰기
 10 : group의 실행
 4 : other의 읽기
 2 : other의 쓰기
 1 : other의 실행


반응형

'Security' 카테고리의 다른 글

hackerschool level5 Hard Link, Symbolic Link  (0) 2011.07.14
hackerschool level5 Race Condition  (0) 2011.07.14
hackerschool level3 system 배열  (0) 2011.07.14
hackerschool level1d redirection  (0) 2011.07.14
about hack_first  (0) 2011.07.14