상세 컨텐츠

본문 제목

RHCSA v9 [2025년 1월] 취득 후기 및 주의사항

카테고리 없음

by mandaLin 2025. 1. 26. 01:06

본문

 

2025년 1월 13일, RHCSA v9을 취득했다.

준비 기간 5일,

사전 지식은 2년 전 리눅스 기초 수업을 1개월 들었던 정도였다.

 

시험 준비 기간이 왜 이렇게 짧았냐 하면...

사실 1년 전 신청을 해 두고 까맣게 잊어서... 응시 만료 기간을 코앞에 두고 벼락치기를 할 수밖에 없었다.

(떨어지면 무료 재시험도 볼 수 없는 상황이라 말 그대로 진퇴양난...)

 

점수는 놀랍게도 만점, 발등에 불이 붙어 치열하게 준비한 탓인 것 같다.

혹시나 나처럼 급하게 시험을 준비하는 분들이 있을까봐 내가 참고하고 정리한 자료를 공유드린다.

응시료도 비싼데 일단 무조건 붙어야 하지 않겠는가!

 

 

내가 짧은 기간 준비해서 만점을 받을 수 있었던 3가지 관건은,

 

1. 암기+실습 무.조.건 병행 (레드햇 개발자 라이선스(1년) 등록하고 VirtualBox에 Red hat linux 9.5 설치함)

   (실습 횟수는 다다익선이다. 난 하룻밤 새워 두 번 했다. 권하지 않는다. 그냥 마지막 3일 잡고 하루에 한 번씩 3번만 하자.)

2. 인터넷상의 모든 덤프를 취합하고 나만의 덤프로 직접 제작 (정답 미포함/포함 버전 모두 직접 제작)

   (각 문제의 의도-과정-결과가 자기 것이 되지 않으면 아무리 많이 읽어도 실수가 나온다.)

3. 실제 시험에서 함정에 빠지지 않게 만든 2가지 습관

    (1) 경로 찾을 때 tab 키로 차근차근, 돌다리 두드려보고 건너기

     ㄴ 실제 시험에서도 내가 건드리게 되는 디렉토리에 뭐가 있는지 다 꼼꼼히 확인하면서 풀었다.

    (2) man 과 --help  -list 등으로 매뉴얼과 명령어 리스트 항상 확인해 보고 입력하기

     ㄴ 너무 느리지 않냐고 걱정할 수 있는데 3시간짜리 시험에서 이렇게 차근~차근 풀고도 30분 이상 남았다.

     ㄴ 후술하겠지만 인터넷에 돌아다니는 덤프와 달랐던 부분을 이 습관으로 잘 통과했다.

    (3) 내가 문제를 잘 해결했는지 꼼꼼히 검증해 보기

     ㄴ 압축파일 잘 압축되었는지, 설치된 프로그램은 잘 작동하는지, 당장 재부팅해도 작동하는지 등.

 

 

내가 참고한 블로그 자료들

 

https://yeahro.tistory.com/21

 

[RHCSA]시험 도움된 사이트/후기

시험에 도움된 사이트 이 유튜브!! 진짜 강추이다 컨테이너 문제는 거의 그대로 풀었는데 100%가 나왔다 (1시간 25분) autofs는 유튜브 보면서 상상하면서 공부했다 (33분) 새로운 애플리케이션 문제

yeahro.tistory.com

 

https://maru1000.tistory.com/91

 

RHCSA v9 후기 및 추가 문제

직장에서의 필요에 의해서 RHCSA를 최근 취득했습니다. 응시 버전은 rhel 9입니다. 뱃지가 바뀐거 같네요. redhat 7만 쓰다가 9로 응시하려니 바뀐게 있어서 짧게 리뷰해 보겠습니다. 공부 방법은 시

maru1000.tistory.com

https://whitestudy.tistory.com/83

 

RHCSA 8 기출문제#1 (시작,주의 사항 )

RHCSA 를 준비 하고 취득 하기 까지 몇몇 가지 과정을 거치고 생각 해보니... 역시 자격증은 취득에 목적이 가장 높았고 막상 취득 하기 전 까지는 꽤나 좋은 자격증으로 보이는걸 알게 되었다. 막

whitestudy.tistory.com

https://www.geuni.tech/linux/rhcsa_practice

 

