기본 명령어

 

ps -ef

프로세스의 리스트 확인

 

which id

어떤 명령어의 실제 위치를 확인 (예시 : id의 위치 확인)

 

ping -c 3 8.8.8.8

특정 IP 주소에 데이터를 테스트겸 날리는 명령어 (8.8.8.8은 구글 DNS 서버IP주소)
  -c count 옵션, -c 3 : 핑을 세번만 날려라.

 

명령어 -h

그 명령어를 사용하는 방법, 옵션등이 뭔지 안내 (-h 옵션, help의 약자)

 

ls

list segments, 파일 정보를 보는 명령

  -l 옵션, 타입 권한정보 size 수정시간 등을 상세히 확인

  -a 옵션, 숨겨진 것까지 전체를 보여줘

 

man 명령어

해당 명령어에 대한 설명 (man ls 같은 방식으로 사용, 종료시 q)

 

mkdir 디렉토리명

해당 디렉토리를 만들기

 

ls ../

상위 경로 보기 (상대경로 표시)

  ls ../../, 상위의 상위 경로 보기

 

cat 파일명

concatenate(연결하다)

해당 파일 데이터가 화면에 출력됨.

 

file 파일명

해당 파일 타입 체크 가능

 

more 파일명

cat으로 읽기 불편한 너무 긴 파일을 위에서 부터 읽게 해줌.

  Space, 다음페이지

  Enter, 한 줄 내리기

 

rm 파일

삭제 명령어

  -r, 디렉토리 삭제시 사용 옵션

  -f, 강제 삭제 (rm -rf 파일명 형태로 많이 사용함.)

 

mv A B

A에서 B로 이동 (cp 후에 rm하는것과 동일함)

 

find

  find / -name "파일명", 최상위 디렉토리에서 파일명의 이름을 가진 파일을 찾겠다.

 

 


 

권한

 

UID

user id (root 는 udi가 0)

  useradd 유저명, 유저 계정 생성

  su 계정명, 해당 계정으로 유저 변경(switch user)

 

GID

group id

 

/etc/passwd

root:x:0:0:root:/root:/usr/bin/zsh

계정이름:비번:uid:gid:사용자정보:Home 디렉토리:로그인쉘

  /etc/shadow, 실제 비번이 저장된 파일, 권한이 높으며 HASH 처리되어 있음.

  nologin, 해당 계정으로 들어갈 수 없음.

 

rwx

read 권한 여부, write 권한 여부, execute 권한 여부

  -rw-r--r-- 1 root root, 소유자권한 그룹권한 기타사용자권한 1 소유자 소유그룹

 파일에 대한 권한이 있더라도, 그 파일이 들어있는 디렉토리 권한이 없다면 해당 파일 확인 불가

 


 

특수권한

 

setuid - rws

setuid가 설정되어 있다면, 그 파일을 실행했을 때 그 파일 소유자 권한으로 실행

만약 파일소유자가 root 라면, 일반계정에서 실행 시 그 파일 실행중에는 root로 인정됨.

따라서 setuid 설정된 root 파일을 악용해 root 권한으로 권한 상승할 수 있기도 함. (신중히 설정할 것)

  s, 실행권한이 있으면서 setuid가 설정됨

  S, 실행권한 없으면서 setuid가 설정됨

 

setgid

setuid와 동일하며, 다만 그룹임.

 

sticky bit - rwt

공유 디렉토리  설정

이 권한이 설정되면 누구나 마음껏 그 디렉토리에 파일생성 가능 (예시: /tmp)

다만, 다른사람이 만든 파일과 디렉토리는 수정하거나 삭제 불가능함.

 


 

권한 변경

 

chmod [변경할 권한] [변경할 파일, 디렉토리]

권한 추가는 +, 제거는 -

소유자는 u, 소유그룹은 g, 기타 사용자는 o

  소유자 권한에 실행권한을 추가한다, u+x (예시 : chmod u+x 파일명)

 

rwx =

421

숫자 정보로 표기 가능

  r-x : 4+1 = 5

  rw- : 4+2 = 6

  rw-r--rw- : 646

  rwxrwxrwx : 777

 

  chmod 777 파일명, 해당 파일을 rwxrwxrwx로 권한 변경

 


 

데이터스트림과 FD, redirection

 

표준 입력 : 쉘에 명령어, 데이터를 입력하는 것

표준 출력 : 프로그램의 실행 결고자를 쉘 화면에 보여주는 것

 

표준 입력 : Standard Input Stream : 0

표준 출력 : Standard Output Stream : 1

표준 에러 : Standard Error Stream : 2

 

0,1,2는 File Descriptor 값 (프로세스가 파일을 관리하기 위해 지칭한 식별 값)

 

redirection

리다이렉션, 데이터 흐름을 바꿈

  cat A파일명

  cat A파일명 > 다른 B파일명, 이렇게 하면 A 파일 내용이 B 파일에 들어감.

 

  ifconfig > ipinfo, ininfo에 ip정보가 들어감. (새로 데이터가 덮어씌워짐. 기존데이터 삭제됨.)

 

  pwd >> dst_file, 기존 파일 데이터가 지워지지 않고 그 아래에 추가되길 원할 때 사용.

 

  id > dst_file = id 1> dst_file, 1은 써도 되고 안 써도 됨. 1은 FD값임.

 

  1. find / -name "파일명" 2> /tmp/error_msg, 에러 메세지만 다른곳으로 보냄. 에러 안 난 메시지만 화면에 출력됨.

  2. find / -name "파일명" 2> /dev/null, 에러 메세지 블랙홀로 보내기 (저장 안 하기)

  불필요한 에러메세지를 날릴 땐 2. /dev/null을 사용하고, 원하는 결과 저장을 원할 때는 1. 의 방법을 사용하면 된다.

 

| 파이프

grep [찾을 패턴] [수색할 파일/디렉토리]

  grep '내용' 파일명, 해당 파일에서 내용 찾기

 

  cat /etc/passwd | grep root, passwd에서 root 찾기

  ls /bin | grep find, bin 에서 find 찾기

 

 


 

위 내용 공부한 곳 : SegFault 해킹 작업소

 

 

+ Recent posts