CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
리눅스마스터 1급 · 1급리눅스마스터 1급
  • Week 1
    • 1.운영체제와 리눅스: 커널이 하는 일
    • 2.자유 소프트웨어와 배포판: 라이선스가 만든 생태계
    • 3.설치와 부팅: 전원을 켜는 순간부터
    • 4.파일시스템 구조와 파일의 종류: 모든 것은 파일이다
    • 5.Week 1 종합 복습: 개념을 꿰뚫는 시간
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
    • 1.명령어 옵션 빈출 정리: 실기 단답으로 굳히는 핵심 명령
    • 2.설정 파일 경로·핵심 지시어 총정리: 빈칸 채우기를 위한 정밀 암기
    • 3.디스크·LVM·권한 작업형: 시나리오를 명령 순서로 풀어내기
    • 4.프로세스·스케줄링·systemd 작업형: 운영 명령을 시나리오로 굳히기
    • 5.시스템 작업형 모의고사 + 오답노트: 12문항으로 굳히기
  • Week 13
  • Week 14
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 1급/Week 12/Day 3

기준: 리눅스마스터 1급 출제 기준·오류 제보

리눅스마스터 1급· AssociateWeek 12 · Day 3읽기 약 8분
핵심 정리
  • 작업형은 순서가 틀리면 전체가 무너진다. 명령 하나가 아니라 시퀀스를 통째로 외운다.
  • 디스크 추가 4단계: 파티션(fdisk) → 포맷(mkfs) → 마운트(mount) → fstab 등록. "부팅 후에도 유지"면 fstab이 필수다.
  • LVM은 pvcreate → vgcreate → lvcreate 순으로 쌓고, 지울 때는 반대 순서다.
  • 용량 확장은 vgextend(풀 키우기) → lvextend(LV 키우기) → resize2fs/xfs_growfs(파일시스템 키우기). 마지막 단계를 빼먹으면 용량이 안 늘어난다.
  • umask는 기본값에서 빼는 마스크 — 파일은 666, 디렉터리는 777에서 뺀다. 022 → 644 / 755.
  • 특수 권한: SetUID 4000(소유자 권한 실행), SetGID 2000(그룹 상속), Sticky 1000(본인 파일만 삭제). /tmp=1777, passwd=4755.

Day 3 - 디스크·LVM·권한 작업형: 시나리오를 명령 순서로 풀어내기

일반 디스크 작업: 파티션 → 파일시스템 → 마운트 → fstab

  • 새 디스크 /dev/sdb를 추가해 /data에 마운트하는 표준 4단계 흐름이다.
# [0단계] 디스크 인식 확인
fdisk -l                 # 전체 디스크·파티션 목록
lsblk                    # 블록 장치를 트리로 보기
 
# [1단계] 파티션 생성 (fdisk 또는 parted)
fdisk /dev/sdb
# 대화형: n(새 파티션) → p(주 파티션) → 번호 → 크기 → w(저장)
 
# [2단계] 파일시스템 생성(포맷)
mkfs -t ext4 /dev/sdb1   # ext4로 포맷
mkfs.ext4 /dev/sdb1      # 위와 동일
mkfs -t xfs /dev/sdb1    # xfs로 포맷
mkfs.xfs /dev/sdb1       # 위와 동일
 
# [3단계] 마운트 지점 만들고 마운트
mkdir /data
mount /dev/sdb1 /data    # 임시 마운트(재부팅 시 사라짐)
mount -t ext4 /dev/sdb1 /data   # 타입 명시
 
# [4단계] fstab 등록(영구 마운트)
# /etc/fstab에 추가:
# /dev/sdb1   /data   ext4   defaults   0 2
mount -a                 # fstab 전체 다시 마운트(문법 검증 겸용)
df -h                    # 마운트 결과 확인
단계명령목적
1 파티션fdisk /dev/sdb디스크를 파티션으로 분할
2 포맷mkfs -t ext4 /dev/sdb1파일시스템 생성
3 마운트mount /dev/sdb1 /data디렉터리에 연결
4 영구화/etc/fstab 등록 + mount -a부팅 시 자동 마운트

"디스크를 추가해 마운트" 작업은 항상 파티션 → 포맷(mkfs) → 마운트(mount) → fstab 등록의 순서다. 이 4단계 중 하나라도 빠지면 작업이 완성되지 않는다. 특히 "부팅 후에도 유지"라는 조건이 있으면 반드시 fstab 등록까지 해야 한다.