RHCSA 9 연습/기출문제 (EX200) | Geuni's Blog

RHCSA 9 (EX200) 시험 대비를 위한 완벽 가이드! 네트워크 설정, YUM, SELinux, LVM, podman, systemd 등 핵심 주제별 연습 문제 및 상세 해설 제공. rd.break를 이용한 root 비밀번호 복구 방법까지 완벽 정리

www.geuni.tech

https://hiheey.tistory.com/204

 

RHCSA V9

시험 관련 확인 사항은 하기 링크에서 확인https://hiheey.tistory.com/207 시험 치기 전 준비해야 할 미리 세팅해야 하는 것들은 추후 정리할 예정(cf. nfs서버, podman 사용자 권한, 그 외 사용자들 및 디렉

hiheey.tistory.com

 

이 말고도 준비하다가 궁금하거나 어려운 점은 반드시 검색해서 사전 지식을 갖추었다.

 

위 귀중한 분들의 자료를 잘 버무리고 실습하고 정리해서 다음과 같이 나만의 자료를 만들었다.

시험장에는 이것만 달달달 기억하고 들어가서 합격했다.

다만, 실제 시험에서 맞닥뜨린 돌발 이슈들을 덧붙였으니 참고하기 바란다.

 

내가 정리한 최종 자료

 

1. Node 1에서 해결하시오

 

1-1. Network 설정 (출제됨)  

  • Host Name: node1.domain250.example.com
  • IPv4 address: 172.25.250.100
  • Subnet mask 255.255.255.0
  • Gateway 172.25.250.254
  • DNS 172.25.250.254

* 나의 답안

---------------------------------------------------------------------------------

# ipv4 설정

nmcli connection modify  'Wired connection 1' ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual autoconnect yes

nmcli connection up 'Wired connection 1'

# 호스트 네임 변경

hostnamectl set-hostname node1.domain250.example.com

ip a

---------------------------------------------------------------------------------

* 문제풀이 후기

- nmcli로 해결했는데, 솔직히 직관적이고 친절한 nmtui를 권장한다. 이래저래 확인하다 시간 버린다.

- 문제에 DNS 대신 domain name 이런 식으로 나왔던 것 같다.

- ipv4.method manual, autoconnect처럼 누락하는 단어가 없도록 신경 써야 하고, 다시 up 시키는 것도 까먹어선 안 됨.

- 참고로 잘 알려진 ifconfig 명령어는 이제 공식 중단되었는지 안 먹혔다. 대신 ip로 확인하면 된다. 당황하지 말자.

---------------------------------------------------------------------------------

 

1-2. Yum Repository 설정 (출제됨)  

Congifure YUM repos with the given link

BaseOS http://content.example.com/rhel8.0/x86_64/dvd

AppStream http://content.example.com/rhel8.0/x86_64/dvd/AppStream   

 

* 나의 답안

---------------------------------------------------------------------------------

vi /etc/yum.repos.d/repos.repo

 

# 아래와 같이 입력하고 저장

[BaseOS]

name=BaseOS

baseurl=http://content.example.com/rhel9.0/x86_64/dvd/BaseOS

enabled=1

gpgcheck=0

 

[AppStream]

name=AppStream

baseurl=http://content.example.com/rhel9.0/x86_64/dvd/AppStream

enabled=1

gpgcheck=0

 

# 최종 작업

yum clean all

yum repolist -v

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- node 2에도 똑같이 출제된다. 어떤 문제든 디렉터리 경로는 외우지 말고 직접 찾아가자.

- 시험 직전 지하철에서 눈 감고 복기해 보니 내가 enabled=를 enable=로 잘못 기억하고 있었다.

- 대체로 이렇게 눈 감고 복기해 본 명령어들이 시간 절약에 효과가 컸다.

---------------------------------------------------------------------------------

 

 

1-3. SELINUX PORT (출제됨)  

비표준 포트 82에서 실행 중인 웹 서버가 서비스 제공 시 문제를 겪고 있다. 다음 조건을 충족하도록 트러블슈팅을 하라 :

  • 시스템의 웹 서버가 /var/www/html에 있는 모든 기존 HTML 파일을 제공할 수 있어야 한다. (참고: 기존 파일의 내용을 삭제하거나 수정하지 말 것)
  • 웹 서버가 포트 82로 서비스가 되도록 하라
  • 웹 서버가 시스템이 시작될 때 자동으로 시작되어야 한다.

