본문 바로가기
일상/IT자격증

[리눅스마스터 1급] 2501회차 실기 기출 문제 복기 (답안 기준)

by YOONAYEON 2025. 10. 26.

 

리눅스마스터 1급 2501회차 실기 답안 기준으로 개념 정리를 해보았습니다.

(+ 시험 봤던 기억을 떠올리며...)

 

아래 블로그에서 답안을 기반으로 문제 복기해둔 것이 있으니 참고하세요!

https://developer-yr.tistory.com/27

 

[단답식]

1번. 사용자 계정 관련 파일

/etc/passwd
로그인할 때 필요한 UID, GID, 홈디렉터리 등 사용자 계정 정보 포함
/etc/shadow
사용자 패스워드 암호화한 값 및 패스워드 속성값 담고 있는 파일
/etc/group
그룹에 속한 사용자 관리 파일
/etc/gshadow
사용자 그룹의 암호화된 패스워드 정보
/etc/skel
사용자 생성 시 사용자의 홈디렉터리에 기본으로 제공할 파일 포함
/etc/login.defs
로그인 수행 시 기본 정책 설정을 위한 환경설정 기재된 파일
/etc/default/useradd
useradd명령 사용 시 사용되는 자동 옵션값 설정이 저장된 환경 파일

예를 들어, useradd 명령 실행 시
1. /etc/default/useradd 읽어서 세부 설정 적용
2. /etc/login.defs 읽어서 보안, 정책성 설정 내용 적용
3. /etc/skel 폴더 내용이 사용자의 홈 디렉토리에 복사됨

 

2번. 심볼릭 링크 및 dd명령어

# ln -s [기존 디렉터리] [만들 디렉터리]

dd 명령어: 지정한 장치를 지정한 형식으로 변환하는 명령어
# dd if=a.txt of=b.txt conv=ucase (순서 상관없음)
# man dd 실행 후 /upper 로 검색 시

각 CONV 기호가 뜻하는 옵션이 나와 있음

 

3번.

# history 10 // 최근 작성한 명령어 10개 확인
# nice -n -10 bash // bash 프로세스 우선순위 기본값에 -10 적용
# nice --10 bash // 이렇게도 가능
# renice -5 -p 1234 // PID가 1234인 프로세스의 nice 값 -5로 지정

# crontabl -l // crontab 설정 출력
# crontab -eu [사용자] // 사용자의 crontab 설정 편집
# crontab -ru [사용자] // 사용자의 crontab 설정 삭제

4번. 패키지 관리 명령어 (rpm → yum → dnf)
# rpm -e --nodeps

의존성 무시하고 패키지 삭제

삭제라는 단어 보고 메뉴얼에서 erase 를 검색했고, --nodeps 까지 한번에 보여주니 완전 땡큐였다

{ } 중괄호는 필수지만 여러 선택지 중 하나를 반드시 골라야 하는 항목이고

[ ] 대괄호는 선택적인 항목이라는 뜻이다


# dnf repolist --disabled

비활성된 리포지토리 목록 출력

보기에 레포지토리 어쩌구 있어서 그걸로 검색해서 어떻게 때려맞췄던 거!

5번. 커널 컴파일 순서
# uname -r // 커널 버전 확인

//커널 환경설정 전 지우기
# make mrproper // 기본 오브젝트파일, config파일, 다양한 백업 파일 모두 제거
# make clean // 커널 환경설정 제외한 대부분의 파일 모두 제거
# make distclean // mrproper 이후 추가 백업 및 패치 파일도 모두 제거

//원하는 커널의 기능을 활성화하거나 비활성화 환다
# make config              // 텍스트 기반 환경설정 도구
# make menuconfig // 텍스트 기반 메뉴,목록,다이얼로그를 통한 환경설정 도구
# make nconfig         // 좀 더 향상된 텍스트기반 컬러메뉴
# make xconfig          // X윈도우 환경의 QT기반 환경설정 도구
# make gconfig        // X윈도우 환경의 GTK+ 기반 환경설정 도구

# make bzImage      // 커널 이미지 생성 위해 컴파일
(bzImage : bzip2 압축 / zImage: gzip 압축)
# make modules     // 커널에서 사용할 모듈 컴파일
# make install          // 컴파일 완료된 모듈 설치
# make modules_install // 커널 이미 복사, 부트로더 설정 등 최종 커널 설치

 

6번. LVM 생성 (PV → VG LV 순으로 구성)

# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
3개의 파티션을 물리적 볼륨으로 생성

# vgcreate lvm0 /dev/sdb1 /dev/sdc1
/dev/sdb1과 /dev/sdc1의 PV를 'lvm0' 이라는 볼륨 그룹으로 생성

 

# lvcreate -L 6GB -n ldata1 lvm0
lvm0 이라는 볼륨 그룹 안에 크기 6GB의 'ldata1' 이라는 논리 볼륨을 생성

 