⚠️ 함정: 포맷은 파티션(/dev/sdb1)에 하는 것이지 디스크 전체(/dev/sdb)에 하는 게 아니다. 또 mount만 하면 재부팅 시 사라진다 — 영구 마운트는 /etc/fstab 등록이 필수다. mount -a는 fstab의 모든 항목을 다시 마운트하므로 fstab 작성 후 검증용으로 쓴다.

# 스왑 파티션/파일 만들기
mkswap /dev/sdb2         # 스왑 영역 생성
swapon /dev/sdb2         # 스왑 활성화
swapon -s                # 활성 스왑 목록
free -h                  # 메모리·스왑 사용량
# fstab: /dev/sdb2  none  swap  sw  0 0

마운트 정보 확인은 mount(현재 마운트 목록), df -h(용량·사용률), lsblk(장치 트리), blkid(UUID·타입)로 한다. UUID로 마운트하려면 blkid로 UUID를 알아내 fstab에 UUID=... 형태로 적는다. 장치명(/dev/sdb1)은 디스크 추가 시 바뀔 수 있어 UUID가 더 안전하다.

LVM 작업: PV → VG → LV → 확장

  • LVM은 디스크를 유연하게 묶고 나누는 계층 구조다.
  • 물리 볼륨(PV) → 볼륨 그룹(VG) → 논리 볼륨(LV) 순서로 쌓는다.
# [1단계] 물리 볼륨(PV) 생성 — 디스크/파티션을 LVM용으로 초기화
pvcreate /dev/sdb /dev/sdc
pvscan                   # PV 목록
pvdisplay                # PV 상세 정보
 
# [2단계] 볼륨 그룹(VG) 생성 — PV들을 하나로 묶음
vgcreate vg_data /dev/sdb /dev/sdc
vgscan
vgdisplay                # VG 상세(여유 공간 확인)
 
# [3단계] 논리 볼륨(LV) 생성 — VG에서 잘라냄
lvcreate -L 10G -n lv_app vg_data    # 10GB짜리 lv_app 생성
lvcreate -l 100%FREE -n lv_all vg_data  # 남은 공간 전부
lvscan
lvdisplay                # LV 상세, 경로는 /dev/vg_data/lv_app
 
# [4단계] 파일시스템 생성 + 마운트
mkfs -t ext4 /dev/vg_data/lv_app
mkdir /app
mount /dev/vg_data/lv_app /app
# fstab: /dev/vg_data/lv_app  /app  ext4  defaults  0 2
계층생성 명령표시 명령의미
PVpvcreatepvdisplay디스크를 LVM용으로 초기화
VGvgcreatevgdisplayPV들을 묶은 저장 풀
LVlvcreatelvdisplayVG에서 잘라낸 논리 디스크

LVM 생성 순서는 pvcreate → vgcreate → lvcreate다. 명령 접두어가 pv, vg, lv로 계층을 나타낸다. 만들 때는 위에서 아래로(PV→VG→LV), 지울 때는 반대로(LV→VG→PV) 진행한다.

  • LVM의 강점은 무중단 확장이다.
# VG에 새 디스크(PV) 추가
pvcreate /dev/sdd
vgextend vg_data /dev/sdd    # VG에 PV 추가(용량 확장)
 
# LV 크기 늘리기
lvextend -L +5G /dev/vg_data/lv_app      # 5GB 추가
lvextend -L 20G /dev/vg_data/lv_app      # 총 20GB로
lvextend -l +100%FREE /dev/vg_data/lv_app  # 남은 공간 전부
 
# ★ LV를 늘린 뒤 파일시스템도 확장해야 실제 용량 증가
resize2fs /dev/vg_data/lv_app    # ext2/3/4용
xfs_growfs /app                  # xfs용 (마운트 지점 지정)
 
# 한 번에: lvextend -r 옵션 (resize 자동)
lvextend -L +5G -r /dev/vg_data/lv_app

LV를 확장하는 명령은 lvextend다. 그런데 LV만 늘리면 파일시스템은 그대로이므로, ext 계열은 resize2fs, xfs는 xfs_growfs로 파일시스템까지 늘려야 실제 용량이 반영된다. 이 "두 단계"를 빠뜨리는 게 대표적 실수다. lvextend -r을 쓰면 resize까지 자동으로 처리한다.

