OS/Linux

[Linux] 리눅스마스터 1급 필기 기출

Dev.Congsik 2024. 10. 16. 17:36
728x90

2023년 3월 11일 기출문제 정리

 

라이센스

오픈소스 라이센스: 상업적 이용, 배포, 수정, 특허신청, 사적이용이 가능한 라이센스

  • GNU GPL(제약: 상)
    • 수정한 소스코드 및 GPL 소스코드 사용시 모두 GPL로 공개
    • 변경사항 명시
    • 파이어 폭스(2.0), 리눅스 커널, 깃, 마리아
  • LGPL(제약: 중간)
    • LGPL 소스코드를 단순 라이브러리 이상으로 사용하는 경우에 소스코드 공개
    • 변경사항 명시
  • BSD(제약: 낮음)
    • 저작원 및 라이선스 명시 이외엔 아무런 제약이 없음
    • OpenCV
  • Apache(제약: 낮음)
    • 변경사항 명시, 2차 라이센스 가능
    • 소스코드 공개의무X, 아파치 라이센스 사용 공시, BSD보다 완화
    • 안드로이드, Hadoop 등
  • MIT(제약: 낮음)
    • 2차 라이센스 가능
    • 소스코드 공개의무 X
    • X 윈도 시스템
  • MPL(제약: 중간)
    • 수정한 소스코드 MPL 라이센스로 공개
    • 특허기술이 구현된 경우 관련 사실을 LEGAL 파일에 기록하여 배포
    • 2차 라이센스 가능
    • 소스코드는 MPL로 공개하고 저작자에게 수정사실 알려야함
    • 실행파일은 독점 라이센스로 배포 가능
    • 파이어폭스(1.1)

리눅스 배포판

  1. Rocky Linux : Redhat 기반으로 yum 및 dnf 명령어를 사용
  2. Cent OS : Redhat 기반으로 yum 명령어를 사용
  3. Ubuntu : Debian 기반으로 apt 명령어를 사용
  4. Debian : Linux 기반으로 Kail Linux가 이에 속하며, dpkg, apt 명령어를 사용

RAID 구성

RAID(Redundant Array of Independent Disks)는 여러 개의 물리적 하드 디스크 드라이브를 하나의 논리적 유닛으로 결합하여 데이터의 성능, 신뢰성, 또는 둘 다를 향상시키기 위한 기술입니다. RAID는 여러 가지 레벨로 나뉘며, 각각의 레벨은 다른 방식으로 데이터를 분산하고 복제합니다.

주요 RAID 레벨은 다음과 같습니다:

  1. RAID 0 (스트라이핑):
    • 데이터는 여러 디스크에 걸쳐 스트라이핑됩니다.
    • 성능 향상이 있지만, 데이터 복제나 패리티 정보가 없기 때문에 하나의 디스크가 실패하면 모든 데이터가 손실됩니다.
  2. RAID 1 (미러링):
    • 데이터는 두 개 이상의 디스크에 동일하게 복제됩니다.
    • 높은 데이터 신뢰성을 제공하지만, 저장 용량이 반으로 줄어듭니다.
      • -C (--create): RAID 장치 생성
      • -l (--level): RAID 레벨 지정 0, 1, 4, 5, 6
      • -n: RAID 구성할 디바이스 개수를 지정 2, 3, 4..
      예시) mdadm -C /dev/md2 -l 1 -n 2 /dev/sdb1 /dev/sdc1
      • /dev/md2를 생성, RAID 1 구성으로 장치는 2개(/dev/sdb1 /dev/sdc1)
    • mdadm
  3. RAID 5 (스트라이핑 + 패리티):
    • 데이터와 패리티 정보가 최소 3개의 디스크에 분산됩니다.
    • 하나의 디스크가 실패해도 데이터 복구가 가능하지만, 쓰기 성능이 패리티 계산 때문에 약간 저하될 수 있습니다.
  4. RAID 6 (이중 패리티):
    • RAID 5와 유사하지만, 두 개의 패리티 블록을 사용하여 두 개의 디스크가 동시에 실패해도 데이터 복구가 가능합니다.
    • RAID 5보다 더 높은 신뢰성을 제공하지만, 쓰기 성능 저하가 더 큽니다.
  5. RAID 10 (RAID 1+0):
    • 스트라이핑과 미러링을 결합한 형태로, 최소 4개의 디스크가 필요합니다.
    • 높은 성능과 신뢰성을 제공하지만, 저장 용량이 반으로 줄어듭니다.
  6. RAID 50 (RAID 5+0):
    • 여러 RAID 5 배열을 스트라이핑하여 결합한 형태입니다.
    • 성능과 신뢰성을 모두 제공하지만, 구성과 관리가 복잡할 수 있습니다.
  7. RAID 60 (RAID 6+0):
    • 여러 RAID 6 배열을 스트라이핑하여 결합한 형태입니다.
    • 높은 신뢰성과 성능을 제공하지만, 구성과 관리가 복잡하고, 저장 용량 효율이 낮을 수 있습니다.

