kh교육

(20250723020)프로세스&RPM, OSPF

boangod 2025. 7. 23. 17:32

문제

  1. 프로젝트 디렉토리를 생성하고 하부 디렉토리및 default 파일의 소유자와 그룹 소유자를 지정한다. 1.1 다음 조건에 따라 디랙토리와 계정, 그룹을 생성한다. 프로젝트 Base 디렉토리 : /home/data, admins(GID:3000), admin(UID:3100) 1.2 Base 디렉토리의 소유자와 그룹소유자를 admin.admins으로 지정한다. 1.3 Base 디렉토리는 소유자와 그룹 소유자는 모든 권한이 있으나 이외 사용자는 읽기만 가능하도록 설정한다.
  2. Public Project 디렉토리에는 te(te1,te2)만 모든 권한을 가지며 이외 인원은 변경은 불가능하고 읽기만 가능하도록 설정한다. 2.1 다음과 같이 public 디렉토리와 계정을 생성한다. public 디렉토리 : /home/data/public, te(GID:4000), te1(UID:4100), te2(UID:4200) 2.2 Public 디렉토리에는te(te1,te2)만 모든 권한을 가지며 이외 인원은 읽기만 가능하도록 퍼미션을 지정한다.
  3. Private project 디렉토리에는 st(st1,st2)만 모든 권한을 가지지만 이외 인원은 아예 접근이 불가능하도록 설정한다. 3.1 private Project 디렉토리와 계정을 생성한다.
  4. Private Project 디렉토리 : /hom/data/private, st(GID:5000), st1(UID:5100), st2(UID:5200) 3.2 Private 디렉토리에는 st(st1,st2)만 모든권한을 가지며 이외 인원은 접근이 불가능하록 퍼미션을 설정한다.
  5. 조직내 모든 인원을 위한 down 디렉토리 생성 4.1 조직내 모든 사용자를 대상으로 파일 배포를 위한 디렉토리를 생성하고 퍼미션을 설정한다. down 디렉토리 : /home/data/down 퍼미션 : 모든 인원이 접근 down가능하지만 upload는 admin 만 가능하다. 4.2 admin의 계정은 홈 디렉토리 외부로 나가지 못한다. 이런 경우 down 디렉토리에 접근 하도록 설정한다. 4.3 시스템 재시작에도 admin가 down에 접근 가능하도록 설정한다.

 

 

1 번 mkdir /home/data

groupadd -g 3000 admins

useradd -g 3000 -u 3100 admin

chown -R admin data/

chgrp -R admins data/

chmod -R 775 data/

 

2번 mkdir /home/data/public

groupadd -g 4000 te

useradd -g te -u 4100 te1

useradd -g te -u 4200 te2

chgrp -R te data/public

chmod -R 775 data/public

 

3번 mkdir /home/data/private

groupadd -g 5000 st

useradd -g st -u 5100 st1

useradd -g st -u 5200 st2

chgrp -R st data/private

chmod -R 770 data/private

 

4번 mkdir /home/data/down

chown -R admin /home/data/down

chmod -R 755 /home/data/down

mount -B /home/data/down /home/admin/down

echo "mount -B /home/data/down /home/admin/down" >> /etc/rc.d/rc.local

 

## chroot로 바꿀수도 있음 ## 

 


리눅스

 

프로세스(Process) 

시스템에서 실행 중인 프로그램을 프로세스라고 합니다.

프로세스는 메모리 일정 구역을 할당 받아 실행되며 이렇게 할당 받은 메모리 영역을 프로텍션 도메인(Protection domain)이라고 합니다.

ㄴ 프로그램이 실행되서 메모리에 올라가있는것

 

프로세서 - 기계, cpu

 

  • 프로세스는 pid(프로세스 id)에 의해 구별된다.(pid는 중복 될수 없다. 네트워크는 port까지 붙는데 port는 중복될수 있음.)
  • 프로세스는 tree 구조를 이루며 최상위 프로세스는 systemd(init)이다.
  • 프로세스는 ppid(부모프로세스)로 구별되는 상위(부모 프로세스)를 갖는다.(항상 부모자식 관계다.)
  • fork(자기와 똑같은놈을 복사해서 실행하는거), exec

systemd(init) = pid : 1

커널 = pid : 0

 

 

 

관련 명령어

pstree, ps, kill, pkill, jobs, nohup, exec, top, nice, renice ...…

 

 pstree, ps, kill을 그나마 많이 사용합니다.

 

 

 

Foreground

현재 터미널에서 제어되는 프로세스

ㄴ 터미널 메인 화면에서 실행되는 것. 터미널 자체를 점유하고있기 때문에 동시에 명령을 수행하지 못함.

     터미널 마다 하나씩 있는거라 보면 된다.

 

 

 

Background

터미널과 무관하게 메모리에서 실행되는 프로그램

ㄴ 실행하면 창을 닫아도 메모리에서 돌아가기때문에 실행이 계속 된다. (demon, 서비스)

 

 

 

ps

- 프로세스를 확인합니다.

 

옵션

-a(x) : 현재 터미널에서 실행중인 프로세스(모든 프로세스를 보여줘)

-e : 모든 프로세스

-f : 자세한 내용

-p : 특정 PID의 프로세스를 지정한다.

 

 

  • UID : 프로세스 실행 계정
  • PID : pid
  • PPID : 부모프로세스 pid
  • C : idle time
  • STIME : start time
  • TTY : 터미널
  • TIME : CPU 사용 시간
  • CMD : 실행 명령

 

kill

 

사용자나 프로그램이 프로세스를 제어하기 위해 시그널(Signal)을 발생시키는데 이런 시그널을 직접 보내는 명령어. 보통 프로세스를 강제 종료할 때 사용

 

# kill [-signal] [PID]

 

