수정중
내가봣던 시험내용중 기억나는것 최대한 비슷하게 썻으며 좀더 쉽게 풀수 잇는 팁 포함.
시험은 레드햇이 깔린 PC로 보며 깔린 레드햇안에 가상시스템(vm)에 시험내용을 적용하면 됩니다
메인PC는 root로그인이 불가
햇갈리는 옵션은 외울필요없고 man페이지나 --help 이용하세요~~
시험은 종각역 솔데스크 학원에서 봤고 저는 300점 만점에 300점 으로 합격했습니다
시험은 토요일날 봤고 월요일 오후에 결과 메일이 왔습니다
결과 메일링크타고 들어가서 본인의 레드햇 계정에 서티를 add해주면 자격증 확인이 바로 가능합니다
0.root패스워드를 xxx로 설정하시오
grub 메뉴에서 아무키나 눌러 카운터를 멈춘 후 해당 메뉴에서 e키누름
linux16으로 시작하는 줄에 방향키를 이용하여 커서를 갖다 대고 end키를 눌러 맨 뒷줄로 커서 이동,
이후 한칸 띄우고 rd.break 입력, Ctrl+x로 부팅 시작
부팅이 완료되면 기존 root는 /sysroot 으로 ro(읽기전용)마운트 된 상태입니다
첫번째로 /sysroot를 rw로 리마운트 해줍니다
mount -o remount,rw /sysroot
remount=마운트 해제없이 재 마운트
rw=읽기,쓰기
이후 /sysroot를 /로 만들어 줍니다
chroot /sysroot
그다음 passwd 명령어를 이용하여 passwd 변경
이후 변경된 passwd파일의 컨텍스트 값을 se리눅스에서 다시 라벨링 하기 위해 아래 파일을 만듭니다
touch /.autorelabel
이후 exit 두번 입력하시면 자동으로 재부팅되며 변경된 passwd로 로그인이 가능합니다
(컨텍스트 라벨 작업이 시간 소요됨,어느버전에서는 label 작업을 퍼센티지로 알려주지만 어느버전에서는 아무런 메시지도 안나타나므로 다운이 아니니까 기다리세요)
0.네트워크 설정(ip,mask,gw,dns 주소를 줫고 해당내용 설정하는것) 인터페이스는 eth0하나만 있었음.
nmcli,nmtui,gui,config파일 직접수정 4가지 방법중에 아무거나 편한방법으로 하시면 됩니다
0.호스트네임 설정
제시하는 hostname을 hostnamectl set-hostname {name} 으로 설정
0.yum repo구성
repo 서버 주소를 제시하여 주며 네트워크가 정상 설정 되어있어야함
repo파일 설정값 외우기가 귀찬으므로 아래의 방법 추천
#yum-config-manager --add-repo={url}
위에 명령어 수행하면 넣은 url주소로 자동으로 repo파일 만들어짐, gpgcheck=0 만 추가로 넣으면 구성 끝!
이후 yum repolist all 로 넣은 repo 가 정상적으로 enable 되어있는지, 패키지는 잘보이는지 확인
0번은 시험문제가 아니고 사전 준비사항?구성사항 식으로 써있던거고 해당 사항이 충족되지 않으면 시험문제 진행 자체가 불가함,
부팅하면 기본적으로 multiuser.target=tui모드 임, xwindow 깔려있으므로 쓰고싶으면 startx 나 systemctl isolate graphical.target 명령어 이용하여 gui 사용하면됨.
본인은 걍 systemctl set-default graphical.target 하고씀.. 왜냐하면 문제 풀고 재부팅을 많이 해야 하기때문에
근데 실제로 gui쓸일이 없어서 쓸사람만 하세요..아래 1번 문제도 그냥 시험pc에서 ssh -X 주고 하면 됨
1.LDAP 계정 인증을 받도록 구성하시오
서버주소,dn name,TLS사용유무,인증 방식,인증서 주소 모두 제시하여 주며 시험보는 PC 에서 ssh -X 명령어를 이용하여 vm에 접속,
이후 yum install authconfig-gtk 로 gui authconfig 도구 설치,
#authconfig-gtk
명령어로 gui 인터페이스로 인증을 수행하면 되며 단순히 제시된 값을 넣는 수준, 이후 apply 단 kerberos 인증의 경우 krb 패키지 설치해야함, gui 진행시 설치하라는 창이 나오고 클릭만하면 자동으로 설치됨
getent passwd {user} 넣어 잘 되나 확인
이후 제시한 user,passwd 이용하여 ssh 접속 테스트 도 해보세요
2. test lv의 용량을 250M로 수정하고 해당 파일시스템도 확장하세요,단 파일시스템안에 내용에는 영향이 없어야 합니다
vg에 남은용량이 있었고 lv용량만 수정해주면 됫었음..
#lvextend -L 250M -r /dev/mapper/vg-lv
-L은 용량을 지정, -r 은 파일시스템 resize도 같이 수행
-r을 안줫을시 lv용량만 늘어나며 파일시스템은 xfs_growfs(xfs) 나 resize2fs(ext4) 명령어 이용하여 따로 해줘야함
그냥 -r 만 주면 위에 명령어 한줄로 끝
3. groupvg를 만들고 sharelv를 만들어 /mnt/share 에 영구 마운트 하시오
단 vg pe사이즈는 8mb 여야하며 sharelv의 크기는 100개의 pe여야 합니다 또한 vfat포맺이어야 합니다
파티션관련된 내용은 없었으나 fdisk -l 해보니 이미 3개의 파티션이 있었음,디스크는 로컬 한개
차후에 다른 문제가 나올수도 있으니 확장파티션으로 만듬(차후에 swap관련 문제가 또나와서 확장으로 안만들었음 갈아 엎었어야함)
확장 파티션 만든후 넉넉잡아 1G 파티션 하나 생성. lvm code(8e) 사용중인 디스크이므로 파티션 작업후 partprobe 필수
#pvcreate /dev/vda5
로 해당 파티션에 pv생성
#vgcreate -s 8 groupvg /dev/vda5
로 pe사이즈 8,pv하나쓰는 vg생성 (-s 옵션이 pe사이즈 지정해줌)
#lvcreate -n sharelv -l 100 groupvg
위에 명령어 -n은 lv이름 지정 -l 은 사이즈를 pe갯수로 지정할떄 사용
만들어진 lv는 mapper를 통해 자동 mapped되니 fdisk -l 로 경로 확인, 보통은 /dev/mapper/{vgname}-{lvname} 으로 됨
만들어진 lv를 vfat 포맺 하기
#mkfs.vfat /dev/mapper/groupvg-sharelv
xfs나 ext4의 경우 mkfs.뒤에 수정하면 됨
포맷 후 fstab 수정
blkid써서 나오는 UUID로 해도 되고 mapper써도 되고..
장치명으로 fstab 등록시 감점이 있다고함(강사피셜) 그러나 lvm의 경우 장치명이 아니므로(장치명 ex:sda sdb 등) 변경될 가능성이 없음. 그래서 /dev경로를 지정해주어도 감점 없었음
본인은 mapper 명으로 썻음
mkdir /mnt/share
vi /etc/fstab
/dev/mapper/groupvg-sharelv /mnt/share vfat default 0 2
값 넣은 후 mount -a 수행하여 에러 여부 및 df -h 로 마운트 된것 확인
4. 512m의 스왑 파티션을 만들고 영구 마운트 하시오,단 기존의 파티션 정보나 스왑파일 정보가 손상되어서는 안됩니다
3번에서 확장이 아니고 일반 파티션 만들었으면 4개 풀차서 이문제 진행 불가, 다행이 확장 만들어서 512m파티션 하나 만들었음 코드는 82(swap) 이역시 사용중인 디스크이므로 파티션 작업후 partprobe 필수
#mkswap /dev/vda6
명령어로 해당 파티션 swap으로 만들기
fstab 등록( 위에 설명한대로 장치명 쓰면 감점이 있다고 하니 blkid 써서 UUID로 하세요)
UUID=58013e4a-11c0-4195-8fd8-e4b33e5b17d6 swap swap defaults 0 0
혹시나 우선순위 설정하는 문제가 나오면 defaults,pri=1 이렇게 하면 됨 높을수록 우선이며 기본값은 -1인가 -2라 1로 넣어주면 우선순위가 올라갑니다
이후 swapon -a 마운트
swapon -s 로 확인
5.manager 그룹을 만드시오
보조그룹이 manager인 harry유저를 만드시오
sara계정도 보조그룹이 manager 입니다
manager 권한이 없는 sarah 계정을 만드시오 sarah는 로그인이 불가능하여야 합니다
모든 계정의 패스워드는 test여야 합니다
그냥 말장난이고 계정관리 개념 있으시면 어떻게 바뀌어서 나오든 쉬운 문제입니다
#groupadd manager
#useradd -G manager harry
#useradd -G manager sara
#useradd -s /sbin/nologin sarah
패스워드는 일일히 치기 귀찬고 확인도 쉽지 않으니 아래의 방법 추천
echo test | passwd --stdin harry
echo test | passwd --stdin sara
echo test | passwd --stdin sarah
6.그룹간 공유하는 폴더를 생성하시오
폴더는 /share/test 이며 manager 그룹에 속한 harry, sara 유저가 읽고 쓰기(실행도)가 가능해야 합니다
다른 모든 유저는 아무런 권한도 없어야 하며 root는 예외입니다
또한 uid 642를 가진 harry2 계정도 manager그룹에 속해야 합니다
또한 이폴더에서 생성되는 파일에 소유자 또한 manager여야만 합니다
말이 좀 이상하긴한데 기억나는대로 썻음...
#mkdir -p /share/test (폴더생성)
#chgrp manager /share/test (test폴더에 그룹소유자 변경)
#chmod 070 /share/test 그룹에 rwx권한 주고 나머지는 뻄
#chmod g+s /share/test setgid 설정 (이걸 해놓으면 root가 파일을 만들어도 해당 폴더내에서는 소유그룹이 manager로 생성됨)
#useradd -u 642 -G manager harry2 위에 제시한 정보로 계정 생성
7./etc/fstab 파일을 /var/tmp/fstab 으로 복사 한후 권한 설정을 하시오
harry 유저와 sarah 유저는 해당 파일을 읽고 쓸수 있고
sara 유저는 아무런 권한도 없어야 합니다
현재 또는 미래의 모든 유저들은 읽기 권한이 있어야합니다
보면 chmod 하나로 설정이 안되는거고 acl써야합니다
#setfacl -m u:harry:rw- /var/tmp/fstab
#setfacl -m u:sarah:rw- /var/tmp/fstab
#setfacl -m u:sara:--- /var/tmp/fstab
#setfacl -m o::r-- OR #chmod o:r-- /var/tmp/fstab
최종 getfacl /var/tmp/fstab 으로 확인
이것도 말이 엄청 꼬여서 나오는데 그냥 차근하게 읽어보고 설정을 하면 됩니다
8. harry 유저가 매일 14시23분에 수행하는 echo test 반복작업을 등록하시오
crontab 문제 입니다
crontab -eu harry
23 14 * * * /usr/bin/echo test
해주시면 됩니다
분 시 일 월 요일 순이며 안전을 위해 명령어 Full Path를 적어주시면 좋겠죠??
9. server.example.com 으로 시간을 동기화하는 클라이언트 설정을 하시오
chrony 안깔려 있으면 설치 하시면 되고 깔려있으면
/etc/chrony.conf 열어서 서버 수정하면 됩니다
pool server.example.com iburst
확인은 chronyc 실행하고 sources -v 로 확인
10. test유저가 소유한 파일을 찾아서 /root/find 폴더로 복사하시오
#mkdir /root/find 폴더 생성
#find / -user test -type f -exec cp -rp {} /root/find/ \;
파일을 찾으래서 타입도 줫습니다 폴더도 있었는데 그건 당연히 복사 안됫겠죠?? 감점이 없는걸 보니 지문에서 요구한 사항만 만족하면 되는것 같습니다
혹시 몰라서 저는 p옵션도 줫구요 p옵션안주면 복사된 파일은 root:root 이고 p를 주면 test:test 입니다
11. /sys/xxx 파일의 strat 가 포함된 라인을 /root/strat.txt 파일로 생성하시오
단 원본 파일이 손상되어서는 안되며 strat.txt 파일에 빈칸이 있어선 안되고 모든 줄은 원본파일 내용의 복사본이여야 합니다
간단합니다..
grep strat /sys/xxx > /root/strat.txt
저희 경우 해당 파일에 administrator 이런식의 줄이 엄청 많았고 해당 줄 모두 strat.txt 에 들어 갔습니다
혹시 띄어쓰기가 있거나하면 단어 따옴표 붙히세요 'st st' 식
12. 해당 저장소에서 커널을 찾아 업데이트 하시오 (주소는 제시해줌)
업데이트한 커널로 기본 부팅이 되어야하고 기존 커널도 삭제해서는 안됩니다
여러가지 방법이 있습니다
저는 wget {url}로 커널을 받은 후
yum localinstall {받은파일이름}.rpm 으로 설치 했습니다
이후 systemctl로 리붓하면 새로운 커널이 1번 과거커널이 2번 grub메뉴 자동 수정되어 있습니다
부팅후 yum list kernel로 2개 모두 존재하는지 확인
13. selinux 모드를 enforcing으로 변경하시오
기본모드는 permissive 였습니다
/etc/selinux/config 파일을 열어 SELINUX=permissive 를 SELINUX=enforcing 으로 수정 (오타조심,오타내면 정상부팅안됨)
이후 재부팅하셔도 되고 setenforce=1 로 enforcing 모드로 바꾸셔도 됩니다 테스트 하시려면 재부팅 추천~~
14.1번에서 설정한 ldap (test6이라 가정)유저로 로그인시 home폴더를 자동으로 마운트 하게 하시오
nfs공유중인 서버의 폴더는 server6:/usr/test6 이며 /mnt/test6으로 자동마운트 되야합니다
#yum install -y autofs nfs-utils 설치 ( 저의 경우엔 둘다 깔려있었음)
/etc/auto.master.d/xxx.autofs 파일 생성, 확장자는 꼭 autofs여야함
직접경로 지정을 위해 파일내용 추가
/- /etc/nfs.auto
/- 직접경로
/xxx/xxx 간접경로
/etc/nfs.auto파일을 열어 실제 마운트 옵션등을 설정
/mnt/test6 -rw,sync server6:/usr/test6
만약 여러개를 설정해야된다면(ex test1~10까지 모두)
autofs에 상대경로를 지정 /- = /mnt/
nfs.auto파일에
* -rw,sync server6:/usr/&
해주시면 됩니다
이후 systemctl start autofs
systemctl start nfs-secure
systemctl enable autofs
systemctl enable nfs-secure
autofs 랑 nfs-secure실행하시고 자동실행되게 enable도하세요 안그럼 재부팅하면 작동안함~~
df -ah 로 autofs 설정 올라와 있는것 확인.
이후 su - test6 해서 홈폴더 잘 보이나 확인
재부팅해서 한번더 확인!
15. /USR 폴더의 내용을 /root/usr.tar.bzip2 아카이브로 생성하시오, 단 bzip으로 압축되어야 합니다
tar -jcvf /root/usr.tar.bzip2 /usr
jcvf를 주시면 tar로 묶으면서 bzip으로 압축까지 한방에 합니다..
file /root/usr.tar.bzip2 명령어로 bzip2 로 압축된 파일인지 한번더 확인
햇갈리면 man tar