LFCS 문제 해석과 막혔을 때 찾는 순서

문제 요구사항을 최종 상태로 번역하고 man page와 로그로 해결 경로를 찾는 방법


막혔을 때 무작정 명령을 바꾸지 않는다. 먼저 문제를 모르나, 명령을 모르나, 설정했는데 실패하나를 구분하면 탐색 범위가 줄어든다.

작성·검증 상태: AI가 구조화와 초안 작성을 보조했다. 시험 중 허용 자료의 경계는 2026-08-13 공식 지침을 기준으로 하며, 자세한 영문 표현과 탐색법은 영문 요구사항과 로컬 문서에서 이어진다.

1. 문제를 여섯 칸으로 분해한다

문장에서 다음 항목을 먼저 뽑는다.

호스트: 어느 시스템에서 수행하는가?
대상: 무엇을 바꾸는가?
동작: 생성·설정·복구·허용 중 무엇인가?
조건: 사용자·권한·주소·크기·시간은 무엇인가?
지속성: 지금만 필요한가, 재부팅 후에도 남아야 하는가?
검증: 최종적으로 어떤 출력이나 동작이 보여야 하는가?

예시:

health-check.service를 만들고 lfcsuser로 실행한다.
실패하면 다시 시작하며 부팅 시 자동으로 시작해야 한다.
요구사항필요한 상태
대상 host현재 terminal과 hostname 재확인
서비스 생성.service unit
지정 사용자User=lfcsuser
실행 프로그램ExecStart=
실패 시 재시작Restart=on-failure
현재 실행start 또는 enable --now
부팅 시 실행[Install]과 enable
완료 검증unit 문법, active·enabled, journal, 실제 process

문장의 단어를 명령으로 바로 바꾸기보다 요구된 최종 상태로 먼저 번역한다.

2. 현재 막힘을 분류한다

막힘대표 증상다음 행동
문제 뜻을 모름무엇을 만들어야 할지 모름여섯 칸으로 분해하고 관련 개념을 찾음
명령 이름을 모름어떤 도구가 담당하는지 모름man -k, apropos
옵션을 모름명령은 알지만 인자가 기억나지 않음--help, man 내부 검색
설정 형식을 모름파일 위치·지시어를 모름기존 설정, section별 man page, /usr/share/doc
실행이 실패함명령·서비스가 오류를 반환문법 → 상태 → 로그 → 권한 → 포트 → 보안
완료 여부를 모름설정은 했지만 정답인지 불확실상태·동작·지속성·부수 효과 검증

3. 명령 이름을 모를 때

키워드로 설명과 man page를 찾는다.

man -k 'logical volume'
man -k 'access control list'
apropos -s 8 firewall
apropos -s 8 filesystem

관련 명령을 찾은 뒤 범위를 좁힌다.

command --help
man command

설치 여부 때문에 man -k 결과가 부족할 수 있다. 이미 설치된 패키지와 /usr/share/doc도 함께 본다.

rpm -ql nginx | grep -E 'conf|example|README'
find /usr/share/doc -maxdepth 2 -iname '*nginx*' -print

Debian 계열에서는 dpkg -L로 패키지 파일 목록을 본다.

4. 옵션을 모를 때

man page 전체를 처음부터 읽기보다 요구 키워드로 좁힌다.

usermod --help | grep -i group
lvextend --help | grep -i size
nmcli connection modify --help

man 내부에서는 /로 검색한다.

/append
/resizefs
/permanent

다음 결과는 n, 이전 결과는 N으로 이동한다. 예제만 복사하지 말고 현재 대상, 단위와 기본값을 확인한다.

5. 설정 파일 형식을 모를 때

순서는 다음과 같다.

현재 effective 설정
→ 비슷한 기존 설정
→ 설정 파일 man page
→ 배포판 설치 문서
→ 문법 검사

systemd 예:

systemctl cat sshd.service
man 5 systemd.service
man 5 systemd.unit
man 5 systemd.exec
man 7 systemd.directives
systemd-analyze verify /etc/systemd/system/example.service

