RHEL/RHCSA v9 시험

RHCSA v9 dump 및 공부 방법

싸비스 2023. 12. 13. 16:30
반응형

1. [root 패스워드 설정]

 

linux -> end 키 눌러서 맨 끝으로 이동 한 후 rd.break 타이핑 후 C+X

 

mount -o remount,rw /sysroot -> chroot /sysroot -> passwd 설정 -> touch /.autorelabel -> exit 2번 종료

 

 

RHCSA v9 준비 - 1. root 비밀번호 재 설정

1. [root 패스워드 재설정] Node 1개는 root 패스워드를 잃어버린 상태이므로 재설정을 해야합니다. ( 시험 노트북이 매우 느리기 때문에 인내가 필요함 ) rhgb quiet 부분을 아래 두가지 방식중 하나로

tkqltm.tistory.com

 

 

2. [그래픽모드 <-> 콘솔 모드 전환방법]

 

systemctl get-defaults 로 현재 부팅모드 설정 확인

 

systemctl set-defaults graphical.target(그래픽모드), multi-user.target(콘솔모드)

 

 

RHCSA v9 준비 - 2. 그래픽모드 <-> 콘솔모드 전환방법

2. 그래픽모드 콘솔모드 전환방법 Graphic -> Console Change systemctl get-default 명령어로 현재 부팅모드 설정을 확인 할 수 있습니다. systemctl set-default multi-user.target 명령어를 입력하게 되면 그래픽 모드

tkqltm.tistory.com

 

 

3. [yum repo 구성]

 

yum config-manager --add-repo={url}

 

gpgcheck= 0,1 (no,yes)

 

 

RHCSA v9 준비 - 3. Yum repository 구성

3. Yum repository 구성 위의 해당 명령어는 사진과 보시는것과 같이 repo파일을 자동으로 만들어주는 명령어 입니다. yum config-manager --add-repo=[ baseurl ] [ baseurl ] 은 경로를 입력해주시면 됩니다 baseurl:

tkqltm.tistory.com

 

 

 

 

4. [nmcli 명령어를 이용한 network 구성 및 bonding 설정 구성]

 

(bonding nic 추가)

 

nmcli con add type bond ifname bond0 con-name bond0 bond.options "mode=1,miimon=100" ipv4.ipaddresses '/24' ipv4.gateway '' ipv4.dns '' ipv4.dns-search 'url' ipv4.method manual connection.autoconnect-slaves 1

 

(new nic 추가)

 

nmcli con add type ethernet ifname {NIC} con-name bond0-port master bond slave-type bond

 

(nic 에 내용추가)

 

nmcli con modify {NIC} master bond

 

(NIC 활성화)

 

nmcli con up {NIC}

 

(본딩상태 확인)

 

cat /proc/net/bonding/bond0

 

 

RHCSA v9 준비 - 4. nmcli 명령어를 이용한 network 구성 및 bonding 설정 구성

4. nmcli 명령어를 이용한 network 구성 및 bonding 설정 구성 nmcli con add type bond ifname bond0 con-name bond0 bond.options "mode=1, miimon=100" ipv4.addresses 192.168.100.100/24 ipv4.gate 192.168.100.1 ipv4.dns 8.8.8.8 ipv4.method manual 위

tkqltm.tistory.com

 

 

5. [호스트네임 설정]

 

hostnamectl set-hostname {name}으로 설정 or nmtui-hostname 도 가능

 

 

RHCSA v9 준비 - 5. 호스트네임 설정 hostnamectl set-hostname

5. 호스트네임 설정 hostnamectl set-hostname hostnamectl 명령어로 현재 설정된 hostname 확인할 수 가 있습니다. hostnamectl set-hostnaem RHCSAv9 hostnamectl set-hostname [값] 입력을 하시면 호스트네임 설정이 완료가

tkqltm.tistory.com

 

 

6. [SElinux 모드 설정]

 

getenforce 명령어로 현재 모드 확인

 

setenforce 로 모드 설정

 

(영구설정)

 

vim /etc/selinux/config 에서 모드 입력(철자 주의)

 

RHCSA v9 준비 - 6. selinux 모드 설정 / selinux mode setting

6. selinux 모드 설정 / selinux mode setting getenforce 명령어로 현재 selinux 상태를 확인 할 수 있습니다. setenforce [옵션] 명령어로 selinux 의 상태를 변경 할 수 있습니다. 하지만 setenforce 명령어의 경우에는

tkqltm.tistory.com

 

 

7. LVM 

 

 

