본문 바로가기

모의해킹 수업 note 정리

04.13 note📚

프로세스

시스템에서 실행 중인 프로그램을 프로세스라고 한다 프로세스는 메모리 일중 구역을 할당받아 실행되며 이렇게 할당받은 메모리 영역을 프로텍션 도메인이라고 한다

  • 프로세스는 pid에 의해 구별된다
  • 프로세스는 tree구조를 이루며 최상위 프로세스는 init이다
  • 프로세스는 ppid로 구별되는 상위(부모 프로세스)를 갖는다

JOB

jobd은 현재 터미널에서 실행한 프로세스로 shell에 의해서 job 번호가 부여된다

 

관련 명령어 : ps, kill, pkill, jobs, nohup

 

Foreground

현재 터미널에서 제어되는 프로세스다 터미널 입출력은 foreground 프로세스를 위해서 대기한다

Background

터미널과 무관하게 메모리에서 실행되는 프로그램이다 터미널 입출력에 대해서 투명하다

보통 daemon(service) 프로세스들이 background에서 실행된다

PS

프로세스를 확인한다

옵션

-a : 현재 터미널에서 실행 중인 프로세스

-e : 전체 프로세스

-f : 자세한 내용

-u : 실행 계정, 시작 시간 포함한 정보 검색

kill

프로세스를 강제 종료한다

kill [-signal] [PID]

옵션

-l : signal 목록(9 : 프로세스 강제 종료)

 

nohup

쓸일없다.


RPM & YUM

RPM

Redhat 사에서 제공하는 리눅스용 프로그램을 배포하는 기술

프로그램의 설치, 검증, 삭제 등의 다양한 기능을 제공한다

  • rpm에 대한 정보
www.rpm.org 
www.rpm.org/support/RPM-HOWTO.html 

 

rpm 패키지의 구조

  • 패키지명 - 버전 - 릴리즈.아키텍처.rpm
  • 질의
#rpm -qa : 시스템에 설치된 모든 패키지명
#rpm -qi 패키지명 : 패키지의 상세한 정보
#rpm -ql 패키지명 : 패키지의 파일 리스트
#rpm -qf 파일명 : 지정한 파일이 포함된 패키지

설치 및 업그레이드

 

#rpm [-ivh | -Uvh | -Fvh] 패키지명

-Uvh를 많이 쓴다

 

옵션

-i : 설치

-U : 업그레이드 ( 이전 버전 미설치 시 -i와 동일)

-F : 업그레이드만

-v : 설치과정 출력

-h : 설치정도 출력 (#)

삭제

#rpm -e 패키지명

지정한 패키지를 삭제한다.

 

주요 추가 옵션

옵션

--nodeps : 의존성을 무시하고 작업한다. (삭제에 주로 이용)

--force : 같은 버전의 패키지나 파일이 있어도 무시하고 작업 진행

--oldpackage : 다운그레이드 시 사용

--nodeps : 의존성을 무시하고 작업한다. (삭제에 주로 이용)
--force : 같은 버전의 패키지나 파일이 있어도 무시하고 작업진행
--oldpackage : 다운그레이드시 사용

 

YUM

yum(yellowdog updater manager; Modified)은 rpm의 고질적인 문제인 의존성을 해소하기 위한 패키지 기술과 rpm과 동일한 형식의 설치 구조를 지원한다

 

yum은 인터넷 repository를 이용하는 기술로 인터넷만 연결되어 있다면 지원되는 모든 프로그램을 설치 관리할 수 있다

 

yum list

설치된 패키지를 확인한다

yum list [패키지명]
검색 추가 옵션

repolist, search, provide

#yum repolist

시스템에 등록된 repository list를 출력한다

 

 

실습) CentOS7에 yum으로 ftp를 설치해보자

 

Cannot find a valid baseurl for repo: base/7/x86_64 에러 뜨면 #dhclient !!!

 


CRON & RSYNC

CRON

주기적으로 작업되는 작업 일정을 저장해서 자동으로 실행하는 데몬으로 at이나 anacron등과 같이 다양한 프로그램이 지원된다

 