# vgextend lvm0 /dev/sdd1
lvm0 볼륨그룹에 새 물리 볼륨 /dev/sdd1를 추가해서 저장 공간 확장

vgcreate 매뉴얼의 SEE ALSO 단락에 보면 확장이라는 단어랑 어울리는 비슷한 명령어가 있음

#man vgextend로 다시 확인해보면

오 물리적 볼륨을 추가한다고 하니 이 명령어가 맞군! 하고 답안 적으면 됨

 

7번. /etc/rsyslog.conf 파일
*.=emerg :omusrmsg:*
emerg레벨의 모든 로그 메시지를 모든 사용자에게 출력한다

cron.*;cron.!=notice @192.168.12.22
cron 서비스의 notice레벨 로그만 제외하고 모두 UDP프로토콜을 이용해서 192.168.12.22 호스트로 메시지를 전달한다

8번.
# tail         // 파일의 끝부분을 출력하는 명령어. 기본 10줄 출력
# tail -f    // follow옵션. 파일이 변경되는 실시간 내용 출력
# tail -f /var/log/secure // 인증 및 권한 관련 모든 로그 출력
# tail -f /var/log/wtmp   // 시스템 부팅 기록 및 모든 로그인 기록 출력
# last root       // root 사용자의 로그인 기록 확인
# lastb user    // user 사용자의 로그인 실패 기록 확인

# lastb -3 user // user 사용자의 가장 최근 로그인 실패 기록 3개 출력

# lastlog -u user // user 사용자의 마지막 로그인 기록 확인

9번.
# visudo     // 일반사용자가 root권한으로 실행하기 위한 설정파일을 편집하는 명령어
# sudo        // 일반 사용자에게 관리자 명령 실행을 허용하는 명령어

10번. 백업 도구
1. tar 명령어
# tar -cvzf test.tar.gz /path/to/dir
-c: 아카이브 생성
-v: 자세히 출력
-f: 파일명 지정
z: gz으로 압축
-j: bz2 형식으로 압축

# tar -xvzf test.tar.gz
# tar -xvjf test.tar.bz2
-x: 아카이브 파일 추출

# tar -g snapshot -cvfp level0.tar /path/to/dir
# tar -g snapshot -cvfp level1.tar /path/to/dir
# tar -g snapshot -cvfp level2.tar /path/to/dir
-g: 변경된 파일 및 디렉터리 정보를 스냅샷으로 보관

-p: 파일의 권한(퍼미션) 정보를 그대로 보존

(증분백업 시 사용, 스냅샷을 이용해 변경된 사항만 파일 생성)

// 백업한 순서대로 복원
# tar -xvf level0.tar -C [복원대상 지정]
# tar -xvf level1.tar -C /
# tar -xvf level2.tar -C /

2. dump ↔ restore 명령어 (주로 파티션 단위 백업)
# dump -0 -f backup.dump /dev/hda7
/dev/sd7 전체 백업하여 backup.dump를 생성한다 (1~9부터는 부분 백업)

# dump -0f   /dev/nst0    /home
디렉터리 전체를 /dev/nst0 장치에 백업

# restore -rf  backup.dump // 파일 복원
-i : 대화모드를 통하여 복원 파일 지정
-f : 복원할 파일 지정 (장치도 가능)
-r : 파일시스템을 복원

 

3. cpio 명령어: 아카이브 파일 복사 또는 파일 추출

-o: copy-out모드로 실행

-i: copy-in모드로 실행

-v: 처리 중인 파일 목록 출력

 

# find /home | cpio -ov > home.cpio

/home 디렉터리 경로의 모든 파일을 home.cpio로 생성한다

 

# cpio -iv < home.cpio

home.cpio에서 파일들을 추출한다


4. rsync 명령어: 네트워크로 연결된 서버 파일 동기화
-a: 아카이브 모드로 동작
-v: 파일 복사과정에 대한 상세한 정보 출력
-z: 파일 전송 시 데이터를 압축해서 보낸다
-r: 지정한 디렉터리의 모든 파일 및 하위 디렉터리 포함
-l: 파일에 대한 링크를 그대로 보존하여 복사

# rsync -avz  /home   nayeon/public_html/
/home의 모든 파일들을 nayeon호스트의 public_html에 복사한다

 

[작업식]

11번. 아파치 웹서버 도메인 설정

# vi /etc/httpd/conf/httpd.conf

Listen 8080                                            // 아파치 웹서버가 사용할 tcp포트 지정

ServerName www.ihd.or.kr:8080 // 서버 호스트 이름 지정

ServerAdmin kait@ihd.or.kr           // 서버 관리자 이메일 주소 지정

DocumentRoot "/etc/apache/html" // 웹문서가 저장되는 기본 디렉터리 경로 지정

 

12번. 삼바 서버에서 웹 디렉터리 공유 설정

# vi /etc/samba/smb.conf

