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

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

by YOONAYEON 2025. 11. 1.

리눅스마스터 1급 2차 2402회차 실기 문제 개념 정리용으로 적어본다.

대체 문제 공개 왜안하는지 불편해죽겠다ㅠ

 

이번에도 역시 아래 블로그에서 복기해둔 문제를 보고 풀어봤으니 참고하세요!

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

 

 

[단답식]

1. 사용자 계정

passwd 명령어: 간단한 계정 잠금/해제, 비밀번호 관리

chage 명령어: 사용자 비밀번호 및 계정 상태 관리

usermod 명령어: 사용자 계정의 속성 변경

 -L : 계정 잠금

 -e 2024-12-31 : 계정 만료일 지정 (이미 잠금상태라면 날짜 바꾸어도 잠금상태 유지됨)

 -f 3 : 계정 만료 후 3일간 로그인 불가 (inactive days 비활성화 기간 지정)

 

2. 스왑 파일 만들기

# dd  if=/dev/zero  of=/swapfile  bs=1K  count=1024000

무한한 0을 출력하는 특수한 장치 파일

출력파일의 경로 지정

데이터를 읽고쓰는 블록사이즈 단위크기 (K, M, G.. 바이트 안써도됨)

  파일크기 (지정한 블록수만큼 복사)

      1GB 짜리의 스왑파일은 1KB 블록을 1024000만큼 복사해야 만들어짐

      1000000KB=1GB 여서 count=1000000 도 가능하다

 

# mkswap /swapfile    //스왑영역 설정

# swapon /swapfile    //스왑영역 활성화

swapon 은 이미 알고있는 명령어여서 관련 다른 명령어 찾아서 mkswap 맞춤

 

3. 프로세스 우선순위

# nice -n -39 bash   //bash의 우선순위를 -39로 지정

  (이 말도안되는 nice값은 대체 뭔지 모르겠네)

# renice -n -20 -p 1222 // 1222번 프로세스의 우선순위를 -20 으로 변경

 

4. yum 명령어

# yum search vim // vim패키지 검색

# yum repolist // 현재 활성화된 저장소 목록 확인

# yum --enablerepo=powertools // 저장소 활성화 (일시적)

# yum config-manager --set-enabled powertools // 영구적으로 활성화

# yum install curl  //curl 패키지 설치

위 명령어들 dnf와 그대로 치환 가능

 

5번. 

# tar -xvfJ  linux.tar.xz   // 확장자가 xz인 파일 압축 해제하며 상세히 출력

.gz → gzip 압축으로 -z 옵션 사용.bz2   bzip2 압축으로 -j 옵션 사용.xz →  XZ 압축으로 -J 옵션 사용

 

// 커널 컴파일 전 커널 기능 설정

# make menuconfig  // 메뉴 텍스트 기반

# make xconfig  // X윈도우 QT기반

# make gconfig // X윈도우 GTK+기반

 

# make bzImage // 커널 이미지 빌드

 

# make modules // 모듈 컴파일

# make install //모듈 설치

# make modules_install //최종 커널 설치

# uname -r  // 커널 버전 출력

 

6번.

# vgscan

# lvscan

# pvscan

# lvcreate -L [볼륨크기] -n [볼륨이름] [소속될 VG 이름]

 

7번. /etc/rsyslog.conf 파일 문제인듯

rsyslogd를 통한 로그 관리

# vi /etc/rsyslog.conf

  mail.debug  /var/log/mail.log

  *.cirt;kern.none  @@192.168..5.13

  원격서버 전송 시에 UDP 사용하면 @ 붙여야 하고

  TCP 사용하면 @@IP 임

 

8번. 주요 로그파일

# logger "점검 완료"  // 단순 메시지 기록

사용자가 임의로 로그 메시지를 시스템 로그에 남기는 도구

/var/log/messages 또는 /var/log/syslog에 기록됨

 

# logger -p mail.debug "디버그 메시지 테스트"

facility와 priority 지정

 

/var/log/messages   : 시스템의 일반 및 오류 관련 메시지 (대표적인 시스템 로그파일)

/var/log/secure : 로그인,로그아웃, sudo사용, 인증 실패 등 보안 관련 로그

/var/log/maillog : 메일서버 관련 로그

/var/log/dmesg : 디바이스/커널 부팅 메시지 (dmesg)

/var/log/boot.log : 부팅 시 서비스 시작/실패 내역

/var/log/wtmp : 로그인 및 로그아웃 기록 (last)

/var/log/btmp : 로그인 실패 기록 (lastb)

/var/log/lastlog : 각 사용자의 마지막 로그인 기록 (lastlog)

 

9번.

# ssh-keygen  // SSH 공개키, 개인키 쌍 생성

공개키는 접속할 서버에 넣고 개인키는 로컬에 보관

 

# ssh-copy-id  사용자@원격서버 // 생성한 공개키를 원격 서버에 추가