관련 파일

·/etc/rc.dinit/crond

-데몬 실행 스크립트 (service를 이용한다)

 

·/usr/lib/systemd/system/crond.service

-데몬 실행 스크립트(systemctl을 이용한다)

 

·/etc/crontab

-기본 스케줄 일정

 

·/usr/bin/crontab

-스케줄 설정 프로그램 파일

 

· /etc/cron.allow, /etc/cron.deny

-/usr/bin/crontab 이용 제한

-등록된 계정에 대해서만 허용하거나 거부한다

 

사용 형식

#crontab -u [유저] [옵션]
옵션

-e : 스케줄 등록

    vi 환경으로 스케쥴 등록

-l : 스케쥴 확인 (출력)

-r : 스케쥴 삭제

명령어 형식

[분] [시] [일] [월] [요일] [작업 내용]

-시간 범위

    분 : 0~59

    시 : 0~23

    일 : 1~31

    월 : 1~12

    요일 : 0(일요일) ~ 6(토요일)


예제

cron으로 할당된 명령어가 아직 하나도 없는 모습이다
할당 완료

실행 확인 

/var/log/cron

cron에 등록된 명령어 실행 확인

[작업 시간] [호스트] [프로세스] [계정] [명령어]

 

cat /var/log/cron 명령어 치면 로그가 쫙 나옴

 


RSYNC

Rsync란?

두 시스템 간에 지정한 디렉터리를 동기화하는 것

서버쪽에서 데몬을 띄운다

 

선생님의 뜬금 TMI

목차를 외우면 1등이 된다 
목차를 안외우면 지도 없이 길을 찾는것과 마찬가지 (?)

 

데몬 실행

#systemctl [start | stop | restart | status] rsyncd.service

데몬은 직접 실행하는 경우는 없고 스크립트를 통해 실행한다

 

관련 파일

  • 데몬 : /usr/bin/rsync
  • 관리 스크립트 : /usr/lib/systemd/system/rsyncd.service
  • 백업 설정 파일 : /etc/rsyncd.conf

Rsync 서버 설정 : /etc/rsyncd.conf

[서비스 명] : 리소스 식별자, client에서 이용한다

 

timeout : 접속하고 아무것도 안하면 접속을 끊어버림

 

서버 설정 예제↓

RSYNC 클라이언트 동기화

rsync -avz [--delete] source destination

rsync -avz [--delete] IP::[서비스명] [백업 디렉터리]

rsync -avz [--delete] [백업 디렉터리] IP::[서비스명]

 

rsync 명령 옵션

  • -v : 작업내역 출력
  • -a : archive mode 작업 심볼릭 링크, 권한 등 모든 내용을 보존한다.
  • -z : 파일을 압축 전송한다
  • --delete : source에서 지워진 파일을 destination에서도 지워준다 (완전 동기화 옵션)

 

  • Local System 내에 동기화
rsync -avz /home/httpd/ /backup/http/

Cron과 rsync를 이용한 자동 백업

  • rsync 명령을 cron에 등록한다
  • 매일 11시 30분에 백업 수행

30 11 * * * rsync -avz 192.168.10.184::backup /backup

성공


실습) Rsync를 실제로 해보자(브릿지된 2개의 리눅스 환경에서 실습하기)

 

교안에 있는 예제대로 설정하고 클라이언트에서 명령어를 실행했더니 오류가 떳다

권한 문제인거 같은데 chmod로 퍼미션 올려줘도 계속 저 에러 뜨길래

서버측 리눅스에서 setenforce 0로 seliunx를 꺼버렸더니 

아주 잘된다 ㅎ_ㅎ

'모의해킹 수업 note 정리' 카테고리의 다른 글

04.09 note📚  (0) 2020.04.13
04.08 note📚  (0) 2020.04.13
04.10 😀파일 구조와 permission  (0) 2020.04.10
04.07😉 Linux 기초  (0) 2020.04.09
04.06 전반적인 수업 셋팅🐱‍🐉  (0) 2020.04.09