어느 man page에 지시어가 있는지 모르겠다면 systemd.directives에서 이름을 검색한다.

웹 서버·SSH처럼 전용 문법 검사 명령이 있으면 reload 전에 사용한다.

sshd -t
nginx -t
haproxy -c -f /etc/haproxy/haproxy.cfg

6. 설정했는데 작동하지 않을 때

공통 진단 순서:

1. 설정 문법
2. 서비스와 프로세스 상태
3. 같은 시간대의 로그
4. 파일·상위 디렉터리 권한
5. listening socket과 실제 요청
6. SELinux·방화벽
7. 영구 설정과 재적용

대표 명령:

systemctl status example.service --no-pager -l
journalctl -u example.service -b --no-pager
systemctl cat example.service
namei -l /path/to/file
ss -lntup
getenforce
ausearch -m AVC -ts recent -i
firewall-cmd --list-all

Permission denied를 만나도 곧바로 chmod 777을 사용하지 않는다. 어느 사용자로 실행되는지, 경로의 각 디렉터리에 진입 권한이 있는지, SELinux가 거부했는지 나눈다.

7. 영역별 최소 진단 흐름

네트워크

link → address → route → DNS → socket → application
ip -br link
ip -br address
ip route
ip route get 192.0.2.10
getent hosts example.com
ss -lntup
curl -v http://127.0.0.1:8080

스토리지

device → partition/LVM → filesystem → mount → capacity/inode → application path
lsblk -f
pvs; vgs; lvs
blkid
findmnt
df -hT
df -i

사용자·권한

account → group → owner/mode → ACL → SELinux → 실제 사용자 동작
getent passwd lfcsuser
id lfcsuser
namei -l /srv/project/file
getfacl /srv/project/file
ls -lZ /srv/project/file
runuser -u lfcsuser -- test -r /srv/project/file

systemd

systemd-analyze verify /etc/systemd/system/example.service
systemctl daemon-reload
systemctl enable --now example.service
systemctl is-enabled example.service
systemctl is-active example.service
journalctl -u example.service -b --no-pager

daemon-reload는 unit을 다시 읽지만 서비스를 자동 재시작하지 않는다. enable과 start도 서로 다른 상태다.

8. 완료 검증 네 층

층확인 질문예시
상태설정값·소유권·주소가 요구와 같은가?stat, getent, ip, findmnt
동작실제 사용자·클라이언트가 사용할 수 있는가?runuser, curl, 파일 생성
지속성새 session·재적용·부팅 뒤에도 남는가?profile 새 login, fstab, enabled 상태
부수 효과기존 그룹·route·서비스를 망가뜨리지 않았는가?변경 전후 diff와 기준 상태 비교

모든 문제에 네 층이 전부 필요한 것은 아니지만, 문제의 지속적으로, 부팅 시, 실제로 접근, 기존 설정 유지 같은 표현이 어떤 검증을 요구하는지 확인한다.

9. 시간 제한을 두는 방법

연습할 때 다음 제한을 사용한다.

1분: host·대상·동작·조건·지속성·검증 분해
2분: --help, man -k, 기존 설정에서 출발점 찾기
4분: 시작 방법도 못 찾으면 표시하고 다음 문제로 이동
8~12분: 설정과 검증 완료

한 문제에서 문서 전체를 읽지 않는다. 해결하지 못한 문제는 넘어간 뒤 어느 층에서 막혔는지 기록하고 다시 푼다.

시험장용 압축판

문제 뜻 모름     → host·대상·동작·조건·지속성·검증
명령 이름 모름   → man -k, apropos
옵션 모름        → command --help, man 내부 /검색
설정 형식 모름   → 기존 설정, man 5, /usr/share/doc, 문법 검사
실행 실패        → 상태, 로그, 권한, 포트, SELinux·방화벽
완료 여부        → 상태 + 실제 동작 + 필요한 영속성 + 부수 효과
4분간 시작 못 함 → 표시하고 다음 문제

참고 자료