Linux/Linux Master 2급

1. Part 01 리눅스 일반 (리눅스 마스터 2급 - 1차 시험)

seongduck 2022. 10. 8. 10:43

1. 특징

  • 오픈 소스 운영체제
  • 다중 사용자 (multi user) 다중 작업(multi tasking)을 지원한다.
  • 강력한 네트워킹 지원 및 다양한 파일 시스템을 지원한다.
    • 클라이언트, 서버운영체제 등등 사용이 자유롭다.
    • 윈도우의 경우 윈도우 파일 시스템만 지원한다.
  • 뛰어난 이식성, 유연성, 확장성을 지니며 안정성과 보안성도 강력하다.
    • 소스가 오픈되어 있기 때문에 보안성 방어도 뛰어나다.
  • 가격 대비 성능이 우수하며 다양한 응용 프로그램을 제공한다.
    • 대부분 무료
  • 다양한 배보판이 존재한다.
    • 데비안 - 우분투
    • 레드헷 - centOs

2. 장점

장점 * 유닉스와 완벽한 호한
* POSIX 규격을 따름
* 안정적인 운영체제
* 하드웨어의 효율적 운영
단점 * 공개용, 무료 운영체제이므로 오류시 기술지원을 받기 어렵다.
* 특정 하드웨어에 대한 지원 부족 (Mac ...)
* 처음 접하는 사용자에게는 사용이 다소 어렵다. (GUI가 아니므로)
* 한글 지원이 미흡 (요즘엔 괜찮...)

3. 리눅스 부팅 과정

단계 진행과정 설명
1단계 ROM-BIOS 실행 * POST (Power On Self Test) 과정을 수행 후 하드웨어 이상 유무를 검사, 에러 발생시 알림
* 부트 로더 로딩 => 여러 종류의 OS, 커널의 문제 해결
2단계 부트 로더 실행 * 부트 로더를 실행하여 커널을 로딩하고, 스와퍼 프로세스 호출
* 'LiLo'와 'GRUB'가 있음
3단계 스와퍼 프로세스 실행 * 장치들의 드라이버 초기화
* 'init' 프로세스 실행 => 요즘은 System d
4단계 'init' 프로세스 실행 'init' 프로세스를 실행하여 '/etc/inittab' 파일을 읽음 => 하지만 System d를 주로 사용한다.
5단계 부트 레벨 결정 * 부트 레벨을 결정  -> 런 레벨 7단계
6단계 'rc.sysinit' 스크립트 * 초기화 과정
* '/ect/rc.d/rc.sysinit' 스크립트를 실행하여 시스템 초기화 작업 수행
7단계 'rcx.d' 스크립트 실행 * '/etc/rcx.d' 스크립트를 실행하여 해당 부트 레벨 스크립트를 순차적으로 실행
8단계 X윈도 실행 부트 레벨이 5일 경우 x윈도 환경으로 부팅 -> 3단계는 당연히 TextMood
  • LILO (Linux LOader)
    • 작고 가벼우며 멀티부팅이 가능하다
    • 커널을 변경할 때마다 명령어를 변경해줘야 한다.
      • /etc/lilo.conf에 설정파일이 위치한다.
  • GRUB(GRand Unified Boot Loader)
    • LILO 명령 없이 자동으로 부트 이미지 발견, 적절하게 파라미터를 입력가능
    • 굉장히 무겁다.
      • /boot/grub/menu.lst에 설정파일이 위치한다.

4. 런 레벨(Run Level)

런 레벨 운영 모드 설명
0 Halt 시스템 종료
1 Single User Mode 단일 사용자 모드(CLI)
2 Multi User Mode
(Without Networking)
다중 사용자 모드(CLI)
(네트워크 사용 불가)
3 Multi User Mode
(Only Console Login)
다중 사용자 모드(CLI)
4 Not Used 사용하지 않음
5 Multi User Mode
(With Display Manager)
다중 사용자 모드(GUI, X 윈도)
6 Reboot 재시작
  • 주로 사용하는 것은 3레벨과 5레벨이다. (1문제)

5. 디렉터리의 특징

기호 특징
/ * 최상위 디렉터리
* 루트(/) 디렉터리라고 함
/bin 'System Binary'의 약어로 이진 파일이며 리눅스에서 기본 명령어가 저장된 디렉터리
/usr 시스템에 사용되는 각종 프로그램이 설치되는 디렉터리
/etc 리눅스 시스템의 각종 환경설정 파일과 디렉터리가 저장된 디렉터리 => 모든 설정파일
/sbin 시스템 관리를 위한 명령어가 저장된 디렉터리
/lib * 프로그램의 각종 라이브러리 파일이 저장된 디렉터리
* 유틸리티 패키지 등의 파일 포함
/var * 시스템에서 사용되는 동적인 파일을 저장하는 디렉터리
* 각종 시스템 로그파일로 사용자 로그인에 대한 로그를 기록
* 메일서버를 운영한다면 사용자에게 전송된 메일을 임시로 저장하는 디렉터리 => dns
/tmp 임시 디렉터리로 스티키 비트가 설정되어 있음 => 특수한 비트
/root 시스템 관리자(root)의 홈 디렉터리 => 위의 /와 다르다. 디렉터리 최상 vs 관리자 디렉터리
/proc * 시스템의 각종 프로세서 프로그램 정보, 하드웨어 정보가 저장된 디렉터리
* 가상 파일 시스템으로 hd에 물리적인 용량을 가지지 않는 디렉터리 => 거의 0에 수렴
/dev 시스템의 각종 장치에 접근하기 위한 장치 드라이버가 저장된 디렉터리
/home 일반 사용자의 홈 디렉터리
  • 1문제

 

  • 스티키 비트(Sticky Bit)란?
    • 비록 permission이 777인 파일이여도 파일의 소유자만이 삭제할 수 있다. (수정, 실행, 읽기는 모두 허용)
    • sticky bit가 설정된 디렉토리 자체도 소유자만이 삭제할 수 있다.
    • root는 다할 수 있다.
  • 배경
    • /tmp, /var/tmp의 디렉토리는 permission이 777이므로 누구나 생성하고 만들고 삭제할 수 있다.
    • 다른 소유자가 지워버리는 문제가 생겨나는 것을 방지하여 스티키 비트를 설정해놓는다.