RHCSA v9 준비 - 7. LVM 구성 방법 / PV / VG / LV / 생성 추가 제거 방법

7. LVM 구성 방법 / PV / VG / LV / 생성 추가 제거 방법 해당 내용은 매우길며 시험에 필요한 옵션들까지 설명이 되어 있기 때문에 필요하신 부분만 "더보기 버튼" 을 누르셔서 확인하시면 더욱 편하

tkqltm.tistory.com

 

[ PV 생성 ]

 

선작업 fdisk /dev/sd*

 

n -> p -> Type 설정에서 8e 로 lvm type 설정 -> w 로 저장 후

 

pvcreate /dev/sd*

 

[ 제거 ]

 

pvremove ( vg에서 용량 먼저 확보 한 후 속한 vg에서 제거 해줘야함)

 

8.

 

[ VG 생성 ]

 

vgcreate [vg] [pv] ( 여러개 일 경우 /dev/sd* /dev/sd* 붙이면됨 )

 

vgcreate –s [용량] [pv] = PE사이즈 지정할 경우

 

[VG 축소 ]

 

vgreduce [vg] [pv] = pv 용량만큼 제거됨

 

[ VG 추가 ]

 

vgextend [vg] [pv] = 여러 개 일시 방법 상동

 

 

 

9.

 

[ LV 생성 ]

 

lvcreated –n [name] -L [size] [vg]

 

lvcreate –n [name] –l [le] [vg] = le 사이즈 지정

 

[ LV 축소 ]

 

umount [lv]

 

lvreduce –L [size] [name] -r

 

mkfs.[] 재 포맷

 

재 마운트

 

[ LV 삭제 ]

 

umount [lv]

 

lvremove [lv]

 

[ LV 확장 ]

 

lvextend [size] [lv] -r

 

 

 

10.

 

[유저 생성]

 

useradd [이름]

 

 

 

[그룹생성]

 

groupadd [이름]

 

 

 

[유저 UID 지정후 생성]

 

useradd -u [UID] [이름]

 

 

 

[로그인 불가 옵션]

 

-s /sbin/nologin

 

[그룹에 유저 추가]

 

usermode -aG [그룹이름] [유저이름]

 

 

 

11. [비밀번호 설정]

 

passwd [유저이름]

 

 

 

[비밀번호 기한설정]

 

chage -E YYYY-MM-DD [유저명]

 

chage -l [유저명] 타이핑 후 expires 에서 확인

 

passwd –x (숫자) [유저명]

 

[전체 비밀번호 변경 기간설정]

 

/etc/login.defs -> PASS_MAX_DAYS 일 수 변경

 

 

 

12.

 

[해당 폴더의 그룹 설정 및 권한 설정]

 

chgrp [group] [file]

 

chmod ---- [file]

 

chown [group]:[user] [file]

 

setfacl –m u:[user]:[---] [file] (사용자 별도 권한 설정)

 

getfacl [디렉토리]

 

13.

 

[방화벽 아이피 추가, 포트 추가 및 아이피 접근 불가 설정]

 

firewall-cmd —add-source=[ip] --permanent

 

firewall-cmd —zone=block —add-source=[ip] –permanent = 아이피 차단

 

firewall-cmd —reload

 

firewall-cmd —zone=[name] --add-port=[port]/[protocal] –permanent = 포트 추가

 

 

 

14.

 

[새로운 존 추가 서비스 추가]

 

firewall-cmd —new-zone=[name] –permanent = 존 추가

 

firewall-cmd —reload

 

firewall-cmd —zone=[name] --add-service=[] –permanent = 서비스 추가

 

firewall-cmd —reload

 

 

 

 

 

15.

 

[주석 내용만 포함하여 파일을 복사 및 모든 사용자가 읽고 쓰고 실행 가능하며 루트제외하고 삭제 못하도록 설정]

 

 

 

grep ‘^#’ /etc/ssh/ssh_config >> /tmp/ssh.txt

 

chmod 1777 /tmp/ssh.txt

 

 

 

16.

 

[특정 유저의 소유자 파일을 찾아서 디렉토리로 복사]

 

find / -user [name] -exec cp –rfp {} [디렉토리] \;

 

 

 

17.

 

 

 

[특정 유저의 스케쥴러 생성]

 

crontab –u [user] -e

 

 

 

18.

 

[메모리 용량 추가]

 

lsblk 확인 후 파티션 생성 코드번호 82

 

mkswap /dev/sd* >

 

partprobe /dev/sd*

 