⚠️ 함정: VG 확장은 vgextend(PV 추가), LV 확장은 lvextend다. 이름이 비슷해 헷갈린다. vgextend는 풀을 키우고, lvextend는 논리 디스크를 키운다. xfs는 줄일 수 없고(축소 불가) 늘리기만 가능하다는 것도 함정 포인트다.

권한 작업형: umask / 특수 권한

umask: 새 파일·디렉터리의 기본 권한 제어

  • umask는 새로 생성되는 파일·디렉터리의 권한에서 빼낼 비트를 지정한다.
umask              # 현재 umask 출력 (예: 0022)
umask 022          # umask 설정
umask 027          # 더 엄격하게
 
# 계산: 파일 기본 666, 디렉터리 기본 777에서 umask를 뺌
# umask 022 → 파일 644(rw-r--r--), 디렉터리 755(rwxr-xr-x)
# umask 077 → 파일 600(rw-------), 디렉터리 700(rwx------)
umask새 파일 권한새 디렉터리 권한
022644755
027640750
077600700
002664775

umask는 "기본 권한에서 빼는 마스크"다. 파일은 666에서, 디렉터리는 777에서 umask 값을 뺀다. umask 022면 파일은 666-022=644, 디렉터리는 777-022=755가 된다. 파일에 실행 비트(x)가 기본으로 안 붙는 이유는 시작값이 666이기 때문이다.

특수 권한: SetUID / SetGID / Sticky bit

  • 일반 rwx 위에 추가되는 3개의 특수 권한이 실기 대상이다.
# SetUID (4000) — 실행 시 파일 소유자 권한으로 동작
chmod 4755 /path/program     # rwsr-xr-x
chmod u+s /path/program      # 기호 방식
# 예: /usr/bin/passwd (일반 사용자가 shadow를 고칠 수 있게)
 
# SetGID (2000) — 실행 시 그룹 권한 / 디렉터리는 그룹 상속
chmod 2755 /path/program     # rwxr-sr-x
chmod g+s /shared_dir        # 디렉터리: 새 파일이 그룹을 상속
# 예: 공유 디렉터리에서 팀 그룹 유지
 
# Sticky bit (1000) — 디렉터리: 소유자만 자기 파일 삭제 가능
chmod 1777 /tmp              # rwxrwxrwt
chmod +t /shared_dir         # 기호 방식
# 예: /tmp (누구나 쓰지만 남의 파일은 못 지움)
특수 권한8진수기호표시 위치효과
SetUID4000u+s소유자 x자리 s소유자 권한으로 실행
SetGID2000g+s그룹 x자리 s그룹 권한 실행/그룹 상속
Sticky1000+t기타 x자리 t본인 파일만 삭제 가능
  • ls -l에서는 권한 문자로 구분한다.
  • -rwsr-xr-x → SetUID (소유자 x 자리에 s)
  • -rwxr-sr-x → SetGID (그룹 x 자리에 s)
  • drwxrwxrwt → Sticky bit (기타 x 자리에 t)

특수 권한 8진수는 일반 권한 앞에 한 자리 더 붙인다. chmod 4755의 맨 앞 4가 SetUID, 2가 SetGID, 1이 Sticky bit다. /tmp가 1777(Sticky), /usr/bin/passwd가 4755(SetUID)다.

대문자 S/T가 보이면(예: rwSr--r--) 그건 해당 위치에 실행 권한(x)이 없는 상태에서 특수 비트만 켜진 것으로, 보통 의도치 않은 설정이다. 소문자 s/t는 실행 권한이 함께 있는 정상 상태다.

직접 쳐보기

# 디스크 상태 확인 (안전한 조회 명령)
lsblk
df -h
blkid
mount | column -t
 
# LVM 상태 확인 (LVM 설치된 환경에서)
pvscan; vgscan; lvscan
vgdisplay 2>/dev/null
 
# umask 실험
umask                    # 현재 값 확인
mkdir testdir && touch testfile
ls -ld testdir testfile  # 권한 확인
umask 077
mkdir testdir2 && touch testfile2
ls -ld testdir2 testfile2  # 더 엄격해진 권한 확인
 
# 특수 권한 확인
ls -l /usr/bin/passwd    # rwsr-xr-x (SetUID)
ls -ld /tmp              # rwxrwxrwt (Sticky)

작업 순서 암기 카드