* 나의 답안

---------------------------------------------------------------------------------

getenforce

setenforce 0

 

# 포트 추가

semanage port -l | grep http_port_t

semanage port -a -t http_port_t -p tcp 82

semanage port -l | grep http_port_t

 

#httpd 재시작

systemctl restart httpd

systemctl enable --now httpd

 

# 방화벽 추가 및 재시작

firewall-cmd --permanent --add-port=82/tcp

firewall-cmd --reload

 

setenforce 1

getenforce

 

# 검증

curl http://localhost:82

systemctl status httpd

 

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 실제 시험에서 semanage 뒤의 port를 깜빡해 한참을 헤맸다.

- httpd.conf 파일에 Listen 82 추가하라는 분도 있는데 실제 시험에서 확인해 봤더니 이미 Listen 82 적혀 있더라. 신경 끄자.

- 그냥 포트 잘 추가해서 curl 했을 때 메시지 잘 보이면 끝.

---------------------------------------------------------------------------------

 

 

1-4. 사용자 계정 생성 (출제됨)  

Create User accounts with supplementary group

- create the group named "sysadms"

- create users named "natasha" and "harry", will be the supplementry group "sysadms"

- create a user named "sarah", should have non-interactive shell and it should be not the member of "sysadms"

- password for all users should be "trootent"

- "sysadms" group has access to user add in the server

- "harry" user has access to set password for users without asking sudo password (이건 출제 안 됨, 혹시 몰라 준비)

 

* 나의 답안

---------------------------------------------------------------------------------

groupadd sysadms

 

useradd -G sysadms natasha

useradd -G sysadms harry

useradd -s /sbin/nologin sarah

 

echo "trootent" | passwd --stdin natasha  # 실제 시험에서는 불안해서 그냥 passwd username으로 함

echo "trootent" | passwd --stdin harry       # 실제 시험에서는 불안해서 그냥 passwd username으로 함

echo "trootent" | passwd --stdin sarah     # 실제 시험에서는 불안해서 그냥 passwd username으로 함

 

visudo

# 내용 추가:

# %sysadms ALL=(ALL) NOPASSWD: ALL

# harry ALL=(ALL) NOPASSWD: /usr/bin/passwd

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 마지막 줄과 비밀번호 제외하고는, 토씨 하나 안 틀리고 그대로 출제되었던 것 같다

- cat etc/passwd | tail -5 로 잘 추가되었는지 확인했다.

---------------------------------------------------------------------------------

 

 

1-5. Crontab (출제됨)    

Configure a cron job that runs every 2 minutes and executes: logger "EX200 in progress" as the user natasha.

 

* 나의 답안

---------------------------------------------------------------------------------

systemctl status crond

 

yum install -y cronie

systemctl enable --now crond

 

crontab -u natasha -e

# 추가:

# */2 * * * * logger "EX200 in progress"

 

tail -f /var/log/messages

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 위 풀이는 2분마다 한 번씩 실행되기 때문에  /var/log/messages에서 실행여부를 확인 가능하지만,

  나는 매일 03시 15분?에 실행되도록 하는 거였기 때문에 확인할 방법이 없었다. (오프라인 시험장에 시계도 없었다)

  그냥 crontab -u natasha -l 로 확인했을 때 내가 넣은 업무가 잘 적혀 있으면 자신을 믿고 넘어가야 한다.

- *(분) *(시) *(일) *(월) *(요일) <-- 이 개념은 당연히 숙달되어 있어야 한다.

---------------------------------------------------------------------------------

 

 

1-6. 협업 디렉터리 (출제됨)    

Create a collaborative Directory

- Create the Directory "/home/manager" with the following charactericstics

- Group ownership of "/home/manager" should go to "sysadms" group

- The directory should have full permission for all members of "sysadms" group but not to the other users except "root"

- Files created in future under "/home/manager" should get the same group ownership

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 디렉토리 생성

mkdir /home/manager

 

# 2. 그룹 소유권 변경

chown :sysadms /home/manager

 

# 3. 권한 설정

chmod 2770 /home/manager

 

# 4. 검증

ls -ld /home/manager