lsblk | grep /dev/sd*(mkswap한 디바이스) >> /etc/fstab 추가 후 UUID none swap 0 0

 

swapon /dev/sd* 후 free –m 확인

 

 

 

19.

 

[bash 스크립트 생성]

 

#!/bin/bash

 

If [ $1 == ‘command’ ] ;then

 

command

 

fi

 

작성 후

 

chmod 755 로 변경

 

 

 

20.

 

[NTP 설정]

 

vi /etc/hosts 에 dns 설정

 

vi /etc/chrony.conf에서 3번째줄 주석처리 후

 

server [dns] iburst

 

systemctl restart chronyd 후

 

timedatectl 에 연동 부분 yes 확인

 

chronyc sources –v 도 확인 가능

 

 

 

21.

 

[소프트링크]

 

ln -s [원본 파일 및 디렉토리] [파일 이름]

 

 

 

22.

 

[NFS 설정]

 

서버 클라이언트 작업

 

yum install –y nfs-utils

 

systemctl start nfs-server

 

systemctl enable nfs-server

 

systemctl status nfs-server

 

mkdir –p [공유할 폴더]

 

/etc/exports 내용 [공유할 폴더] [ip(옵션)]

 

exportfs –arv 확인

 

firewall-cmd —permanent —add-service={nfs,mountd,rpc-bind}

 

firewall-cmd —reload

 

클라이언트 작업

 

yum install –y nfs-utils nfs4-acl-tools

 

showmount –e [ip]

 

 

 

mkdir [폴더 생성]

 

mount –t nfs [ip]:[디렉토리] ~[만든폴더]

 

재부팅후 지속하려면

 

echo “ip:[디렉토리] [만든폴더] nfs defaults 0 0” >> /etc/fstab

 

 

 

 

 

23.

 

[autofs 설정]

 

서버 클라이언트 작업

 

mkdir [autofs file]

 

vi /etc/exports 내용에 autofs file 추가

 

exportfs –arv 확인

 

systemctl restart nfs-server

 

 

 

클라이언트 작업

 

misc 매핑

 

vi /etc/auto.master

 

[생성할 디렉토리] auto.misc

 

vi /etc/auto.misc

 

[표시 디렉토리] [-옵션(-rw,sync,fstype=nfs4)] [ip:/(auto file)]

 

systemctl restart autofs

 

 

 

서버 작업

 

mkdir [공유폴더]

 

vi /etc/exports

 

[공유폴더] client(rw,async)

 

 

 

클라이언트 작업

 

직접(direct) 매핑

 

vi /etc/auto.master.d/direct.autofs

 

/direct_autofs /etc/direct.autofs

 

vi /etc/direct.autofs

 

/direct [-옵션(rw,sync,fstype=nfs4)] [ip:/(direct file)]

 

systemctl restart autofs

 

확인

 

 

 

클라이언트 작업

 

간접(indirect)매핑

 

vi /etc/auto.master.d/indirect.autofs

 

/indirect_autofs /etc/indirect.autofs

 

vi /etc/indirect.autofs

 

* [-옵션(rw,sync,fstype=nfs4)] [ip:/(indirect file)]

 

systemctl restart autofs

 

확인

 

 

 

autouser가 로그인 하면 자동으로

 

/exports/home/autouser 로 홈 디렉토리 지정 설정 해줘야함

 

권한 확인까지

 

 

 

24.

 

[튜닝프로파일 설정]

 

tuned-adm profile_info > 현재 모드 확인

 

tuned-adm profile > 모드 확인

 

tuned-adm profile [] 모드 설정

 

tuned-adm active > 모드 확인

 

 

 

25.

 

[ssh-keygen]

 

ssh-keygen 으로 생성

 

ssh-copy-id –i [~/.ssh/id_rsa.pub] root@client

 

ssh root@client

 

 

 

26.

 

[http]

 

디폴트 디렉토리 설정

 

/etc/httpd/conf/httpd.conf 파일에서 119번째 줄에서

 

원하는 경로로 설정

 

 

 

디폴트 디렉토리에 index.html 생성 후 내용 적은 후

 

systemctl restart httpd 후

 

ip 입력하면 완료

 

 

 

Listen 에 숫자는 포트번호

 

ServerName 에는 DNS 설정

 

 

 

디폴트 .html 파일은 / index.html 검색후 변경

 

 

 

 

 

27.

 

[ ps 명령어 ]

 

ps –ef | grep [프로세스 이름]

 

pkill [프로세스 이름]

 

 

 

28.

 

[scp]

 