6. RAID 레벨 구조

RAID 레벨 설명
RAID 0 *  빠른 데이터의 입출력을 위해 '스타라이핑 (Striping)'을 사용한다. => 분산저장
* 하나의 디스크에 오류가 발생하면 데이터를 잃어버릴 수 있다.

ex) 1. 대 - 민 --- 2. 한 - 국  이렇게 두개의 디스크를 저장
RAID 1 * 2개 이상의 디스크를 '미러링(Mirroring)'을 통해 하나의 디스크처럼 사용한다.
* 완전히 동일하게 데이터를 복제하기 때문에 사용량이 절반밖에 되지 않는다.
* 하나의 디스크에 오류가 발생하면 미러링된 디스크를 통해 복구할 수 있다.
* RAID0의 단점을 극복,, 하지만 용량이 반토막 나는 단점 생성

ex) 1.대한민국 --- 2.대한민국  이렇게 두개의 디스크를 저장
RAID 0 + 1 * RAID 0과 RAID 1을 결합하는 방식
* 최소 4개 이상의 디스크에서 먼저 2개씩 'RAID 0 (스트라이핑)으로 묶고 이것을 다시 'RAID 1(미러링)으로 결합하는 방식''
RAID 2 * 오류 정정을 위해 '해밍 코드(Hamming Code)'를 사용하는 방식
* 비트 단위에 해밍 코드를 적용한다.
* 최근 디스크 드라이브가 기본적으로 오류 검출 기능이 있으므로 거의 사용하지 않는다.
RAID 3 * 패리티 정보를 하나의 디스크에 있다.
* 나머지 2개의 디스크에는 정보만 가지고 있다.
RAID 5 * 3개 이상의 디스크를 사용하여 하나의 디스크처럼 사용하고, 각각의 디스크에 패리티 정보를 가짐
* 하나의 디스크에 오류가 발생해도 다른 2개의 디스크를 통해 복구 가능
* 패리티 디스크를 별도로 사용하지 않으므로 병목 현상이 발생하지 않는다.
  • 물리적인(디스크) 서버와 프로세스를 논리적으로 하나로 묶어버리는 것. 
  • 10 ( 4 + 6)

7 /etc/passwd 파일

  • pw만 들어있는 것이 아니라 사용자 정보가 들어있는 부분이다.
    • 물론 pw도 들어있다. 하지만 이것만 들어있는 것이 아니다.
  • 7개의 필드로 이루어져 있으며 :(콜론)으로 구분된다.

 

7-1 파일 구조

username : password : uid : gid : comment : homedirectory : shell

 

7-2 내용 설명

파일 구조 설명
username 계정명
password 패스워드
uid UID, username계정에 대한 주민번호같은 존재
숫자로(10, 16진수여도)
gid GID, 동아리, 동호회
숫자로(10, 16진수여도)
comment 설명, 이 username을 누가 사용하는지..
작동에는 영향이 없다.
homedirectory root를 제외한 모든 사용자들은 home 디렉토리 밑에 생긴다.
shell 로그인 셀 종류 (Default 셀은 bash) -> (/bin/bash에 있다.)

8. /etc/shadow 파일

  • password 정보가 들어있는 파일
  • password파일의 password부분을 암호화해서 저장
  • 8개의 필드로 이루어져 있으며 :(콜론)으로 구분된다.

 

8-1. 파일 구조

username : password : lastchange : mindays : maxdays : warndays : inactive : expire : flag

 

8-2 내용 설명

파일 구조 설명
username 계정명
password 암호화된 패스워드
lastchange 변경 후 지난 일 수
-> 기준은 1970.01.01 (애초에 이렇게 설정해둠)
mindays 변경 최소 일
-> 3일로 설정하면 3일 이후에만 변경가능
maxdays 최대 유효기간
warndays 만료 경고일
-> 7일로 하면, 7일전에 경고창 노출
inactive 만료 후 비활성화 기간
-> 경고했는데도 안하면 7일동안 접근 불가능
expire 계정 만료일
flag 예약

9. /etc/group 파일

  • 그룹정보
  • 4개의 필드로 구성되어 있다.

 

9-1. 파일 구조

groupname : password : gid : members

 

9-2. 내용 설명

파일 구조 설명
groupname 계정명
password 암호화된 패스워드
gid GID
(Group ID)
members 소속된 사용자