시나리오명령 순서
새 디스크 마운트fdisk → mkfs -t ext4 → mount → fstab 등록
영구 마운트 보장/etc/fstab에 추가 후 mount -a
스왑 추가mkswap → swapon
LVM 생성pvcreate → vgcreate → lvcreate
LVM 용량 확장vgextend(PV추가) → lvextend → resize2fs/xfs_growfs
새 파일 기본권한 644umask 022
소유자 권한으로 실행chmod 4755(SetUID)
공유 디렉터리 그룹 상속chmod g+s (SetGID)
/tmp식 안전 공유chmod 1777 (Sticky)

각 단계의 명령 접두어(pv/vg/lv)와 마무리 단계(fstab, resize2fs)를 빠뜨리면 안 된다. 다음 날은 프로세스·스케줄링·systemd 작업형으로 시스템 운영의 나머지 절반을 채운다.

📖 용어

  • fdisk : 디스크를 파티션으로 나누는 대화형 도구. n(생성) → w(저장) 순으로 쓴다.
  • mkfs : 파티션에 파일시스템을 만드는(포맷) 명령. 디스크 전체가 아니라 파티션에 건다.
  • fstab 등록 : 부팅 시 자동 마운트되게 만드는 마지막 단계. 이걸 빼면 재부팅 때 마운트가 사라진다.
  • mount -a : /etc/fstab의 모든 항목을 다시 마운트. fstab을 고친 뒤 문법 검증용으로 쓴다.
  • blkid : 장치의 UUID와 파일시스템 타입을 알려주는 명령. 장치명 대신 UUID로 fstab을 쓸 때 필요하다.
  • PV(물리 볼륨) : LVM이 쓸 수 있게 초기화한 디스크·파티션. pvcreate로 만든다.
  • VG(볼륨 그룹) : PV 여럿을 묶은 저장 풀. vgcreate로 만들고 vgextend로 키운다.
  • LV(논리 볼륨) : VG에서 잘라낸 논리 디스크. lvcreate로 만들고 lvextend로 키운다.
  • resize2fs / xfs_growfs : LV를 늘린 뒤 그 위의 파일시스템까지 늘려 주는 명령(ext 계열 / xfs).
  • umask : 새로 만드는 파일·디렉터리의 기본 권한에서 빼낼 비트. 파일은 666, 디렉터리는 777이 시작값이다.
  • SetUID : 실행할 때 실행자가 아닌 파일 소유자의 권한으로 동작하게 하는 비트(4000). passwd 명령이 대표 예다.
  • SetGID : 실행 시 그룹 권한을 쓰거나, 디렉터리에 걸면 새 파일이 그 디렉터리의 그룹을 상속하게 하는 비트(2000).
  • Sticky bit : 디렉터리에 걸어 자기 파일만 지울 수 있게 하는 비트(1000). /tmp가 대표 예다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

새 파티션 /dev/sdb1을 ext4로 포맷하는 명령으로 옳은 것은?

문제 2

부팅 시 자동으로 마운트되도록 디스크를 영구 등록하려면 어느 파일을 수정해야 하는가?

문제 3

LVM 구성 시 가장 먼저 디스크를 LVM용으로 초기화하는 명령은?

문제 4

논리 볼륨 lv_app을 5GB 확장한 뒤 ext4 파일시스템까지 실제로 늘리려면 lvextend 다음에 실행할 명령은?

문제 5

umask 값이 022일 때 새로 생성되는 일반 파일의 권한은?

문제 6

/usr/bin/passwd처럼 실행 시 파일 소유자(root)의 권한으로 동작하게 하는 특수 권한과 8진수 표현은?

문제 7

/tmp처럼 누구나 파일을 만들 수 있지만 자기 파일만 삭제할 수 있게 하는 특수 권한 설정 명령은?

이전설정 파일 경로·핵심 지시어 총정리: 빈칸 채우기를 위한 정밀 암기Week 12 · Day 2다음 프로세스·스케줄링·systemd 작업형: 운영 명령을 시나리오로 굳히기Week 12 · Day 4

참고 공식 자료

  • 리눅스마스터 1급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 일반 디스크 작업: 파티션 → 파일시스템 → 마운트 → fstab
  • LVM 작업: PV → VG → LV → 확장
  • 권한 작업형: umask / 특수 권한
  • umask: 새 파일·디렉터리의 기본 권한 제어
  • 특수 권한: SetUID / SetGID / Sticky bit
  • 직접 쳐보기
  • 작업 순서 암기 카드
  • 용어
  • 연습 문제