scp [디렉토리/파일] [ip]

 

 

 

[journal 자동저장]

 

vim /etc/systemd/journald.conf

 

Storage, SystemMaxFiles 주석 해제 후

 

Storage=persistent = 자동저장

 

SystemMaxFiles=500  = 맥스파일

 

mkdir –p /var/log/journal = 로그 저장할 폴더 추가

 

systemd-tmpfiles --create —prefix /var/log/journal 

 

 

 

29.

 

[ip forward 설정]

 

vi /etc/sysctl.conf

 

net.ipv4.ip_forward=1

 

리부팅 후

 

cat /proc/sys/net/ipv4/ip_forward

 

모를 경우 sysctl –a | grep forward

 

30.

 

[파일 및 디렉토리 권한 설정]

 

chgrp = 그룹소유자 변경

 

chown = 사용자소유자:그릅소유자 변경

 

chmod g+s = 생성되는 파일들을 그룹소유자로 변경

 

 

 

31.

 

[컨테이너]

 

(실행시 자동으로 시작되기)

 

loginctl enable-linger [name] = linger enable 설정

 

loginctl show-user [name] linger yes 확인

 

 

 

podman images = 사용 가능한 이미지 확인가능

 

podman search [] = 다운로드 가능한 이미지 검색

 

podman pull [] = 이미지 다운로드

 

podman inspect [] | less = 이미지 정보 보기

 

podman run —name [이름] -dit [IMAGE ID] = 생성

 

podman rm [name] = 컨테이너삭제

 

podman rmi [name] = 이미지 삭제

 

podman ps –a = 정보보기

 

 

 

podman run –it [images ID] /bin/bash

 

 

 

mkdir /opt/input

 

mkdir /opt/proceesed

 

setfacl –m u:[user]:[권한] [디렉토리]

 

man semanage fcontext | grep web 으로 사용법 확인

 

semanage fcontext –a –t container_file_t “[디렉토리(/.*)?”

 

restorecon –R –v [맨앞 상위 디렉토리]

 

mkdir –p /home/[user]/.config/systemd/user

 

podman generate systemd pdfconverter > /home/[user]/.config/systemd/user/container-pdfconverter.service

 

systemctl —user daemon-reload

 

systemctl —user enable —now container-pdfconverter

 

리붓

 

systemctl —user restart container-pdfconverter

 

systemctl —user status container-pdfconverter

 

 

 

[podman httpd 관련 설정]

 

podman search httpd = httpd 검색 

 

podman pull [링크] = httpd 설치

 

podman images = 확인

 

podman run –d —name [name] -p 8080:80 [images id] = ps생성, 8080포트를 80포트로 변경

 

curl localhost:8080 테스트

 

podman run –it [images] /bin/bash = 이미지 터미널로 진입

 

find / -name index.html = index.html 의 경로 확인

 

mkdir [ index.html 새로 설정할 경로 생성 ]

 

ex) /web/page.html

 

podman run –d —name [name] -p 8080:80 –v /web:/[index.html 경로] [images id]

 

curl localhost:8080/page.html

 

 

 

podman generate systemd —new [ps id] >> /etc/systemd/system/[ps id].service

 

systemctl daemon-reload

 

systemctl start [ps id]

 

systemctl enable [ps id]

 

 

 

 

 

 

 

32.

 

[semanage]

 

semanage port –l | grep http // http 포트에 대한 정보 보기

 

semanage port –a –t http_port_t –p tcp 82 // 82 tcp 포트 추가

 

 

 

33.

 

[sebool 셋팅]

 

getsebool –a | grep [boolean] = 부울 찾기

 

setsebool [boolean] 1 or 0 = on , off 설정하기

 

setsebool -P [boolean] 1 or 0 = 영구적용하기

 

 

 

34.

 

[stratis]

 

wipefs /dev/sd* = 초기화

 

stratis pool create [name] [device] = 스트라티스 생성

 

stratis pool add-data [name] [device] = data 생성 ( 용량 증설 )

 

stratis fs create [pool name] [fs name]

 

stratis pool list = 확인

 

 

 

mkdir /pool

 

mount /stratis/stratispool/stratisfs /pool

 

stratis fs list

 

stratis fs snapshot [pool name] [fs name] [ss name]

 

lsblk —output=uuid /stratis/pool/fs >> /etc/fstab

 

vim /etc/fstab

 

uuid [dir] [xfs] defaults,x-systemd.requires=stratisd.service 0 0

 