RAID는 하드웨어 기반과 소프트웨어 기반으로 구현될 수 있습니다.

하드웨어 기반 RAID는 전용 RAID 컨트롤러를 사용하여 구현되며, 성능이 더 좋고 시스템 리소스를 덜 사용합니다.

소프트웨어 기반 RAID는 운영 체제에서 제공하는 기능을 사용하여 구현되며, 비용이 저렴하지만 시스템 리소스를 더 많이 사용합니다.

  • /proc/mdstat : 다중 디스크(MD, Multi Disk) 관리를 위한 RAID 상태와 구성 정보를 포함하고 있는 파일

 

X 윈도우 시스템

  • X 윈도 시스템은 클라이언트-서버 모델을 기반으로 한 그래픽 사용자 인터페이스 시스템입니다.
  • 여기서 "서버"는 화면, 키보드, 마우스 같은 디스플레이 장치를 관리하며, "클라이언트"는 사용자가 실행하는 응용 프로그램을 지칭합니다.
  • 원격지에서 X 클라이언트 응용 프로그램을 실행하려면, 해당 응용 프로그램이 출력을 보낼 X 서버의 위치를 알아야 합니다.
  • 이를 위해 DISPLAY 환경변수를 사용합니다. DISPLAY 변수는 X 서버의 호스트 이름과 디스플레이 번호를 포함하는 문자열로 설정되며, 이는 응용 프로그램이 그래픽 출력을 어디로 보낼지를 결정하는 데 사용됩니다.
  • 예를 들어, 원격지 컴퓨터에서 로컬 컴퓨터로 그래픽 출력을 보내기 위해서는 로컬 컴퓨터에서 X 서버를 실행하고 있어야 하며, 원격지 컴퓨터의 DISPLAY 환경변수를 로컬 컴퓨터의 주소와 사용하는 디스플레이 번호로 설정해야 합니다.
  • 미 설치된 환경에서 커널 컴파일 도구 (텍스트 기반으로 사용)make menuconfig: 이는 텍스트 기반의 메뉴 구동 설정 인터페이스를 제공합니다. 이 역시 X 윈도 환경이 없이도 사용할 수 있습니다.make gconfig: 이 도구는 GTK+ 기반의 그래픽 설정 인터페이스를 제공합니다. X 윈도 환경이 설치되어 있어야 사용할 수 있습니다.
  • make xconfig: 이 도구는 Qt 기반의 그래픽 설정 인터페이스를 제공합니다. 따라서 X 윈도 환경이 설치되어 있어야 사용할 수 있습니다.
  • make config: 이는 텍스트 기반 설정 인터페이스를 제공합니다. X 윈도 환경이 없어도 사용할 수 있습니다.

 