[web]  // 윈도우에서 접근할 때 보이는 폴더 이름

comment = Web Directory  // 공유폴더에 대한 간단한 설명

path = /etc/apache/html    // 공유 디렉터리 절대 경로

valid users = kaitman ihdgirl // 접근 가능한 사용자

write list = kaitman  // 쓰기 가능한 사용자

 

13번. sendmail 메일서비스 서버 설정

# m4 sendmail.mc > sendmail.cf

m4 유틸리티 명령으로 설정보조파일로부터 sendmail의 기본 설정파일(sendmail.cf)을 생성한다

 

// 메일서버에 접속하는 호스트 접근 제어

# vi /etc/mail/access

[정책대상]    RELAY // 허용

[IP주소]        DISCARD //거부

[메일주소]    OK  //조회 실패 시에도 허용

[도메인명]    REJECT // 거부 후 메시지 전송

# makemap hash /etc/mail/access < /etc/mail/virtusertable 적용

 

// 특정 계정으로 수신한 이메일을 다른 계정으로 전달

// 보통 여러 사람에게 전달할 때 사용

# vi /etc/aliases

[수신계정]:  [전달계정]

webmaster: ihduser, kaituser //webmaster계정으로 오는 메일을 여러 사용자에게 전달

admin: :include:/etc/mail_admin  //사용자 이름이 저장된 파일 설정

# newaliases 명령으로 적용

 

 // 가상 메일 계정으로 들어오는 메일을 특정 사용자로 전달하는 설정

# vi /etc/mail/virtusertable

[가상 메일주소]  [실제 메일주소]

info@example.com   user1    // info@example.com으로 온 메일은 서버의 user1 계정으로 전달

@ihd.org     ihdgirl@ihd.or.kr  //@ihd.org도메인으로 들어오는 메일을 계정으로 전달

# makemap hash /etc/mailvirtusertable < /etc/mail/virtusertable 적용

 

/etc/aliases 파일은 로컬 사용자 기반

/etc/mail/virtusertable 파일은 도메인 기반

 

14번. DNS서버의 zone파일 설정

zone파일: 도메인 이름에 대한 IP주소 변환 시 사용하는 파일

reverse zone파일: IP주소에 대한 도메인 조회 시 참조하는 파일

 

# vi /etc/named.conf

options { ~ };  // 전체 서버에 적용되는 기본 설정

logging { ~ }; 

 

// 특정 도메인에 대한 개별 설정

zone [도메인명] IN {

   type [master|slave|hint]  //1차 네임서버 | 2차 네임서버 | 루트도메인

   file "named.ca"    //zone파일 지정

};

zone "5.168.192.in-addr-arpa" {   //192.168.5.13 대역의 리버스 존

  type master;

  file "/etc/bind/5.168.192.in-addr.arpa.db"

};

 

# vi /etc/bind/5.168.192.in-addr.arpa.db

$TTL 1D  // 캐시보관시간 지정 (기본 초단위, W, D, M 단위 설정 가능)

@  IN  SOA  ns.kait.or.kr.  ihdman.kait.or.kr (

    ;Serial

    ;Refresh

    ;Retry

    ;Expire

    ;Minimum

)

IN NS ns.kait.or.kr.  // 담당 네임서버

13 IN PTR kait.or.kr. // IP 마지막 옥텟이 13인 패킷이 들어오면 해당 도메인 반환

 

15번. DHCP서버 설정 파일

# vi /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0//DHCP서버가 관리할 네트워크 범위

range 192.168.10 192.168.10.200;   //클라이언트에게 자동 배포할 IP범위

range dynamic-bootp; // dhcp클라이언트와 bootp 클라이언트를 함께 지원

option domain-name-servers 192.168.12.254; // 네임서버 지정

option domain-name  "ihd.or.kr"// 도메인 이름 지정

option routers 192.168.12.254// 게이트웨이 주소 지정

default-lease-time 7200; // 임대요청 만료시간 초단위 지정

max-lease-time 7200// 클라이언트가 사용할 IP 최대 시간 초단위 지정}

 

16번. iptables NAT테이블 설정

# iptables -t nat -L PREROUTING

현재 NAT테이블에 설정된 PREROUTING 체인 규칙을 확인

 

# iptables -t nat -F POSTROUTING

NAT테이블의 POSTROUTING 체인 규칙을 초기화(Flush) 한다

 

# iptables -A POSTROUTING -o eth0 -j MASQUERADE

NAT테이블에 POSTROUTING 체인 정책을 추가한다.

eth0 네트워크 인터페이스를 통해 나가는 패킷에만 적용한다.출발지 주소의 IP를 바꿔주는 NAT방식

 

 

[지난 회차 복기 후기]

지금 보니 아쉽게 틀린 게 더 많아 보인다ㅠㅠ

좀만 더 외우고 공부할껄.. 이번에는 각 서버 별 설정 파일 키워드는 다 외우고 들어가야지 !