mount -a

 

 

 

 

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡ 시험내용 ㅡㅡㅡㅡㅡㅡㅡㅡ

node1

 

1. ip,gateway,dns,hostname 설정

nmcli con mod [name] ipv4.addresses [ip/24] ipv4.gateway [gateway] ipv4.dns [dns]

hostnamectl set-hostname [hostname]

 

2. url repo 설정

yum config-manager --add-repo=[url]

 

3. useradd natasha,harry = sharedgrp 소속

sarha = 로그인 x 설정

비밀번호 emesgvy ? 로 모든 비밀번호에 전부다 통일

 

4. /home/sharedgrp 파일 그룹권한 sharedgrp , 그룹 소유자만 rwx가능(루트도가능) 그외 사용자 접근권한x

파일 생성시 sharedgrp 로 설정

chown :sharedgrp

chmod -R 2770 [디렉토리 or 파일]

 

5. crontab natasha 유저가 3분마다 logger " RHCSA EXAM200 " 설정

crontab -eu natasha

*/3 * * * * logger "RHCSA EXAM200"

tail -600 /var/log/messages | grep natasha 로 확인 가능

 

6. uid 5624 가진 user 생성

useradd -u 5624 [name]

 

7. httpd 82 port 없어서 실행 안되는거 해결

semanage -port -a - t http_port_t -p tcp 82 추가하고

firewall-cmd --list-all 로 service 및 port 있는지 확인 후 없다면

firewall-cmd --add-serivce=http --permanent

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

firewall-cmd --reload

firewall-cmd --list-all 후 httpd 잘 실행됩니다

 

8. 30k ~ 50k 사이의 파일들 전부 찾아서 해당 폴더로 옮기고 set uid 그대로 복사

find / -size +30k -size -50k -exec cp -arp {} [forder]₩;

 

9. /usr/local gzip으로 압축

tar gcvf /root/file.tar.gzip /usr/local

잘모르면 man

 

10. 컨테이너 using link주는데 그걸로 뭐 어케하는건지 몰라서 못풀었습니다

wget -o [설정할 파일 이름] [url] 해서 images 다운로드 후 진행

특정 사용자로 이미지 빌드

ssh [name]@[ip] 로 들어가야 가능

 

11. 컨테이너 서비스 등록 선행 못풀어서 못했습니다

 

12. 모든 사용자들이 새로 생성할때 패스워드 MAX_DAYS 기본 설정

/etc/login.defs

/ 999 검색 후

PASS_MAX_DAYS 99999 -> 일자 설정

 

13. 특정 단어만 찾아서 지정 경로에 저장

grep "[단어]" >> [경로]

 

14. 특정 유저에게만 권한 주기

setfacl -m u:[name]:[권한] [파일 or 디렉토리]

getfacl [파일 or 디렉토리] 로 확인

 

ll 로 drwxrwxr-x 뭐시기 맨 뒤에 + 가 있으면 acl 권한이 설정 들어간거 확인 가능

 

node2

1. root 비밀번호 뚫기

rd.break 말고 init=/bin/bash or rw, init=bin/bash -> mount -o remount, rw / -> passwd -> touch /.autorelabel -> exit

 

2. swap 756mb 추가

fdisk /dev/sd*

n -> skip -> +756M -> t -> L로 타입 찾은후 swap 타입 변경 후 w로 저장

mkswap /dev/sd*

partprobe /dev/sd*

blkid | grep /dev/sd* >> /etc/fstab

vi /etc/fstab -> uuid살린 후 uuid none swap defaults 0 0 -> mount -a -> swapon /dev/sd*

3. lvm 용량 늘리기 ( 조심히 늘려야합니다 데이터 날라가면 안되요 )

lvextend -L +90M /dev/vg/lv -r -> lvs -> df -h 확인

 

4. 32mb의 extend 를 가진 vg 그룹 만들고 vg 그룹에서 20 개의 extend 를 가진 lv 를 만들고 문제나온 파일시스템으로 포멧 후

오토 마운트 설정

vgcreate -s 32m vg00 /dev/sd*

lvcreate -l 20 --name lv00 vg00

mkfs.*

blkid | grep lv00 >> /etc/fstab 후 내용 수정

 

5. tuned-adm 기본 설정으로 적합한 프로파일로 설정 하기

tuned-adm recommend 후 나온 [기본 값]으로

tuned-adm profile [기본 값]

tuned-adm active

 

 

틀린 내용이나 추가 해야할 내용 있다면 댓글로 남겨주심 수정하겠습니다 ㅎ ㅎ

반응형