명령어

  • test 20 -gt 30 : 조건을 테스트하는 명령으로, -gt 옵션(첫 숫자가 둘쨰 숫자보다 큰지 확인하는 옵션)에 의해 false 반환 값 1이 출력된다.
  • echo $? : 마지막 명령어의 상태 코드 출력
  • bg : 현재 실행 중인 작업을 백그라운드로 이동
  • fg : 백그라운드 실행 작업을 다시 포어그라운드로 이동
  • jobs : 현재 쉘에서 실행 중인 백그라운드 및 포어그라운드 작업 목록 표시
  • nohup : 세션이 종료되어도 계속 실행되도록 함, 일반적으로 프로세스를 백그라운드로 실행하고자 할떄 사용
  • ip : 네트워크 인터페이스, 주소, 라우터, ARP 캐시 등 네트워크 관련 정보를 조회하고 설정하는 명령어
  • arp : IP 주소와 MAC 주소를 매핑하는 ARP 테이블을 조회하고 관리하는데 사용되는 명령
  • ifconfig : 네트워크 인터페이스를 구성하고 모니터링 하는데 사용되며, 네트워크 인터페이스를 활성 / 비활성화하고, 재설정할 수 있는 명령어
  • ethtool : 네트워크 인터페이스의 하드웨어적인 설정값을 확인하거나 변경할 수 있는 명령어
  • ss : socket statisitcs / 리눅스 네트워크 상태 확인 netstat 이랑 비슷
  • mii-tool - 네트워크 인터페이스 연결 상태와 속도를 확인할 수 있고  강제로 포트 속도를 변경할 수 있음
  • usermod -I : —login으로 id 변경
  • usermod -L : —lock으로 락을 걸어 로그인 제한
  • chage -l [사용자명] : 사용자의 패스워드 관련 정보 출력
  • w : 사용자와 사용자가 수행중인 작업
  • who : 로그인 된 사용자 출력 / 아이디, 터미널, 로그인한 날짜,시간,위치 등
  • users : 로그인 된 아이디 출력 / 일렬로 아이디
  • lslogins : 전체 사용자 출력
  • edquota: 사용자 또는 그룹을 위한 쿼터를 편집하는 명령어. 기본값으로 지정한 사용자나 그룹에 대한 쿼퍼 파일을 VI에디터를 통해 열어 수정한다. 저장 후 반영된다.
  • setquota: vi 편집기 대신에 명령줄에서 사용자 및 그룹 쿼터 설정을 수행한다.
  • xfs_quota: CentOS7부터 사용되는 기본파일시스템 xfs에서 제공하는 쿼터를 관리한다. 사용자, 그룹뿐만 아니라 프로젝트, 디렉토리별로 제안할 수 있다.
  • qutoa: 사용자 디스크 사용량과 쿼터 정보를 출력하는 명령어이다.
  • touch : 파일 시간스탬프 변경, 빈 파일 생성
  • ps -l : 프로세스 우선순위 확인(PRI, NI 값 확인)
  • nice [-20~19사이 정수] [프로세스명] : 값이 낮을수록 우선순위가 높음
  • renice [-20~19사이 정수] [pid] : 값이 높을수록 우선순위가 낮음
  • tar
    1. cvf: 상세 내용을 표시하고 text.tar 명으로 압축 생성
    2. xvf: 상세 내용을 표시하고 압축 해제
    3. tvf: 지정된 archive의 목록 출력
    4. rvf: 기존 생성되어 있던 파일에 다시 압축
  • insmod 모듈파일명 : 커널에 모듈 적재
  • depmod : 모듈간 의존성 관리 명령어
  • rmmod :모듈 제거
  • modprobe 모듈명 : 커널에 모듈 적재, 제거(-r)
    • modprobe -r iptable_filter : 커널에 적재된 모듈 제거
  • depmod : 모듈간 의존성 관리 명령어
  • modules.dep : 모듈 의존성 파일
  • ldconfig : 공유 라이브러리 관련 정보 설정 및 갱신 명령어
  • pvscan : 시스템의 모든 지원되는 LVM 블록 장치를 스캔하여 물리 볼륨을 찾습니다.
  • vgscan : 시스템의 모든 물리 볼륨을 스캔하고 LVM 캐시 파일을 다시 빌드합니다.
  • lvscan : 시스템의 모든 알려진 볼륨 그룹을 스캔하여 논리 볼륨을 찾습니다.
  • pvdisplay : 물리 볼륨에 대한 자세한 정보를 표시합니다.
  • 프린트 관련 명령어
    1. System V 계열
    • lp: 프린터 디바이스 path를 사용하여 직접 인쇄 (-d: 다른 프린터 지정, -n: 인쇄 매수 지정)
    • lpstat: 프린터 큐의 상태를 확인
    • cancel: 프린트 작업을 취소
    1. BSD 계열
    • lpr: 인쇄 작업을 수행 (-P: 인쇄를 수행할 프린터 지정(프린터명), -#: 인쇄 매주 지정)
    • lpq: 프린터 큐의 상태를 확인
    • lprm: 프린터 큐의 작업을 삭제
    • lpc: 프린터가 인쇄 가능한 상태인지 확인
  • sysctl
    • -n : 변수의 값 출력
    • -w : 지정 변수에 값 저장
    • -a, -A : 모든 커널 매개변수 출력
    • -p : 설정 파일 로드
  • chattr : 숨은 속성을 변경하는 명령어이다.-a 옵션은 add only로 내용의 추가만을 가능하게 하는 속성이다.-a: 추가 전용 - 파일에 데이터를 추가만 가능 (기존 데이터 삭제나 수정 불가)-i: 변경 금지 - 파일 삭제, 이름 변경, 링크 변경 및 데이터 수정 불가능chattr -i /etc/service  # 속성 제거chattr -i -R /etc/mail  # 디렉터리 내 모든 파일과 서브 디렉터리에 재귀적으로 속성을 적용
  • chattr =i /etc/service  # 속성 설정(기존 모든 속성을 제거하고 지정한 속성만 설정)
  • chattr +i /etc/service  # 속성 추가
  • -d: dump 명령을 통해서 백업받을 경우 백업받지 않는 옵션
  • +i : 해당파일의 변경, 삭제, 이름변경, 파일 추가 혹은 링크 파일 추가 등이 되지 않는다.
  • chattr [옵션] [+,-,=][속성] [파일명]

 

시그널 번호

SIGINT : 2

SIGKILL : 9

SIGSTOP : 19

SIGQUIT : 3

 

OSI 7계층

1층 (물리 계층) : 비트

2층 (데이터 링크 계층) : 프레임

3층 (네트워크 계층) : 패킷 혹은 UDP 데이터그램

4층 (전송 계층) : TCP 세그먼트

5,6,7층 (응용 계층) : 메시지, 데이터

물(리)-데(이터링크)-네(트워크)-전(송)-세(션)-표(현)-응(용)

b(it)-f(rame)-p(acket)-s(egment)-d(ata)

물데네전세표응 - bfpsd 로 암기

 

IEEE

  • 전기 및 전자공학 전문가들로 구성된 국제 조직
  • 전기, 전자 컴퓨터 과학 등 다양한 과학 전공자들이 참여하여 주요 표준 및 연구 정책을 발전시키는 역할 수행
  • 컴퓨터 네트워크 분야에서는 LAN 및 MAN 표준을 제정하였다.

 

게이트웨이 주소값 구하기

  • ip 주소와 서브넷마스크 : 192.168.3.150/26 일때 게이트웨이 주소값은?
  • IP 주소 192.168.3.150/26의 "/26"이라는 서브넷 마스크는 255.255.255.192로 변환됩니다.
  • 이는 26비트가 네트워크 부분을 나타내고, 나머지 6비트가 호스트 부분을 나타냄을 의미합니다.
  1. 네트워크 주소 계산:
    • IP 주소: 192.168.3.150
    • 서브넷 마스크: 255.255.255.192
    IP 주소와 서브넷 마스크를 AND 연산하면 네트워크 주소를 얻을 수 있습니다.
  2. 192.168.3.150: 11000000.10101000.00000011.10010110 255.255.255.192: 11111111.11111111.11111111.11000000 -------------------------------------------- 네트워크 주소: 11000000.10101000.00000011.10000000 (192.168.3.128)
  3. 브로드캐스트 주소 계산:
    • 네트워크 주소의 호스트 부분을 모두 1로 설정하면 브로드캐스트 주소가 됩니다.
    네트워크 주소: 192.168.3.128 -> 11000000.10101000.00000011.10000000
    브로드캐스트 주소: 11000000.10101000.00000011.10111111 (192.168.3.191)
    
  4. 유효 호스트 범위:
    • 네트워크 주소와 브로드캐스트 주소 사이의 IP들이 유효 호스트 주소입니다.
    • 유효 호스트 범위: 192.168.3.129 ~ 192.168.3.190
  5. 게이트웨이 주소:
    • 일반적으로 네트워크의 첫 번째 유효 호스트 주소가 게이트웨이 주소로 사용됩니다.
    • 따라서 게이트웨이 주소는 192.168.3.129입니다.

 

/etc/passwd 파일

root : x : 0 : 0 : root : /root : /bin/bash

사용자명:패스워드:uid:gid:계정이름:홈 디렉토리:로그인 쉘

 

/etc/gshadow 파일

groupname : password : admin1,admin2 : user1,user2,user3

[그룹이름]:[패스워드]:[관리자]:[멤버]

 

질의 (query) 모드

rpm q( ) httpd

  • q : 질의 시 반드시 사용
  • i : 설치된 패키지 정보 출력
  • l : 패키지에 설치된 모든 파일 정보 출력
  • a : 시스템에 설치된 모든 패키지 목록 출력
  • p 패키지_파일명 : rpm 패키지 파일에 대한 정보 출력
  • f 파일명 : 지정한 파일을 설치한 패키지 이름 출력
  • c : 해당 패키지의 설정 파일이나 스크립트 파일 출력

 

커널 컴파일 과정

make mrproper > make menuconfig > make bzImage > make > make modules > make modules_install > make install

 

로그 설정 메시지 레벨

0 - emerg: 패닉 상태, 모든 사용자에게 전달되어야 할 위험한 상황의 메시지

1 - alert: 즉각적인 조치가 필요한 상황의 메시지

2 - critical: 시스템에 문제가 생기는 단계의 메시지

3 - error: 에러가 발생하는 경우의 메시지

4 - waring: 주의를 요하는 경고 메시지

5 - notice: 특별한 주의를 요하는 에러는 아닌 메시지

6 - info: 통계, 기본 정보 메시지

7 - debug: 프로그램을 디버깅할 때 생성되는 메시지

8 - none: *.none을 붙이면 관련 메시지를 제외한다는 뜻. 예) mail.none

 

보안 도구

  • nessus : 서버 보안 취약점 검사
  • tripwire : 파일의 변조 여부 검사
  • GnuPG : GNU Privacy Guard
  • wireshark : 네트워크 패킷 감시 및 분석

 

웹 서버

IIS : MS가 개발하고 관리하는 웹서버, MS ASP를 지원하며, GUI 기반의 관리 콘솔 사용가능

GWS : 구글이 제공하는 웹 서버

Nginx : 비동기 이벤트 기반 구조, 로드 밸런서, HTTP cache, 리버스 프록시 기능 제공

Apache : 아파치 재단이 주도하는 오픈소스 웹 서버, 사용자의 요청에 따라 프로세스나 쓰레드를 생성해 처리

728x90

'OS > Linux' 카테고리의 다른 글

[Linux] yum install 오류 해결법  (4) 2024.09.04
[Linux] 서버 리소스 모니터링  (0) 2024.09.04
[Linux] vi 편집기 명령어  (0) 2024.08.28
[Linux] cron 표현식  (0) 2024.08.27
[Linux] 서버시간 동기화 - ntp  (0) 2024.08.27