페이지 목차
이 페이지에서 검색
EIS
이 페이지에 묻기
EIS · 현재 차시와 목차 본문에서만 찾아 답합니다. 답을 지어내지 않고 해당하는 대목을 그대로 보여 주며, 여기에 없으면 없다고 알려 드립니다.
생성형 AI가 아니라 이 페이지 본문을 찾아 그대로 보여 주는 방식입니다. 외부로 나가는 요청이 없습니다.
EIS · SECURITY
EIS
생성 수정
정보보안기사의 시스템·네트워크·애플리케이션 보안과 암호·관리·실기 내용을 개념의 경계와 실습으로 연결합니다.
29개 문서 · 1 · 시스템보안 · 2 / 29
01 · 단말 · 서버 시스템과 운영체제
지도 위치 : 1과목 · README 4장의 ③ 영역(시스템) — 시스템 보안의 바닥 : 무엇을 지키는가(단말 · 서버)와 그것이 어떻게 돌아가는가(운영체제) | 출제기준: 1. 정보 시스템의 범위 및 이해 > 1. 단말 및 서버 시스템, 2. 운영체제 | 이전: README | 다음: 02 시스템 정보와 로그 출제 빈도 : ⭐⭐⭐ (회당 약 6.7문항 — 출제분석.md) · 변화 ▼ (운영체제 S1.2가 6.6 → 5.4로 소폭 감소, 여전히 1과목 최다) · ⚠️ 신규 범위 포함 (클라우드 · IoT, 권한 뒤
+(ACL), 시스템 콜) 세세항목 : 단말 시스템(PC, 모바일, 프린터, IoT/IIoT 등) · 시스템 서버(DB, DNS, E-mail, WEB/WAS, 파일서버, Cloud, 보안제품 등) · 단말 운영체제(Window, Linux, Android, iOS, Embeded OS 등) · 서버 운영체제(Windows, Linux, Unix 등)
이 노트를 다 읽으면
- 단말과 서버, 그리고 클라우드 · IoT · 산업제어시스템이 시스템 보안의 대상으로서 어떻게 다른지 말할 수 있다.
- 커널 · 셸 · 시스템 콜을 커널 모드 ↔ 사용자 모드 축으로 설명할 수 있다.
- 프로세스 · 스케줄링 · 교착상태 · 메모리 영역의 시험 단골 용어를 형제 개념과의 차이 로 구별할 수 있다.
- FAT · NTFS · ext와 inode를 비교하고, 공유 권한과 NTFS 권한이 겹칠 때의 결과를 말할 수 있다.
ls -l출력과 umask · chmod · 특수권한(SetUID/SetGID/Sticky) · ACL의+를 숫자로 계산 할 수 있다.- crontab 다섯 필드, 런레벨, 윈도우 레지스트리 루트키, 안드로이드의 adb · Manifest를 용도별로 짝지을 수 있다.
0. 이 노트의 판별 축
| # | 축 | 왼쪽 (0) | 오른쪽 (1) | 이 축으로 갈리는 것 | 큰 축 (README 5장) |
|---|---|---|---|---|---|
| 1 | 누가 실행하는가 | 사용자 모드 (응용 프로그램) | 커널 모드 (운영체제 핵심) | 셸 · 응용 ↔ 커널, 시스템 콜이 그 경계를 넘는 문 | 이 노트의 축 |
| 2 | 빼앗을 수 있는가 | 비선점 (끝날 때까지 CPU 보유) | 선점 (운영체제가 회수) | FCFS · SJF · HRN ↔ RR · SRT · MLFQ | 이 노트의 축 |
| 3 | 조각 크기가 고정인가 | 고정 크기 (페이지) | 가변 크기 (세그먼트) | 페이징(내부 단편화) ↔ 세그멘테이션(외부 단편화) | 이 노트의 축 |
| 4 | 권한을 누가 정하는가 | 소유자가 정함 (임의적) | 시스템이 등급으로 강제 | 리눅스 퍼미션 · ACL · NTFS 권한 ↔ Secure OS의 강제 접근통제 | DAC ↔ MAC (파생, ⑥) |
| 5 | 누구의 권한으로 실행되는가 | 실행한 사람의 권한 | 파일 소유자(그룹)의 권한 | 일반 실행 ↔ SetUID · SetGID | ⑥ 인증 ↔ 인가 |
| 6 | 보안 책임이 누구에게 있는가 | 클라우드 제공자 | 클라우드 고객 | IaaS(고객 책임 큼) ↔ SaaS(제공자 책임 큼) | 이 노트의 축 |
이 노트가 답하는 질문은 "공격과 방어가 일어나는 무대는 어떻게 생겼는가" 입니다. 앞에서 배운 네트워크(06~11번 노트)가 공격이 들어오는 길 이었다면, 이 노트는 공격이 도착하는 곳 입니다. 축 4의 DAC ↔ MAC은 앞에서 배운 접근통제(17번 노트)의 개념이 운영체제에서 어떻게 구현되는지를 보여 줍니다. 03번 노트의 버퍼 오버플로우 · Race condition은 이 노트의 메모리 영역 과 SetUID 를 모르면 이해되지 않습니다.
1. 정보 시스템의 범위 — 단말 · 서버 · 클라우드 · IoT
1.1 단말과 서버
단말 시스템 — [정보 시스템]인데, [ 사용자가 직접 조작해 서비스를 요청하는 쪽 ]이라는 점에서 요청을 받아 처리하는 서버와 구별된다. PC, 모바일, 프린터, IoT 기기가 여기에 속합니다.
| 구분 | 단말 (PC · 모바일 · 프린터 · IoT) | 서버 (DB · DNS · 메일 · WEB/WAS · 파일서버) |
|---|---|---|
| 역할 | 서비스 요청 | 서비스 제공 (항상 켜져 있음) |
| 대표 위협 | 악성코드 감염, 분실 · 도난, 사용자 실수 | 원격 공격, 서비스 거부, 대량 정보 유출 |
| 대표 대책 | 백신 · EDR, MDM, 매체 제어 (05번 노트) | 하드닝, 접근통제, 로그 감사 (04번 노트) |
| 설정 파일 예 | 브라우저 보안 영역 | Apache httpd.conf, DNS named.conf |
- WEB 서버 ↔ WAS : 웹 서버는 정적 파일(HTML · 이미지)을, WAS는 프로그램을 실행해 동적 결과를 만듭니다. Apache의 주 설정 파일은
httpd.conf입니다. - RPC (원격 프로시저 호출) : 다른 시스템의 함수를 내 것처럼 호출하는 서비스.
rpcinfo -p로 등록된 RPC 서비스를 봅니다. 불필요하면 끄는 대상입니다(04번 노트). - BIOS / UEFI : 전원을 켜면 가장 먼저 실행되는 펌웨어로, 하드웨어 점검(POST) 뒤 부트로더를 불러옵니다. 포렌식에서는 BIOS 시각이 시스템 시각의 기준 이라 확인 대상이고, 부트 영역을 노리는 악성코드(03번 노트의 부트섹터 바이러스)와 연결됩니다.
1.2 RAID — 디스크를 묶어 가용성을 높이기
RAID — [저장장치 구성 방식]인데, [ 여러 디스크를 하나처럼 묶어 속도나 중복성을 얻는다 ]는 점에서 사본을 따로 떠 두는 백업과 구별된다. RAID는 디스크 고장에는 버티지만 실수로 지운 파일, 랜섬웨어 암호화는 그대로 복제 하므로 백업을 대신하지 못합니다.
| 레벨 | 방식 | 한 줄 | 최소 디스크 |
|---|---|---|---|
| RAID 0 | 스트라이핑 | 나눠 쓰기. 빠르지만 중복 없음 — 하나만 고장 나도 전부 손실 | 2 |
| RAID 1 | 미러링 | 똑같이 두 벌. 용량은 절반 | 2 |
| RAID 3 · 4 | 전용 패리티 디스크 | 패리티 디스크 하나에 몰림 → 병목 | 3 |
| RAID 5 | 분산 패리티 | 패리티를 모든 디스크에 나눔. 1개 고장까지 복구 | 3 |
| RAID 6 | 이중 분산 패리티 | 2개 고장까지 복구 | 4 |
| RAID 1+0 | 미러링 + 스트라이핑 | 속도와 중복성 모두 | 4 |
📝 기출 포인트 — "미러링에 해당하는 레벨"(1)과 "분산 패리티에 해당하는 레벨"(5)을 고르는 문제가 두 번 나왔습니다. 0은 중복이 없다 는 것이 오답 함정입니다.
1.3 산업제어시스템 · IoT · 모바일 단말 ⚠️ 신규 범위
SCADA — [산업제어시스템(ICS)]인데, [ 멀리 흩어진 설비(전력 · 수도 · 가스)를 중앙에서 감시하고 제어한다 ]는 점에서 한 공장 안의 기계를 직접 움직이는 PLC와 구별된다. PLC를 노린 대표 공격이 Stuxnet입니다(03번 노트).
| 대상 | 주요 위협 | 시험이 묻는 것 |
|---|---|---|
| IoT 가전 · 홈 IoT | 기본(초기) 패스워드 방치, 펌웨어 업데이트 부재, 평문 통신 | 보안위협의 원인 — Mirai 봇넷이 기본 계정으로 감염(03번 노트) |
| 스마트 월패드 | 세대 간 네트워크를 통한 침입, 카메라 영상 유출 | 홈네트워크 보안 요구사항(세대 간 망 분리, 안전한 암호 설정 등) — 세부 수치는 확인 필요 |
| RFID | 도청, 위치 추적, 복제 | 대책을 물리적 (Kill 명령 · 패러데이 케이지 · 블로커 태그) ↔ 암호 기반 (해시 락 · 랜덤 해시 락 · 해시 체인)으로 구분 |
| 드론 | 전파 방해(재밍), GPS 스푸핑, 명령 재전송 | 재밍 = 가용성 위협 (03번 노트) |
- IoT 서비스지향 구조(SoA) — 기능을 서비스 단위로 나눠 계층으로 쌓은 구조입니다. 산업용 IoT 서베이(Xu 외, 2014)에서는 아래부터 감지(Sensing) → 네트워크 → 서비스 → 인터페이스 4계층으로 설명합니다. 교재마다 계층 이름이 조금씩 다르니 순서(장치 → 통신 → 서비스 → 사용자)로 기억하세요.
- BYOD 모바일 보안 — 개인 기기를 업무에 쓸 때, 한 단말 안에서 업무 영역과 개인 영역을 분리 하는 기술(컨테이너화 · 모바일 가상화)과 MDM · MAM을 씁니다. 솔루션 비교는 05번 노트에서 합니다.
1.4 클라우드 ⚠️ 신규 범위
클라우드 컴퓨팅 — [IT 자원 제공 방식]인데, [ 가상화한 자원을 네트워크로 필요한 만큼 빌려 쓴다 ]는 점에서 장비를 직접 사서 운영하는 온프레미스와 구별된다.
| 모델 | 제공자가 관리 | 고객이 관리 | 예 |
|---|---|---|---|
| IaaS | 물리 서버 · 네트워크 · 가상화(하이퍼바이저) | 운영체제부터 미들웨어 · 앱 · 데이터 · 계정 | 가상 서버(EC2 등) |
| CaaS | + 컨테이너 실행 환경 | 컨테이너 이미지 · 앱 · 데이터 | 관리형 컨테이너 서비스 |
| PaaS | + 운영체제 · 런타임 · 미들웨어 | 앱 · 데이터 · 계정 | 앱 배포 플랫폼 |
| SaaS | + 응용 프로그램까지 전부 | 데이터 · 계정 · 접근 권한 | 웹 메일, 협업 도구 |
💡 책임 공유 모델 : 제공자는 클라우드 "의" 보안(물리 · 하이퍼바이저), 고객은 클라우드 "안의" 보안(데이터 · 계정 · 설정)을 책임집니다. 아래로 갈수록(IaaS → SaaS) 고객의 몫이 줄지만, 계정과 데이터는 어떤 모델에서도 고객 몫 입니다.
| 가상화 · 클라우드 위협 | 뜻 |
|---|---|
| VM 이스케이프 | 가상 머신 안에서 하이퍼바이저나 다른 VM으로 빠져나가는 공격 |
| 하이퍼바이저 공격 | 가상화 계층 자체를 장악 → 그 위의 모든 VM이 위험 |
| 멀티테넌시 정보 유출 | 같은 물리 자원을 쓰는 다른 고객 VM 사이의 정보 유출(부채널 포함) |
| 설정 오류 | 퍼블릭 공개된 저장소, MFA 없는 관리자 계정 — 실제 사고의 대부분. 점검은 04번 노트 |
- 하이퍼바이저 유형 : Type 1(베어메탈 — 하드웨어 위에 바로) ↔ Type 2(호스트형 — 기존 운영체제 위에 설치).
- VM ↔ 컨테이너 : VM은 운영체제를 통째로 가지고, 컨테이너는 호스트 커널을 공유 합니다. 그래서 컨테이너가 가볍지만 격리는 약합니다.
📝 기출 포인트 — 2024년에 IaaS · PaaS · SaaS · CaaS 구분이 새로 나왔고, 하이퍼바이저 기반 클라우드 보안위협, "클라우드 보안 특성 설명 중 틀린 것"이 출제되었습니다. 인증 제도(CSAP)는 22번 노트에서 다룹니다.
2. 운영체제의 구조
2.1 커널 · 셸 · 유틸리티
커널 — [운영체제 구성요소]인데, [ 메모리에 상주하며 하드웨어를 추상화하고 프로세스 · 메모리 · 파일 · 장치를 직접 관리한다 ]는 점에서 사용자의 명령을 해석해 커널에 전달할 뿐인 셸과 구별된다.
| 구성 | 하는 일 | 이건 아닙니다 |
|---|---|---|
| 커널 | 프로세스 · 메모리 · 파일시스템 · 장치 관리. 부팅 후 메모리에 상주 | 명령어 해석기가 아님 |
| 셸 | 사용자 명령을 해석 해 커널에 전달 (sh, bash, csh, ksh) | 하드웨어를 직접 다루지 않음 |
| 유틸리티 | ls, cp, vi 같은 응용 프로그램 | 커널 일부가 아님 |
⚠️ 컴파일러는 운영체제의 기능이 아닙니다. "운영체제의 역할이 아닌 것"을 고르는 문제에서 단골 오답입니다.
운영체제 5계층 (하위 → 상위): 프로세서 관리 → 메모리 관리 → 프로세스 관리 → 주변장치 관리 → 파일(정보) 관리 . 하드웨어에 가까운 것(CPU)일수록 아래입니다.
| 처리 방식 | 종차 |
|---|---|
| 일괄 처리 | 작업을 모아 한꺼번에 처리 |
| 다중 프로그래밍 | 여러 프로그램을 메모리에 올려 CPU 유휴 시간을 줄임 (CPU는 하나) |
| 시분할 | CPU 시간을 잘게 나눠 여러 사용자가 대화식으로 쓰는 것처럼 (라운드 로빈) |
| 다중 처리 | CPU가 여러 개 |
| 실시간 | 정해진 시간 안에 반드시 응답 |
| 분산 처리 | 네트워크로 연결된 여러 컴퓨터 가 하나처럼 — 자원 공유 · 신뢰성 · 확장성 ↑, 설계 · 보안 복잡도 ↑ |
버퍼링 ↔ 스풀링 : 버퍼링은 주기억장치 를 완충으로 한 작업의 입출력과 연산을 겹치고, 스풀링은 디스크 를 완충으로 여러 작업의 입출력(대표적으로 프린터)을 겹칩니다.
2.2 커널 모드 · 사용자 모드 · 시스템 콜 ⚠️ 신규 범위
시스템 콜 — [인터페이스]인데, [ 사용자 모드의 프로그램이 커널 기능(파일 열기 · 프로세스 생성 · 네트워크)을 요청하는 유일한 공식 통로 ]라는 점에서 같은 사용자 모드 안에서 부르는 라이브러리 함수 호출과 구별된다.
[사용자 모드] 응용 프로그램 → 라이브러리(printf 등) → 시스템 콜(open, read, fork, execve)
──────────────────────────────── 모드 전환(트랩) ────────────────────────────────
[커널 모드] 커널이 하드웨어 · 메모리 · 파일에 직접 접근 → 결과 반환
🔍 읽는 포인트 : 경계선을 넘는 것은 시스템 콜뿐 입니다. 그래서 strace(시스템 콜 추적)로 프로그램이 무엇을 하는지 볼 수 있고(05번 노트), 루트킷은 커널 쪽에서 시스템 콜 결과를 바꿔 자신을 숨깁니다(03번 노트).
| 커널 구조 | 종차 | 장단점 |
|---|---|---|
| 모놀리식 | 커널 기능 전부가 커널 모드 한 덩어리 (Linux) | 빠름 ↔ 한 곳의 버그가 전체에 영향 |
| 마이크로커널 | 최소 기능만 커널 모드, 나머지(드라이버 · 파일시스템)는 사용자 모드 서버 로 | 안정 · 보안 ↑ ↔ 모드 전환 · 메시지 전달이 많아 느림 |
인터럽트 — 실행 중 예기치 않은 사건이 생겨 현재 작업을 멈추고 처리 루틴으로 가는 것. 외부(전원 · 타이머 · 입출력) · 내부(0으로 나누기 같은 오류, 트랩) · SVC(시스템 콜로 발생) 로 나눕니다.
📝 기출 포인트 — "사용자 모드에서 커널 기능을 쓰는 인터페이스"(시스템 콜), "마이크로커널의 모드 분리 구조"가 나왔습니다. 커널은 메모리에 상주 한다는 특징도 반복됩니다.
3. 프로세스 · 스케줄링 · 메모리
3.1 프로세스와 스레드
프로세스 — [실행 단위]인데, [ 자기만의 주소 공간을 가진 실행 중인 프로그램 ]이라는 점에서 프로세스 안에서 코드 · 데이터 · 힙을 공유 하고 스택 · 레지스터만 따로 갖는 스레드와 구별된다. 운영체제는 프로세스마다 PCB (PID · 상태 · 프로그램 카운터 · 레지스터 · 메모리 정보 · 열린 파일)를 둡니다.
생성 → 준비 ──(디스패치)──▶ 실행 ──▶ 종료
▲ ◀──(타이머 만료)── │
└──(깨움)── 대기 ◀──(입출력 요청)
| 용어 | 뜻 | 찾는 법 |
|---|---|---|
| init (PID 1) | 부팅 후 커널이 처음 만드는 사용자 프로세스. 모든 프로세스의 조상. 최근 배포판은 systemd | ps -ef에서 PID 1 |
| 좀비 프로세스 | 자식은 종료 했는데 부모가 회수(wait)하지 않아 프로세스 표에 남은 것 | ps 상태 Z, <defunct>, top의 zombie 수 |
| 고아 프로세스 | 부모가 먼저 종료 → init이 입양 | 부모 PID가 1로 바뀜 |
3.2 CPU 스케줄링 · 교착상태
| 구분 | 기법 | 한 줄 |
|---|---|---|
| 비선점 | FCFS | 먼저 온 순서 |
| SJF | 실행 시간이 가장 짧은 작업 먼저 — 평균 대기 최소, 긴 작업은 기아(starvation) | |
| HRN | (대기 시간 + 서비스 시간) ÷ 서비스 시간이 큰 것 먼저 — SJF의 기아 보완 | |
| 선점 | RR (라운드 로빈) | 정해진 시간 할당량마다 클록(타이머) 인터럽트 로 CPU 회수 — 시분할 |
| SRT | SJF의 선점판 — 남은 시간이 더 짧은 작업이 오면 빼앗음 | |
| MLFQ (다단계 피드백 큐) | 여러 큐 사이를 이동 가능 — CPU를 오래 쓰면 아래 큐로, 오래 기다리면 위로(에이징). 입출력 중심 · CPU 중심 프로세스를 함께 다룸 |
평가 기준: CPU 이용률 · 처리량은 높게 , 반환 시간 · 대기 시간 · 응답 시간은 짧게 .
교착상태 (Deadlock) — [자원 문제]인데, [ 둘 이상의 프로세스가 서로가 가진 자원을 기다리며 영원히 멈춘다 ]는 점에서 우선순위가 낮아 계속 밀리는 기아와 구별된다.
| 발생 4조건 (모두 성립해야 발생) | 처리 4방법 |
|---|---|
| 상호배제 · 점유와 대기 · 비선점 · 환형 대기 | 예방 (조건 하나를 없앰) · 회피 (은행원 알고리즘) · 탐지 · 회복 |
- 세마포어 : 상호배제를 위한 정수 변수. P(대기) · V(신호) 연산은 원자적 (쪼갤 수 없음)이어야 합니다.
- 디스크 스케줄링 : SCAN은 헤드가 한쪽 끝까지 갔다가 되돌아오며 처리해 엘리베이터 알고리즘 이라 부릅니다. (FCFS · SSTF · C-SCAN · LOOK이 형제)
📝 기출 포인트 — SJF(비선점) · MLFQ(큐 간 이동) · 클록 인터럽트(선점)가 반복되고, 교착상태 4조건 과 "처리 방법이 아닌 것"이 나옵니다. "스케줄링과 관계가 먼 것"으로 교착 조건을 섞는 유형도 있습니다.
3.3 메모리 — 프로세스 주소 공간 ⭐
03번 노트의 버퍼 오버플로우 · 포맷 스트링 · Heap Spray는 모두 이 그림 위에서 일어납니다.
낮은 주소 ┌──────────────┐
│ 코드(Text) │ 실행 명령어 (읽기 전용)
│ 데이터(Data) │ 초기화된 전역 · 정적 변수
│ BSS │ 초기화되지 않은 전역 · 정적 변수
│ 힙(Heap) ↓ │ malloc · new로 동적 할당 — 높은 주소 방향으로 자람
│ … │
│ 스택(Stack) ↑ │ 지역 변수 · 매개변수 · 복귀 주소 — 낮은 주소 방향으로 자람
높은 주소 └──────────────┘
🔍 읽는 포인트 : 지역 변수 · 매개변수 · 복귀 주소 = 스택 , 동적 할당 = 힙 , 전역 변수 = 데이터 영역 입니다. "전역 변수가 스택에 저장된다"는 2024년 오답 보기였습니다. 무한 재귀가 망가뜨리는 곳은 스택 입니다.
앞으로 다시 만납니다 — 03번 노트에서 스택의 복귀 주소 를 덮어쓰는 버퍼 오버플로우와 힙을 노리는 Heap Spray를, 04번 노트에서 이를 막는 ASLR · DEP · 스택 가드를 봅니다.
| 짝 | 왼쪽 | 오른쪽 |
|---|---|---|
| 페이징 ↔ 세그멘테이션 | 고정 크기 페이지 → 내부 단편화 | 가변 크기 (논리 단위) → 외부 단편화 |
| 배치 전략 | 최초 적합(처음 맞는 곳) · 최적 적합(가장 딱 맞는 곳) | 최악 적합(가장 큰 곳) |
| 주소 변환(DAT) 사상 | 직접 사상(페이지 표를 메모리에서 찾음) | 연관 사상 (TLB 같은 연관 메모리 — 가장 빠름 ), 혼합형은 그 중간 |
4. 파일시스템
4.1 FAT · NTFS · ext
| 항목 | FAT32 | NTFS | ext 계열 (리눅스) |
|---|---|---|---|
| 운영체제 | 윈도우(구형) · 이동식 매체 | 윈도우 | 리눅스 |
| 권한(ACL) | ❌ 없음 | ⭕ 파일 · 폴더 단위 권한 | ⭕ 소유자/그룹/기타 + ACL |
| 암호화 | ❌ | ⭕ EFS | 별도 도구 |
| 저널링 | ❌ | ⭕ ($LogFile) | ext3부터 ⭕ |
| 파일 하나 최대 | 4GB 미만 | 매우 큼 | 매우 큼 |
| 메타데이터 구조 | FAT(파일 할당 테이블) | MFT | inode |
- ext : 1992년 MINIX 파일시스템의 한계 (작은 최대 크기, 짧은 파일명)를 보완한 최초의 리눅스 전용 파일시스템 → ext2 → ext3(저널링 추가) → ext4. ext3 · ext4는 윈도우가 기본으로 쓰지 않는 파일시스템입니다.
- NTFS의 MFT (Master File Table): 볼륨의 모든 파일 · 디렉터리 정보를 레코드로 담는 표입니다. 작은 파일은 내용까지 MFT 레코드 안에 들어갑니다. 포렌식이 MFT를 보는 이유입니다.
- 클러스터 : 파일시스템이 디스크 공간을 할당하는 논리 단위 . NTFS 클러스터는 섹터의 2의 거듭제곱 배 (1 · 2 · 4 · 8 … 섹터)로만 정합니다.
- NTFS 부가 기능 : EFS 암호화, 압축, 디스크 할당량, ADS (대체 데이터 스트림 — 파일 뒤에 숨은 데이터, 악성코드 은닉에 악용), 파일시스템 터널링 (파일을 지우고 짧은 시간 안에 같은 이름으로 다시 만들면 이전 생성 시각을 물려받음. 기본 15초로 알려짐 — 포렌식에서 시각 해석 주의).
- 빈 블록 관리: 비트 벡터(비트맵) · 연결 리스트 · 그룹핑 · 카운팅. 파일시스템 점검 · 복구 명령은 리눅스
fsck입니다.
4.2 공유 권한과 NTFS 권한
| 공유 권한 | NTFS 권한 | |
|---|---|---|
| 적용 | 네트워크로 접근할 때만 | 로컬 · 네트워크 모두 |
| 세밀함 | 읽기 · 변경 · 모든 권한 | 모든 권한 · 수정 · 읽기 및 실행 · 읽기 · 쓰기 등 |
- 네트워크로 접근하면 두 권한 중 더 제한적인 쪽 이 적용됩니다.
- NTFS 권한은 여러 그룹에서 받은 것이 누적(합) 되지만, 거부(Deny)가 허용보다 우선 합니다.
4.3 inode와 리눅스 디렉터리
inode — [파일 메타데이터 구조]인데, [ 파일 유형 · 권한 · 소유자(UID/GID) · 크기 · 시각(atime/mtime/ctime) · 링크 수 · 데이터 블록 주소를 담되 파일 이름은 담지 않는다 ]는 점에서 이름과 inode 번호를 짝지어 두는 디렉터리 엔트리와 구별된다. ls -i로 번호를 봅니다.
📝 기출 포인트 — "inode에 저장되지 않는 것" = 파일 이름 . 세 번 나왔습니다.
| 디렉터리 | 용도 | 디렉터리 | 용도 |
|---|---|---|---|
/etc | 설정 파일 (passwd, shadow 등) | /var | 바뀌는 데이터 — 로그(/var/log) · 메일 스풀 |
/tmp | 임시 파일 — 누구나 쓰기, Sticky bit | /proc | 커널 · 프로세스 정보(가상 파일시스템) |
/dev | 장치 파일 | /boot | 커널 · 부트로더 |
/bin · /sbin | 기본 명령 · 관리자 명령 | /home · /root | 사용자 홈 · root 홈 (~ = 내 홈) |
📝 기출 포인트 — NTFS는 최다 출제 개념(7회)입니다. MFT · 클러스터 · EFS · 저널링 · 권한 누적 , FAT와의 비교(권한 · 암호화 유무), ext가 MINIX를 보완했다는 사실이 반복됩니다.
5. 리눅스 권한 ⭐
5.1 ls -l 읽기와 chmod
$ ls -l /usr/bin/passwd /tmp/report.txt
-rwsr-xr-x. 1 root root 33424 ... /usr/bin/passwd
-rw-rw-r--+ 1 kim dev 812 ... /tmp/report.txt
│└┬┘└┬┘└┬┘│ └소유자 └그룹
│ │ │ │ └ '.'=SELinux 보안 문맥, '+'=ACL 설정됨
│ │ │ └ 기타 사용자(other)
│ │ └ 그룹(group)
│ └ 소유자(user)
└ 파일 유형: - 일반, d 디렉터리, l 심볼릭 링크, c/b 장치
🔍 읽는 포인트 : r=4, w=2, x=1을 세 자리씩 더합니다. rwxr-xr-- = 7 · 5 · 4 = 754 . 소유자 칸의 s는 SetUID입니다(5.3).
| 명령 | 예 | 뜻 |
|---|---|---|
chmod (숫자) | chmod 640 a.txt | rw-r----- |
chmod (기호) | chmod u+x,o-r a.txt | 소유자에 실행 추가, 기타에서 읽기 제거 (u · g · o · a) |
chown / chgrp | chown kim:dev a.txt | 소유자 · 그룹 변경 |
usermod | usermod -aG dev kim | kim을 dev 그룹에 추가 (-a 없이 -G만 쓰면 기존 보조 그룹이 교체 됨) |
디렉터리 권한 은 파일과 뜻이 다릅니다.
| 권한 | 파일에서 | 디렉터리에서 |
|---|---|---|
| r | 내용 읽기 | 안의 이름 목록 보기(ls) |
| w | 내용 수정 | 안에 파일 생성 · 삭제 · 이름 변경 (x도 필요) |
| x | 실행 | 들어가기(cd) · 안의 파일에 접근 |
⚠️ 파일을 지울 수 있는지는 파일의 권한이 아니라 그 파일이 든 디렉터리의 w + x 로 정해집니다.
5.2 umask — 기본 권한 계산
umask — [권한 설정값]인데, [ 새로 만드는 파일 · 디렉터리에서 뺄 권한을 정한다 ]는 점에서 이미 있는 파일의 권한을 바꾸는 chmod와 구별된다.
기준값 파일 666 (rw-rw-rw-) 디렉터리 777 (rwxrwxrwx)
umask 022 → 파일 644 (rw-r--r--) 디렉터리 755 (rwxr-xr-x)
umask 002 → 파일 664 (rw-rw-r--) 디렉터리 775 (rwxrwxr-x)
umask 027 → 파일 640 (rw-r-----) 디렉터리 750 (rwxr-x---)
🔍 읽는 포인트 : 파일은 666에서 , 디렉터리는 777에서 출발합니다(새 파일에는 실행 권한을 자동으로 주지 않음). 정확히는 뺄셈이 아니라 비트 마스크 입니다. umask 033이면 파일은 666−033=633이 아니라 644 입니다(없는 실행 비트는 뺄 것이 없음). 보안 권장값은 022 이상 입니다(04번 노트).
5.3 특수권한 — SetUID · SetGID · Sticky bit
| 특수권한 | 숫자 | 표시 위치 | 뜻 | 대표 예 |
|---|---|---|---|---|
| SetUID | 4000 | 소유자 x 자리 s | 실행하는 동안 파일 소유자 권한 으로 동작 | /usr/bin/passwd (일반 사용자가 root 소유 shadow를 수정) |
| SetGID | 2000 | 그룹 x 자리 s | 실행 시 파일 그룹 권한 . 디렉터리에 걸면 새 파일이 그 그룹을 상속 | 공유 작업 디렉터리 |
| Sticky bit | 1000 | 기타 x 자리 t | 디렉터리 안 파일을 소유자(와 root)만 삭제 | /tmp (drwxrwxrwt, 1777) |
-rwsr-xr-x = 4755 (SetUID + 실행 권한 있음 → 소문자 s)
-rwSr--r-- = 4644 (SetUID인데 소유자 실행 권한 없음 → 대문자 S, 사실상 무의미)
-rwxr-sr-x = 2755
drwxrwxrwt = 1777 (기타 실행 권한 없으면 대문자 T)
# SetUID · SetGID 파일 찾기 (침해 조사 · 점검)
find / -user root -perm -4000 -type f 2>/dev/null # root 소유 SetUID
find / -perm -2000 -type f # SetGID
find / -perm -6000 -type f # 둘 다
find / -mtime -1 # 최근 24시간 안에 바뀐 파일
🔍 읽는 포인트 : 소문자 = 실행 권한 있음, 대문자 = 없음. -perm -4000의 -는 "이 비트가 포함된 "이라는 뜻입니다. 공격자가 root 셸을 SetUID로 숨겨 두는 백도어(03번 노트) 때문에, root 소유 SetUID 파일 목록은 점검의 기본입니다.
📝 기출 포인트 — umask(6회)와 chmod(4회)는 계산 문제 , 특수권한은 표기 해석 (
s↔S, 4000/2000/1000)과 find -perm 옵션이 최근 3년 연속 나왔습니다.
5.4 ACL의 + · sudo · capabilities ⚠️ 신규 범위
ACL (접근 제어 목록) — [권한 확장]인데, [ 소유자 · 그룹 · 기타 세 칸 외에 특정 사용자 · 그룹별 권한을 추가한다 ]는 점에서 세 칸만 쓰는 기본 퍼미션과 구별된다. 앞에서 배운 ACL(17번 노트)의 리눅스 구현입니다.
$ setfacl -m u:lee:rw report.txt # lee에게 rw 추가
$ ls -l report.txt
-rw-rw-r--+ 1 kim dev 812 ... report.txt ← 끝의 '+' = ACL이 걸려 있음
$ getfacl report.txt # 실제 ACL 내용 확인
🔍 읽는 포인트 : +는 "기본 퍼미션만 보면 안 된다"는 신호입니다. 형제 개념 chattr (파일 속성, 예: +i 변경 불가 · +a 추가만 허용)은 ls -l에 나타나지 않고 lsattr 로 봅니다.
| 권한 위임 수단 | 종차 |
|---|---|
sudo (/etc/sudoers) | 정해진 사용자 · 그룹이 정해진 명령을 다른 사용자(보통 root) 권한으로 실행. 형식 사용자 호스트=(실행계정) 명령, 그룹은 %wheel ALL=(ALL) ALL |
| SetUID | 파일에 붙어 누가 실행하든 소유자 권한 |
| capabilities | root 권한을 기능 단위로 쪼갬 . 예: CAP_SYS_MODULE(커널 모듈 적재), CAP_NET_BIND_SERVICE(1024 미만 포트 사용) |
6. 운영체제별 관리 요소 — cron · 런레벨 · 레지스트리 · 안드로이드
6.1 리눅스 — cron · 런레벨 · 셸
# crontab -e (사용자별) /etc/crontab 은 '사용자' 필드가 하나 더 있음
# 분 시 일 월 요일 명령
30 2 * * 1 /root/backup.sh # 매주 월요일 02:30
*/10 * * * * /usr/bin/check.sh # 10분마다
0 9 1 * * /usr/bin/report.sh # 매월 1일 09:00
🔍 읽는 포인트 : 순서는 분 · 시 · 일 · 월 · 요일 (0과 7 = 일요일). crontab -l 목록, -r 삭제. 사용 허가는 /etc/cron.allow · cron.deny, 실행 기록은 /var/log/cron. 한 번만 예약하는 형제는 at입니다. 공격자가 지속성을 위해 cron에 악성 작업을 넣으므로 점검 대상입니다.
| 런레벨 | 뜻 | systemd 타깃 |
|---|---|---|
| 0 | 시스템 종료 | poweroff.target |
| 1 | 단일 사용자 (관리 · 복구) | rescue.target |
| 2 | 다중 사용자(NFS 없음) | — |
| 3 | 다중 사용자 · 텍스트 | multi-user.target |
| 5 | 다중 사용자 · 그래픽 | graphical.target |
| 6 | 재부팅 | reboot.target |
- 정상 종료는
shutdown(사용자에게 알리고 디스크를 동기화한 뒤 종료 — 파일시스템 무결성 보호). - xinetd : 여러 서비스를 대신 듣다가 요청이 오면 띄워 주는 슈퍼 데몬.
/etc/xinetd.d/서비스파일의disable = yes가 그 서비스를 끕니다. - 셸 환경 파일 :
/etc/profile(모든 사용자) →~/.bash_profile(사용자별 로그인 셸) →~/.bashrc(비로그인 셸). - 셸 특수문자 :
|파이프(앞 출력 → 뒤 입력),;순서대로,&&앞이 성공 하면 뒤 실행,||앞이 실패 하면 뒤 실행,&백그라운드,>덮어쓰기 ·>>이어쓰기. - 모니터링:
free·vmstat(메모리),iostat(디스크 입출력),top·ps(프로세스).
6.2 윈도우 — 레지스트리 · 그룹 · 프로세스
레지스트리 — [윈도우 설정 데이터베이스]인데, [ 운영체제 · 하드웨어 · 사용자 · 프로그램 설정을 계층 키로 한곳에 모은다 ]는 점에서 프로그램마다 흩어진 리눅스 /etc 설정 파일과 구별된다.
| 루트키 | 담는 것 |
|---|---|
| HKEY_CLASSES_ROOT (HKCR) | 파일 확장자 ↔ 실행 프로그램 연결 , COM 객체 |
| HKEY_CURRENT_USER (HKCU) | 현재 로그인한 사용자 의 설정 (NTUSER.DAT에서 로드) |
| HKEY_LOCAL_MACHINE (HKLM) | 하드웨어 · 드라이버 · 시스템 전체 설정 (하위: HARDWARE · SAM · SECURITY · SOFTWARE · SYSTEM) |
| HKEY_USERS (HKU) | 모든 사용자 프로필 |
| HKEY_CURRENT_CONFIG (HKCC) | 현재 사용 중인 하드웨어 프로필 |
- 하이브 파일 :
%SystemRoot%\System32\config\의 SAM · SECURITY · SOFTWARE · SYSTEM · DEFAULT, 사용자별 NTUSER.DAT. HKLM\HARDWARE는 파일이 없습니다 — 부팅할 때마다 메모리에 새로 만듭니다. - 편집 도구:
regedit,reg(명령줄).strings는 파일에서 문자열을 뽑는 도구일 뿐 레지스트리 편집기가 아닙니다. - AutoAdminLogon :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon의AutoAdminLogon=1과DefaultUserName·DefaultPassword로 자동 로그인 — 암호가 평문으로 남는 점검 대상입니다.
| 기본 그룹 | 범위 |
|---|---|
| Administrators | 그 컴퓨터(로컬) 에 대한 모든 권한 — 도메인 전체가 아님 |
| Users | 일반 작업. 시스템 설정 변경 · 다른 사용자 파일 접근 불가 |
| Guests | 최소 권한 임시 계정 |
| Backup Operators | 백업 · 복원을 위해 파일 보안을 넘어 읽고 쓸 수 있음 |
- UAC (사용자 계정 컨트롤): 관리자도 평소에는 표준 권한으로 실행하고, 관리자 권한이 필요할 때 승인을 요구 합니다.
- lsass.exe : 로그인 인증 · 보안 정책을 맡는 프로세스(02번 노트의 LSA). svchost.exe : 서비스 DLL을 띄우는 호스트 — 여러 개가 정상이라 악성코드가 이름을 흉내 내는 단골 입니다(03번 노트).
net명령:net user(계정) ·net localgroup(그룹) ·net share(공유 목록 · 삭제) ·net use(공유 연결) ·net session(내게 연결된 세션) ·net statistics(통계 시작 시각 = 마지막 부팅 시각). 기본 공유(C$ · ADMIN$ · IPC$)는 03 · 04번 노트에서 다룹니다.
6.3 안드로이드 · iOS
앱 (Applications)
자바 API 프레임워크
네이티브 라이브러리 + ART(실행 환경)
HAL (하드웨어 추상화 계층) ← 카메라 · 센서 같은 하드웨어를 표준 인터페이스로 노출
리눅스 커널 ← 앱마다 다른 UID로 샌드박스 격리
| 요소 | 뜻 |
|---|---|
| AndroidManifest.xml | 앱의 패키지명 · 컴포넌트 · 요청 권한 (<uses-permission>, 예: INTERNET · READ_CONTACTS · SEND_SMS)을 선언하는 필수 파일 |
| adb | PC에서 기기를 제어하는 디버깅 도구. adb shell 안에서 pm(패키지 관리) · am(액티비티 실행) · monkey(무작위 입력 테스트) |
| 경로 | /data/app(설치된 APK), /data/data/<패키지명>/(앱 데이터, databases/의 SQLite DB), /data/local/tmp(adb 셸이 쓸 수 있는 곳) |
| 분석 도구 | apktool (APK 디코딩 · 재패키징), 디컴파일러(jadx 등) — adb와 용도가 다름 |
iOS는 앱 코드 서명 과 샌드박스로 더 닫힌 구조이고, 이 제한을 푸는 것이 탈옥(안드로이드는 루팅 — 03번 노트)입니다.
📝 기출 포인트 — 레지스트리(5회)는 루트키별 저장 정보 (HKCR = 확장자 연결, HKLM = 하드웨어 · 드라이버)가 핵심이고, 최근에는 AutoAdminLogon · "파일로 존재하지 않는 하이브"까지 나왔습니다. cron(4회)은 필드 순서 , 2023년 이후로는 안드로이드 adb · Manifest · HAL · SQLite 가 거의 매회 나옵니다.
7. 실기 연결
수행준거 1.1 "운영체제별 보안특성 파악하기" (운영체제 환경 · 버전, 식별 · 인증 · 접근통제)와 2.1 "운영체제 보안설정 점검과 보완하기" (보호 대상 객체의 권한 설정)에 해당합니다.
필답형은 이렇게 묻습니다.
ls -l출력을 주고 "이 파일의 위험성과 조치 명령" → 핵심어: SetUID, root 소유, 불필요 시chmod u-s- "umask 027일 때 생성되는 파일과 디렉터리 권한" → 640, 750 (계산 근거까지 쓰기)
- crontab 한 줄을 주고 실행 시점 해석 또는 "매일 새벽 3시에 실행하도록 작성"
- 레지스트리 경로를 주고 무엇을 위한 설정인지
권한 점검표 예시 (리눅스)
| 점검 대상 | 확인 명령 | 양호 기준 |
|---|---|---|
/etc/passwd · /etc/shadow | ls -l /etc/passwd /etc/shadow | passwd 644 이하, shadow 400(또는 그 이하) · root 소유 |
| SetUID · SetGID 파일 | find / -perm -4000 -o -perm -2000 | 목록이 관리되고 불필요한 것 없음 |
| 누구나 쓸 수 있는 파일 | find / -type f -perm -2 | 불필요한 world writable 없음 |
/tmp | ls -ld /tmp | Sticky bit(t) 설정 |
| umask | umask | 022 이상 |
| cron 작업 | crontab -l, /etc/crontab, /etc/cron.d/ | 모르는 작업 없음, cron 파일 권한 640 이하 |
💡 서술형 답안은 "무엇이 문제인가 → 어떤 명령으로 확인하는가 → 어떻게 고치는가" 세 줄이 기본 틀입니다. 04번 노트의 하드닝 항목과 짝으로 외우세요.
8. 확인 문제
문제 1. 다음 중 운영체제 커널에 대한 설명으로 옳지 않은 것은? ① 부팅 후 주기억장치에 상주한다 ② 프로세스와 메모리를 관리한다 ③ 사용자가 입력한 명령을 해석하는 명령어 해석기이다 ④ 응용 프로그램은 시스템 콜을 통해 커널 기능을 요청한다
문제 2. umask가 027인 사용자가 새 파일과 새 디렉터리를 만들었을 때의 권한으로 옳은 것은? ① 파일 750, 디렉터리 640 ② 파일 640, 디렉터리 750 ③ 파일 751, 디렉터리 751 ④ 파일 644, 디렉터리 755
문제 3. ls -l 결과가 -rwSr--r--인 파일에 대한 설명으로 옳은 것은?
① SetGID가 설정되어 있고 그룹 실행 권한이 있다 ② SetUID가 설정되어 있지만 소유자 실행 권한이 없다 ③ Sticky bit가 설정되어 있다 ④ 8진수로 2744이다
문제 4. 유닉스 inode에 저장되지 않는 정보는? ① 파일 소유자 UID ② 파일 크기 ③ 파일 이름 ④ 데이터 블록 주소
문제 5. 프로세스가 무한 재귀 호출을 할 때 가장 먼저 고갈되는 메모리 영역은? ① 코드 영역 ② 데이터 영역 ③ 힙 영역 ④ 스택 영역
문제 6. 파일 확장자와 실행할 응용 프로그램의 연결 정보를 담는 레지스트리 루트키는? ① HKEY_CLASSES_ROOT ② HKEY_CURRENT_USER ③ HKEY_USERS ④ HKEY_CURRENT_CONFIG
문제 7. 클라우드 서비스 모델에서 고객이 운영체제 패치까지 직접 책임 지는 모델은? ① SaaS ② PaaS ③ IaaS ④ 모든 모델에서 제공자가 책임진다
문제 8. ls -l 출력의 권한 문자열 끝에 붙은 +가 뜻하는 것은?
① chattr로 변경 불가 속성이 설정됨 ② SELinux 보안 문맥이 있음 ③ 기본 퍼미션 외에 ACL이 설정됨 ④ 심볼릭 링크임
정답과 해설
| # | 정답 | 해설 (판별 축) |
|---|---|---|
| 1 | ③ | 명령어 해석은 셸 의 일입니다(축 1: 사용자 모드 쪽). 커널은 상주하며 자원을 관리하고, 시스템 콜이 두 모드의 경계입니다. |
| 2 | ② | 파일은 666, 디렉터리는 777에서 출발해 027을 가립니다. ①은 둘을 뒤바꾼 함정, ④는 umask 022일 때의 값입니다. |
| 3 | ② | 소유자 x 자리의 S(대문자) = SetUID + 실행 권한 없음. 8진수로는 4644입니다. SetGID는 그룹 자리, Sticky는 기타 자리(t/T)에 표시됩니다. |
| 4 | ③ | 파일 이름은 디렉터리 엔트리 에 있습니다. 하드 링크로 이름이 여러 개여도 inode가 하나인 이유입니다. |
| 5 | ④ | 함수 호출마다 복귀 주소 · 지역 변수가 스택 에 쌓입니다. 힙은 동적 할당, 데이터는 전역 변수 영역입니다. |
| 6 | ① | HKCR = 확장자 연결 · COM. HKCU는 현재 사용자 설정, HKCC는 현재 하드웨어 프로필입니다. |
| 7 | ③ | 축 6: IaaS는 하이퍼바이저까지만 제공자 몫이고 운영체제부터 고객 몫 입니다. PaaS부터는 운영체제를 제공자가 관리합니다. |
| 8 | ③ | +는 ACL(getfacl로 확인), .은 SELinux 문맥입니다. chattr 속성은 ls -l에 보이지 않고 lsattr로 봅니다. |
부록 A. 스스로 확인하기
| # | 질문 | 답이 있는 곳 |
|---|---|---|
| 1 | RAID 1과 RAID 5는 각각 어떤 방식이고, RAID가 백업을 대신하지 못하는 이유는? | 1.2 |
| 2 | 클라우드 책임 공유 모델에서 어떤 모델이든 고객 몫으로 남는 것은? | 1.4 |
| 3 | 운영체제 5계층을 아래부터 순서대로 말하면? | 2.1 |
| 4 | 시스템 콜이 사용자 모드와 커널 모드 사이에서 하는 역할은? | 2.2 |
| 5 | SJF · RR · MLFQ를 선점 ↔ 비선점 축에 꽂으면? | 3.2 |
| 6 | 교착상태 4조건과 처리 4방법은? | 3.2 |
| 7 | 지역 변수 · 전역 변수 · malloc 결과는 각각 어느 메모리 영역에 있는가? | 3.3 |
| 8 | NTFS와 FAT32의 차이 세 가지는? MFT는 무엇인가? | 4.1 |
| 9 | 공유 권한과 NTFS 권한이 겹칠 때 적용되는 권한은? | 4.2 |
| 10 | umask 022에서 파일과 디렉터리의 기본 권한은? | 5.2 |
| 11 | s와 S, t와 T의 차이는? SetUID 파일을 찾는 find 명령은? | 5.3 |
| 12 | crontab 다섯 필드의 순서는? | 6.1 |
| 13 | HKCR · HKCU · HKLM에는 각각 무엇이 저장되는가? | 6.2 |
| 14 | AndroidManifest.xml과 HAL은 각각 무엇인가? | 6.3 |
부록 B. 자주 하는 실수 · 함정
| 실수 | 바로잡기 |
|---|---|
| "RAID를 구성했으니 백업은 필요 없다" | ❌ RAID는 디스크 고장 대비. 삭제 · 랜섬웨어는 그대로 복제됨 |
| "셸이 운영체제의 핵심이다" | ❌ 핵심은 커널 . 셸은 명령어 해석기 |
| "컴파일러도 운영체제 기능이다" | ❌ 운영체제 역할이 아닌 것의 단골 보기 |
| "전역 변수는 스택에 저장된다" | ❌ 전역 · 정적 변수는 데이터(BSS) 영역 . 스택은 지역 변수 · 매개변수 · 복귀 주소 |
| "umask는 777에서 빼면 된다" | ⚠️ 파일은 666 , 디렉터리는 777 에서 출발. 그리고 엄밀히는 비트 마스크 |
| "파일에 w 권한이 없으면 그 파일을 지울 수 없다" | ❌ 삭제는 디렉터리의 w + x 가 결정 (그래서 /tmp에는 Sticky bit) |
"-rwSr--r--도 root 권한으로 실행된다" | ⚠️ 대문자 S = 실행 권한 없음 → 실행 자체가 안 됨 |
| "inode에 파일 이름이 있다" | ❌ 이름은 디렉터리 엔트리 |
| "Administrators 그룹은 도메인 전체 관리자다" | ❌ 로컬 컴퓨터 범위. 도메인 관리자는 Domain Admins |
"usermod -G dev kim으로 그룹을 추가한다" | ⚠️ -a 없이 쓰면 기존 보조 그룹이 덮어써짐 |
| "SaaS면 보안은 전부 제공자 책임" | ❌ 계정 · 데이터 · 접근 권한은 언제나 고객 책임 |
부록 C. AI · NotebookLM 복습 프롬프트
이 01번 노트만 근거로 4지선다 8문제를 내줘. 비전공자 기준으로.
umask 계산, 특수권한 표기(s/S/t/T), 메모리 영역, 레지스트리 루트키, 클라우드 책임 공유는 반드시 포함해줘.
내가 답하면 채점하고, 틀린 보기가 왜 틀렸는지 노트의 판별 축(0절)과 절 번호를 근거로 설명해줘.
노트에 없는 내용은 "노트에 없음"이라고 말해줘.
LangTailor