touch /home/manager/testfile

ls -l /home/manager/

---------------------------------------------------------------------------------

* 문제풀이 후기

- 다행히 문제가 똑같이 출제되었지만, 권한 설정 방법과 의미(2770 등)에 대해서는 숙지한 채로 갔다.

- 검증 꼭 하자.

---------------------------------------------------------------------------------

 

 

1-7. NTP 구성  (출제됨)    

Configure NTP

- Synchronize the of your system with the server "ntp.example.com"

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. Chrony 서비스 상태 확인 및 설치

systemctl status chronyd

yum install -y chrony

systemctl enable --now chronyd

 

# 2. NTP 서버 설정

vi /etc/chrony.conf

# 추가 또는 수정:

# server ntp.example.com iburst

 

# 3. Chrony 서비스 재시작 및 확인

systemctl restart chronyd

chronyc sources

 

# 4. 시간 동기화 설정 및 확인

timedatectl set-ntp true

timedatectl

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 실습 환경에서는 시간 동기화하는 데 좀 걸렸는데, 실제 시험 때는 금방 금방 적용되어서 무리 없이 패스.

---------------------------------------------------------------------------------

 

1-8. Autofs  (출제됨)    

autofs를 설정하여 원격 사용자의 홈 디렉터리를 아래 요구대로 자동으로 마운트되독록 하세요.

  • materials.example.com (172.25.254.254) 에는 NFS 공유 드렉토리 /rhome 있습니다. 이 파일 시스템에는 사용자 remoteuser1 대해 사전 구성된 홈 디렉터리가 포함됩니다.
  • remoteuser1의 홈 디렉터리는 materials.example.com:/rhome/remoteuser1입니다.
  • remoteuser1의 홈 디렉터리는 로컬의 /rhome 디렉토리 하위의 /rhome/remoteuser1로 자동으로 마운트 되어야 합니다.
  • 홈 디렉터리는 사용자가 쓰기 가능해야 합니다.

remoteuser1의 비밀번호는 flectrag입니다.

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. Autofs 설치 및 서비스 관리

dnf install -y autofs

systemctl enable --now autofs

systemctl status autofs

 

# 2. Autofs 구성

vi /etc/auto.master

# 추가:

# /rhome/etc/auto.rhome

 

vi /etc/auto.rhome

# 추가:

# remoteuser1  -fstype=nfs4,rw,sync  materials.example.com:/rhome/remoteuser1

 

# 3. Autofs 서비스 재시작

systemctl restart autofs

 

# 4. 검증

ls /rhome/remoteuser1

touch /rhome/remoteuser1/testfile

ls -l /rhome/remoteuser1/testfile

---------------------------------------------------------------------------------

* 문제풀이 후기

- 검증했을 때 해당 사용자가 접근하고 쓰기까지 되면 문제없다.

- 이쯤 하고 재부팅한 다음 지금까지 푼 모든 문제들 다 status로 구동 여부 체크해 봤다.

---------------------------------------------------------------------------------

 

 

1-9. 파일 찾기 (출제됨)  

Find all files and directories which is created by a user "natasha" in to this system and copy it into a "/root/natashafiles" directory

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 복사 대상 디렉터리 생성

mkdir -p /root/natashafiles

# 2. 사용자 natasha가 소유한 파일 및 디렉토리 검색 후 복사

find / -user natasha -exec cp -ap {} /root/natashafiles/ \;

# 3. 복사된 파일 확인

ls -l /root/natashafiles

---------------------------------------------------------------------------------

* 문제풀이 후기

- 복사 대상 디렉토리 무조건 먼저 만들어야 한다.

---------------------------------------------------------------------------------

 

 

1-10. 문자열 찾기 (출제됨)  

Find all strings "ich" from "/user/share/dict/words" file and copy that strings in a /root/lines file.

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 문자열 검색 및 결과 저장

grep ich /usr/share/dict/words > /root/lines

# 2. 결과 확인

cat /root/lines

---------------------------------------------------------------------------------

* 문제풀이 후기

- 너무 쉬운 문제이지만 그래도 검증은 했다. 내 성격이다.

---------------------------------------------------------------------------------

 

1-11. 아카이브 생성 (출제됨, 함정 있었음)  