결과적으로 비밀번호 입력 없이 SSH접속 가능

 

10번. 

# dump -l 0 -f home.xdump  /home

 -l : 한번에 연속으로 백업할 블록 수 지정

 -l 0 : 블록수 제한없음. 한번에 가능한 최대 블록수만큼 연속 기록

 -f [파일명] : 백업 파일 지정

 /home : 백업할 파일 시스템

 

# restore -rf home.xdump  /home

 -r : 복원 (생략가능)

 -f [파일명] : 백업 파일 지정

 /home : 백업파일 가져올 위치 지정

 

[작업식]

11번. 아파치 서버 - 사용자별 홈페이지 구성

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

LoadModule userdir_module modules/mod_userdir.so // 사용자별 개인 웹사이트 디렉터리를 사용할 수 있게 해주는 모듈

// 리눅스 서버에 여러 사용자가 있을 때 각자 자기 홈디렉터리 밑에 있는 public_html 폴더를 웹으로 공개할 수 있게 해주는 기능

 

# vi /etc/httpd/conf/extra/httpd-userdir.conf // 개인 사용자의 홈 디렉터리를 설정하는 파일

// 사용자별 홈페이지의 사용여부 결정

UserDir disabled // 사용하지 않는다

UserDir disabled [계정명]  // 특정 사용자만 제외

UserDir [폴더명] // 웹페이지를 저장할 기본 경로 지정, 기본값은 public_html

/home/사용자명/public_html 디렉터리에 웹문서 등을 저장한다

 

아파치를 패키지 관리자를 이용하여 설치하면,

시스템의 디렉터리 특징에 따라 아파치 관련 파일들이 저장된다

 

아파치를 소스코드 컴파일 방식으로 설치하면,

/usr/local/apache 하위에 관련 파일이 생성된다

 

# vi /usr/local/apache/conf/extra/httpd-userdir.conf

아파치를 소스에서 설치했을 때의 기본 UserDir 설정파일 경로

 

# /usr/local/apache/bin/apachectl restart  // 아파치 데몬 재시작 (소스 설치 시)

# systemctl restart httpd  // 아파치 재시작 (패키지로 설치 시)

 

아파치 설정 파일이

/etc/httpd/conf/httpd.conf 에 있으면 → systemctl restart httpd

/usr/local/apache/conf/httpd.conf 에 있으면 → /usr/local/apache/bin/apachectl restart

 

12번. FTP 서버

💡 chroot?

 사용자의 홈디렉터리를 루트(/)처럼 제한해서 서버 내 다른 디렉터리 접근을 막는 기능

 원래는 사용자가 홈디렉터리에 쓰기가 가능하면 chroot를 하지 못했음

 

# vi /etc/vsftpd/vsftpd.conf

annoymous_enable=YES  // 익명 사용자의 접속을 허가

chroot_local_user=YES  // 접속한 사용자의 홈디렉터리를 최상위 디렉터리가 되도록 설정allow_writable_chroot=YES //

 사용자의 홈디렉터리가 쓰기 가능이어도 chroot 허용

→ 로컬 사용자 홈디렉터리 밖으로 못 나가고, 홈디렉터리 안에서 파일 write 가능

 

# vi /etc/vsftpd/ftpusers

FTP서비스에 접근할 수 없는 사용자 지정

 

# vi /etc/vsftpd/user_list

주 설정파일 설정 내용에 따라 다르게 동작

userlist_deny=YES 로 설정 시 user_list에 등록된 사용자는 FTP 접근 불가 (Default)

userlist_deny=NO 로 설정 시 user_list에 등록된 사용자만 FTP 허용

 

기본 구성은 거부된 사용자에 대해서도 ftpusers 파일 확인함

 

13번. sendmail 파일 적용 명령어

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf  // 보조파일(.mc)로 설정파일(.cf) 생성

# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable // 가상계정파일 적용

# newaliases 또는 sendmail -bi  // 특정 계정으로 수신한 이메일을 다른 계정으로 전달하는 파일 적용

# makemap hash /etc/mail/access < /etc/mail/access // 메일서버에 접근하는 호스트 접근제어파일 적용

 

14번. DNS zone파일

zone "ihd.or.kr" IN {

   type master;

   file "ihd.zone";

};

 

zone "5.168.192.in-addr-arpa" {

   type master;

   file "ihd.rev"

};

 

15번. DHCP 서버

# vi /etc/dhcpd/dhcpd.conf

option routers 192.168.12.1;  // 게이트웨이 주소 지정

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

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

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

option broadcast-address 192.168.12.255; // 브로드캐스팅 주소 지정

 

16번.

# iptables -t nat -L POSTROUTING // POSTROUTING 체인의 규칙 확인

# iptables -t nat -F PREROUTING  // PREROUTING 체인의 규칙 초기화

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100

// 외부에서 들어오는 TCP 프로토콜 80번 포트 요청을 내부서버  192.168.1.100 으로 전달