옵션

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

 

 

nohup

프로세스 중단(hangup)을 무시하고 명령을 계속 실행(터미널이 종료되도 프로그램이 실행되도록 하는것. background로 돌리는게 아님.) 또한 표준 출력을 nohup.out으로 변경합니다.

ㄴ 작업 시간이 긴 명령어를 실행할 때 로그 아웃이나 터미널 다운에 대비할 수 있습니다.

 

# nohup [command]

 


 

RPM

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

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

rpm으로 설치하면 리눅스에 원래 있던 프로그램처럼 설치가 됩니다.

 

 

RPM에 대한 정보

RPM 패키지의 구조

• 패키지명-버전-릴리즈.아키텍처.rpm

 

 

# rpm -qa : 시스템에 설치된 모든 패키지명

# rpm -qi 패키지명 : 패키지의 상세한 정보

# rpm -ql 패키지명 : 패키지의 파일 리스트

# rpm -qf 파일명 : 지정한 파일이 포함된 패키지(어떤패키지로 설치된 파일인지 나옴)

 

 

설치 및 업그레이드

 

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

 

 

옵션

 

- i : 설치

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

-F : 업그레이드만

-v : 설치과정 출력

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

 

# = 해쉬마크

 

-Uvh : 많이 씀.

 

실습

 

vm에서 iso파일 넣고

mkdir /cdrom만들고

mount /dev/cdrom /cdrom/ 으로 마운트 해주기

vsftp파일 다운

cd /cdrom/AppStream/Pacages/v

rpm -Uvh vsftpd-3.0.3-36.el8.x86_64.rpm

 

오류뜬것

 

밑에 있는 프로그램들이 있어야 내가 다운받을려고 하는것을 다운받을수 있었따.

예전에는 밑에 일일이 하나씩 다운로드했었따.

 

 

삭제

# rpm -e 패키지명

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

 

주요 추가 옵션

 

옵션

 

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

--force : 같은 버전의 패키지나 파일이 있어도 무시하고 작업진행(가끔 rpm자체가 깨지는 경우가 있음)

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

 

위에 2가지를 주로 사용함.

 


PT

 

 

OSPF (Open Shortest Path First)

- 계층화 된 라우팅 프로토콜 (rip단점을 보안해서 나온것.)

 

  • IGP(Internal Gateway Protocol)
    - AS(Autonomous System)내부에 사용(AS간에는 BGP가 사용됩니다.)
  • Area에 의해 효율적인 라우팅 정보 관리가 가능하다.(동일한 라우팅 정보를 전달받습니다.)
    - Backbone area(Area0)을 통해 연결된다.
    - Area0에 연결되지 못하면 Virtual link를 통해 연결한다.
    - Area 내에서 LSA를 교환한다.
    - Area 내에 속한 장비들을 서로 neighbor 라고 표현하고, neighbor 끼리 동일한 라우팅 정보를 주고 받는습니다.
    - 국내에서는 Area가 많이 필요한 환경이 거의 없습니다. 즉 Area0만 있는 경우가 대부분이다
  • Link의 cost를 기반으로 경로를 배정한다.
    - Hop 제한이 없다.
    - Dijkstra의 SPF알고리즘을 바탕으로 경로가 선택된다.
    - link cost = 기준대역폭/실제대역폭
  • VLSM을 지원한다.

Backbone area(Area0)가 중요함.(반드시 있어야함.)

 

 

 

• ABR : Area Border Router

• IR : Internal Router

• ASBR : Autonomous System Boundary Router

 

 

라우터의 구분

  • IR : Area 내부 라우터
  • ABR : Area를 연결하는 라우터
  • ASBR : AS와 연결하는 외부 연결 라우터
  • DR(Designated Router)
    : Link stat 정보를 취합, 관리하는 라우터
    : IR과 DR간에 link stat 정보를 주고 받는다.
  • BDR(Backup DR)
    : DR이 문제가 생겼을 때를 대비해서 백업용으로 지정되는 라우터
    : 라우터끼리 직접 연결되있는 경우는 DR, BDR이 필요하지 않을 수 있습니다.

 

OSPF는 neighbor 간에 라우팅 정보를 공유한다.

  • 라우터 간에 이런 adjacency를 위한 조건이 필요하다.
  • 동일 area에 위치한다.
  • 동일한 인증 정보
  • 동일한 Hello interval 및 Dead interval을 가져야한다.
    - 이들 값은 토플로지에 따라 자동으로 결정된다.
    - 10초, 40초 : ppp, ethernet

 

OSPF의 네이버(Neighbor)와 인접 관계(Adjacency)는 동일한 의미가 아니다.

  • 네이버 라우터 중에 인접관계인 라우터와 LSA를 교환한다.
  • 이를 통해 모든 라우터가 동일한 링크 정보를 유지한다.
  • Adjancency 는 DR(BDR)과 IR간에 이뤄진다.

 

 

1번과 2번 라우터는 네이버이면서 인접관계입니다.

1번과 3번은 네이버이지만 인접관계는 아닙니다.

 

 

point to point - 거의 사용안함.

●  Poing to Point Link : HDLC, PPP등의 Serial Link

●  DB/BDR를 선출하지 않는다.

●  OSPF Hello 및 LSU 패킷은 Multicast 224.0.0.5를 이용한다.

      • Hello Packet : 10s

      • Dead Interval : 40s

 

 

 

Multiaccess Network 

●  Ethernet등의 LAN Link

●  DR/BDR을 선출한다.

      • Priority가 기준이 된다.

      • 가장 높은 router id가 DR이 된다.

●  모든 라우터는 DR/BDR과만 인접관계가 된다.

●  DR과 통신

      • TO DR : 224.0.0.6

      • FROM DR : 224.0.0.5