/usr/local의 내용을 포함하는 tar 아카이브를 생성하고, 이를 bzip2로 압축하여 /root/backup.tar.bz2로 저장하세요.

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 아카이브 생성

tar -cvjf /root/backup.tar.bz2 /usr/local

 

# 2. 아카이브 내용 검증

tar -tvf /root/backup.tar.bz2

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 검증 안 했다면 망할 뻔한 문제. 시스템에 bzip2만 미설치되어 있었다. (다른 압축방식은 다 있음)

- bzip2가 설치되어 있지 않으면 위 명령어는 아무 의미가 없는데, 압축파일 자체는 또 생성이 돼서 착각하기 쉽다.

- 압축 풀어봐도 아무것도 없길래 출력된 메시지를 봤더니 대충 bzip2가 뭔지 모르겠다는 뜻.

- 어쩌지? 하다가 그냥 'bzip2'를 입력해 봤더니 'bzip2 없는데 설치할래?'라고 뜨길래 yes! 설치하고 대성공.

- 무작정 덤프만 외워올 것을 대비한 출제자의 꼼수인 것 같다.

---------------------------------------------------------------------------------

 

1-12. 파일 권한 (출제됨)  

Copy the file /etc/fstab to /var/tmp. Configure the permissions of /var/tmp/fstab so that:
- the file /var/tmp/fstab is owned by the root user
-  the file /var/tmp/fstab belong to the group root
-  the file /var/tmp/fstab should not be executable by anyone
-  the user "natasha" is able to read and write /var/tmp/fstab
-  the user "harry" can neither write nor read /var/tmp/fstab
-  all other users (current or future) have the ability to read /var/tmp/fstab


* 나의 답안

---------------------------------------------------------------------------------

# 1. 파일 복사

cp /etc/fstab /var/tmp/fstab

 

# 2. 기본 소유권 및 권한 설정

chown root:root /var/tmp/fstab

chmod 644 /var/tmp/fstab

 

# 3. ACL 설정

setfacl -m u:natasha:rw /var/tmp/fstab

setfacl -m u:harry:--- /var/tmp/fstab

setfacl -m o::r /var/tmp/fstab

 

# 4. 검증

ls -ld /var/tmp/fstab

getfacl /var/tmp/fstab

---------------------------------------------------------------------------------

* 문제풀이 후기

- 위 문제보다는 간단하게 출제되었던 것 같다. 그래도 다양하게 연습해 보고 가는 것이 좋다.

---------------------------------------------------------------------------------

 

 

1-13. 사용자 생성 (출제됨)  

Create a user "unilao" with UID "2334" with password as "souspolo"

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 사용자 생성

useradd -u 2334 unilao

# 2. 비밀번호 설정

echo "souspolo" | passwd --stdin unilao

# 또는

passwd unilao

# 3. 검증 및 로그인 테스트

cat /etc/passwd | tail -1

su - unilao

# 비밀번호: souspolo

---------------------------------------------------------------------------------

* 문제풀이 후기

- 학동에 있는 시험장에서 봤는데, 좀 춥고 긴장 때문에 손이 떨렸다. 그래서 오타 날까 봐 그냥 passwd로 차근차근했다.

---------------------------------------------------------------------------------

 

1-14. 패스워드 유효 기간 설정 (출제 안 됨)

Set Password Max days as 20 days

 

* 나의 답안

---------------------------------------------------------------------------------

vi /etc/login.defs

# 수정

PASS_MAX_DAYS 20

## 또는 chage -M 20 natasha

---------------------------------------------------------------------------------

 

1-15. (혹시 몰라 대비한 문제) 로그인 메시지 출력  (출제 안 됨)

Build an application rhcsa that print message when logged in as ablerate user

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 로그인 메시지 출력 스크립트 생성

vi /usr/local/bin/rhcsa

# 내용:

# #!/bin/bash

# echo "Welcome to RHCSA!"

 

chmod +x /usr/local/bin/rhcsa

 

# 2. ablerate 사용자 .bashrc 설정

vi /home/ablerate/.bashrc

# 내용:

# if [ -f /usr/local/bin/rhcsa ]; then

#     /usr/local/bin/rhcsa

# fi

 

---------------------------------------------------------------------------------

 

1-16. (혹시 몰라 대비한 문제) 특정 유저 umask 세팅 (출제됨)    

사용자 natasha가 파일과 디렉터리를 생성했을 때, 다음과 같은 권한이 설정되도록 구성하시오

  • 파일 생성 시 기본 권한: rw------- .
  • 디렉터리 생성 시 기본 권한: rwx------ .

* 나의 답안

---------------------------------------------------------------------------------

# 1. natasha 사용자 umask 설정

vi /home/natasha/.bash_profile

# 내용 추가:

# umask 077

 

# 2. 검증

su - natasha

touch testfile

ls -ld testfile

umask

---------------------------------------------------------------------------------

* 문제풀이 후기

- 혹시 몰라서 준비해 갔는데 진짜 나올 줄은 몰랐다. 실제로 umask 077는 아니었고, 좀 더 어려웠던 것 같다.

- umask 계산법이 좀 헷갈려서 계속 숫자 바꿔가면서 실험하듯이 풀었다. umask 공부하고 가는 것 추천.

---------------------------------------------------------------------------------

 

 

1-17. Container Build (출제됨)    

  • walhalla 사용자로 http://classroom/Containerfile 을(를) 다운로드하세요.
  • 이 파일의 내용을 수정하지 말고, 이미지 이름을 pdf로 하여 빌드하세요.

* 나의 답안

---------------------------------------------------------------------------------

 

# 1. Podman 서비스 활성화

systemctl enable --now podman

 

# 2. 사용자 walhalla로 컨테이너 다운로드

ssh walhalla@node

wget http://classroom/Containerfile

 

# 3. 컨테이너 이미지 빌드

podman build -t pdf .

 

# 4. 이미지 빌드 확인

podman images

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 블로그들 둘러보면 실습할 때는 Containerfile을 다운 못 받으니 vi로 직접 제작해서 연습하신 분들 있고 나도 그렇게 했다.

- 대충이라도 좋으니 실습을 해서 컨테이너 빌드하고 실행하는 과정까지는 연습해 보는 걸 추천한다.

---------------------------------------------------------------------------------

 

 

1-18. Container – rootless, systemd 등록 (출제됨)    

  • 컨테이너 이름ascii2pdf
  • 앞서 생성한 pdf 이미지를 사용하세요.
  • 수동 개입 없이 시스템 재부팅 시자동으로 서비스를 시작합니다.
  • 컨테이너 시작 시 /opt/file /incoming/opt/processed /outgoing에 자동으로 마운트하도록 서비스를 구성합니다.

* 나의 답안

---------------------------------------------------------------------------------

 

# 1. 디렉터리 생성 및 권한 설정하고 walhalla로 로그인

sudo mkdir -p /opt/file /opt/processed

sudo chown walhalla:walhalla /opt/file /opt/processed

su - walhalla

 

# 2. 컨테이너 실행

podman run -d --name ascii2pdf -v /opt/file:/incoming:Z -v /opt/processed:/outgoing:Z localhost/pdf

 

# 3. 컨테이너 상태 확인

podman ps -a

 

# 4. Systemd 유닛 파일 생성 및 저장

podman generate systemd --name ascii2pdf --files

mkdir -p ~/.config/systemd/user/

mv container-ascii2pdf.service ~/.config/systemd/user/

## 또는 mkdir -p ~/.config/systemd/user/ 먼저 하고 해당 경로로 이동한 다음 podman generate 하면 mv까지 할 필요 없다.

 

# 5. Linger 활성화

loginctl enable-linger walhalla

 

# 6. Systemd 서비스 관리

systemctl --user enable --now container-ascii2pdf.service 

 

# 7. 재부팅 후 검증

podman ps -a

---------------------------------------------------------------------------------

* 문제풀이 후기

- 재부팅했을 때 root로 podman ps -a하면 아무것도 실행이 안 되어 있고, walhalla 계정으로 podman ps -a했을 때만 해당 컨테이너가 작동 중이라면 성공이다. (rootless)

- 실제 문제로 나온 컨테이너가 나처럼 ascii2pdf라면, 마지막으로 /opt/file 에다가 아무 텍스트 파일이나 만들어 보자. 당신이 만든 텍스트 파일이 자동으로 pdf로 변환되어 /opt/processed에 들어가 있는 것이 보인다면 컨테이너는 잘 작동하고 있는 것이다.

- 솔직히 중간에 삐걱대기도 했고, 재부팅 과정에서 갑자기 daemon preparing? 한다고 1분 30초 기다리라길래 망한 줄 알고 식겁했지만, 결과적으론 만점이다. 내가 한 방법이 맞는다는 뜻 아닐까?

- 이쯤 하고 재부팅한 다음 지금까지 푼 모든 문제들 다 status로 구동 여부 체크해 봤다.

---------------------------------------------------------------------------------

 

 

2. Node 2에서 해결하시오

 

2-1. RootPassword 재설정 또는 응급 복구 진입 (root passwd 재설정 출제됨)    

 

* 나의 답안

---------------------------------------------------------------------------------

(1) passwd 재설정

재부팅 누른 후 grub menu에서 e 누르기

linux … 맨 끝에 입력 : init=/bin/bash

ctrl+x 누르기

mount -o rw,remount /

passwd root

touch /.autorelabel

exec /sbin/init

 

(2) 응급 복구 모드 (혹시 몰라 외워감)

위와 같음

linux … 맨 끝에 입력 : systemd.unit=emergency.target

ctrl+x 누르기

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 실습할 때 재부팅 직후 grub 메뉴 자체가 안 뜨는 경우가 있었는데 esc를 누르자 메뉴가 떴던 경험이 있었다.

- 실제 시험에서도 그렇게 해서 메뉴를 띄웠고, 여러 번 셧다운과 재시도 끝에 비밀번호 재설정에 성공했다. 

- 재부팅은 몰라도 셧다운(강제종료) 버튼은 무서워하는 사람도 있을 텐데, 난 이 문제 풀 때 여러 번 눌러봤다. 괜찮다.

- 이 문제 해결 못하면 아래 문제들은 풀지도 못하고 끝나는 거다. 명심하자.

---------------------------------------------------------------------------------

 

2-2. LVM- Create (출제됨)    

Create an LVM name wshare from wgroup volume group. Note the following:
PE size should be 8MB
LVM size should be 50 extents
Format with "ext4" file system and mount it under /mnt/wshare. And it should auto mount after next reboot

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. 디스크 상태 확인

lsblk

# 2. 디스크를 LVM 파티션으로 설정

fdisk /dev/sdb

# n -> p -> 1 -> Enter -> Enter -> t -> 8e -> w  ### 8e 아니었다. 리스트 확인해 보고 alias로 lvm 눌렀다.

# 3. Physical Volume 생성

pvcreate /dev/sdb1

pvdisplay

# 4. Volume Group 생성

vgcreate -s 8M wgroup /dev/sdb1

vgdisplay

# 5. Logical Volume 생성

lvcreate -l 50 -n wshare wgroup

lvdisplay

# 6. 파일 시스템 생성

mkfs.ext4 /dev/wgroup/wshare

# 7. 마운트 및 자동 마운트 설정

mkdir /mnt/wshare

vi /etc/fstab

# 추가:

# /dev/wgroup/wshare   /mnt/wshare    ext4    defaults   0 0

mount -a

lsblk

df -h

---------------------------------------------------------------------------------

* 문제풀이 후기

- 매뉴얼과 리스트 꼭 확인해보고 입력하는 습관이 큰 몫을 했다.

- 다른 모든 덤프에 적혀 있듯 lvm 번호가 당연히 8e일 줄 알고 누르려다가 혹시나 해서 리스트를 봤는데...

- 번호가 전부 다르게 매겨져 있었고 lvm, swap 같은 상용 항목은 번호 찾는 대신 alias로 쓸 수 있었다.

- 디스크 잘못 만들었을 때 다시 되돌리는 방법을 숙지 안 한 채로 갔기 때문에... 이거 몰랐으면 아마 감점이었다.

- 당신의 시험에서는 또 어떻게 나올지 장담할 수 없다. 아무쪼록 잘 확인하면서 풀기를 바란다.

---------------------------------------------------------------------------------

 

 

2-3. LVM – Swap Partition (출제됨)    

Create a swap partition of 400 MB and make it available permanent

# 1. 디스크 상태 확인

lsblk

 

# 2. Swap 파티션 생성

fdisk /dev/sdb

# n -> p -> 2 -> Enter -> +400M -> t -> 82 -> w ### 마찬가지로 82 아니었다. 리스트 확인해 보고 alias로 swap 눌렀다.

 

# 3. Swap 초기화 및 활성화

mkswap /dev/sdb2

swapon /dev/sdb2

 

# 4. 자동 마운트 설정

vi /etc/fstab

# 추가:

# /dev/sdb2    swap    swap   defaults  0 0

mount -a

 

# 5. 상태 확인

swapon --show

free -m

 

# 6. 재부팅 후 검증

reboot

lsblk

free -m

---------------------------------------------------------------------------------

* 문제풀이 후기

- 논리 볼륨과 swap 만드는 과정의 차이를 실습을 통해 잘 파악해야 헷갈리지 않는다.

---------------------------------------------------------------------------------

 

 

2-4. resize LVM

 

(1) Node 2에서 다음 조건을 만족하도록 LVM 크기를 조정하세요: (출제 안 됨)


* 나의 답안

---------------------------------------------------------------------------------

# 1. Logical Volume 및 파일 시스템 상태 확인

blkid /dev/mapper/vo

lvs

df -h

 

# 2. Logical Volume 축소

umount /mnt/vo

e2fsck -f /dev/mapper/vo

resize2fs /dev/mapper/vo 280M

lvreduce -L 280M /dev/mapper/vo

 

# 3. 파일 시스템 크기 확인 및 마운트

resize2fs /dev/mapper/vo

mount /dev/mapper/vo /mnt/vo

df -h

 

 

(2) Node 2에서 다음 조건을 만족하도록 Logical Volume 크기를 확장하세요: (출제됨)    

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. Logical Volume 및 파일 시스템 상태 확인

lsblk

lvs

 

# 2. Logical Volume 확장

lvextend -r -L +500M /dev/mapper/datavol-data1

lvs

df -h

 

# 3. 파일 시스템 마운트

mkdir /mnt/data1

vi /etc/fstab

# 추가:

# /dev/datavol/data1  /mnt/data1  ext4  defaults  0 0

 

mount /mnt/data1

df -h

 

# 4. 검증

touch /mnt/data1/testfile

echo "LVM extension test successful" > /mnt/data1/testfile

cat /mnt/data1/testfile

 

---------------------------------------------------------------------------------

* 문제풀이 후기

- 확장 문제가 나올지 축소 문제가 나올지 몰라서 둘 다 준비했는데 다행히 비교적 쉬운 확장 문제가 나왔다.

- 나처럼 둘 다 대비해 갈 거라면 확장과 축소의 과정 차이를 잘 숙지하길 바란다.

---------------------------------------------------------------------------------

 

 

2-5. Tuned (출제됨)  

Configure recommended tuned profile

 

* 나의 답안

---------------------------------------------------------------------------------

# 1. Tuned 서비스 상태 확인 및 활성화

systemctl status tuned

systemctl enable --now tuned

 

# 2. 추천 Profile 설정

tuned-adm list

tuned-adm recommend

tuned-adm profile virtual-guest

 

# 3. 활성화 확인

tuned-adm active

tuned-adm profile-info virtual-guest

 

# 4. 재부팅 후 확인

reboot

tuned-adm active

---------------------------------------------------------------------------------

* 문제풀이 후기

- 여기까지 열심히 달려왔다면 마지막 문제는 쉽게 느껴질 것이다.

---------------------------------------------------------------------------------

 

 

 

실무자라면 별 것 아니게 느껴질 수 있지만 리눅스에 아직 익숙하지 않은 사람이라면 꽤나 착잡한 마음이 들 것이다.

어렵다기보다는 응시료가 아까우니까.

무료 재시험 기회조차 없던 나는 더욱이 단번에 붙어야만 했다.

새해부터 마음 졸이며 밤을 지새웠는데 그래도 만점을 받으니 뿌듯한 마음이다.

 

윈도우 기본 사용법 처음 배울 때를 생각하며, 한 문제 한 문제 키보드를 두드려가며 손에 익히기를 추천한다.

혹시나 나처럼 남은 일정이 5일 이하라면, 최소 48시간 이상 이해와 실습을,

최소 3회 이상 직접 만든 덤프로 모의고사 해보길 바란다.

질문만 봐도 명령어가 대략 아른거릴 정도만 되면 합격은 충분히 가능할 것이라 생각한다.