Today I Learn - 23

이정빈·2021년 3월 12일
0

클라우드 엔지니어

목록 보기
24/53
post-thumbnail

리눅스 실전연습문제

1. 네트워크 설정

  • 현재 시스템에는 네트워크 인터페이스의 설정이 되어 있지 않습니다. 다음과 같이 네트워크 설정을 수정해주세요.
    ip주소: 192.168.100.200
    서브넷마스크: 255.255.255.0
    DNS: 192.168.100.2
    게이트웨이 192.168.100.2
  • 기존에 남아있던 연결 설정은 삭제
    • nmcli connection delete “Wired …”

장치 이름 확인

nmcli device status

연결 생성

nmcli connection add con-name static ifname ens33 type ethernet ipv4.addresses 192.168.100.200/24 ipv4.dns 192.168.100.2 ipv4.gateway 192.168.100.2 ipv4.method manual

연결 사용

nmcli connection up static

기존 연결 삭제

nmcli connection delete “Wired connection 1”

설정 확인

ip address show

2. YUM Repository 설정

  • 현재 시스템은 yum 명령어로 패키지를 설치할 수 있는 레포지토리 설정이 되어 있지 않습니다.
    http://ftp.kaist.ac.kr/CentOS/7.9.2009/os/x86_64/
  • 위 주소를 레포지토리로 등록하여 패키지를 설치할 수 있도록 설정하세요.

/etc/yum.repos.d/ 디렉토리 내 kaist.repo 파일 생성

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

[kaist]
name=kaist repo
baseurl=http://ftp.kaist.ac.kr/CentOS/7.9.2009/os/x86_64/
enabled=1
gpgcheck=0

설정 확인

yum repolist

3. GUI 인터페이스 설치

  • 현재 시스템은 CLI 환경으로 구성되어 있습니다. GUI 인터페이스를 사용할 수 있도록 필요한 절차를 수행하세요. (yum 그룹 설치 활용)
  • 설치 후 재부팅하세요.
  • GUI 모드로 변경하세요 : systemctl isolate graphical.target

GUI 패키지 그룹 설치

yum groups list
yum groups install “Server with GUI”

4. systemd-journal 설정

  • 현재 시스템은 journal 로그를 영구적으로 저장하도록 설정되어 있지 않습니다. journal 로그 데이터가 유지되도록 절차를 수행하세요.

로그 영구 저장경로 설정

mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal

변경 즉시 적용

systemctl restart systemd-journald

5. 웹 서비스 설치

  • 웹 서비스를 설치하세요 (httpd)
  • 웹 서비스에 사용할 index.html 파일을 /var/www/html 경로에 생성하세요
  • 웹 서비스를 시작하고, 웹 서비스가 재부팅 이후에도 시작되도록 설정하세요.
  • ‘curl localhost’ 명령으로 페이지가 정상적으로 동작하는지 확인하세요.

패키지 설치

yum install httpd

웹 페이지 파일 생성

vi /var/www/html/index.html

서비스 구동

systemctl start httpd

서비스 활성화

systemctl enable httpd

테스트

curl localhost

6. 사용자 설정

  • 다음 사용자를 추가하세요. : admin, manager,
  • 다음 그룹을 추가하세요. : administrators
  • administrator 그룹을 주 그룹으로 가지는 newbie 사용자를 추가하세요.
  • manager 사용자의 보조그룹을 administrators 로 지정하세요.
  • svcuser 사용자를 추가하세요. 단, 이 사용자는 로그인할 수 없도록 설정하세요.
  • 각 사용자의 암호를 모두 P@ssw0rd 로 설정하세요

사용자 추가

useradd admin
useradd manager

그룹 추가

groupadd administrators

사용자 주그룹 지정 추가

useradd -g administrators newbie

사용자 보조그룹 변경

usermod -G administrators manager

로그인 불가 사용자 추가

useradd -s /sbin/nologin svcuser

사용자별 로그인 패스워드 설정

echo P@ssw0rd | passwd --stdin admin
echo P@ssw0rd | passwd --stdin manager
echo P@ssw0rd | passwd --stdin newbie
echo P@ssw0rd | passwd --stdin svcuser

7. 공유디렉토리 설정

  • /project/webcontents 디렉토리를 생성하세요.
  • webcontents 경로의 소유그룹을 administrators 로 변경하세요
  • root 사용자와 administrators 그룹의 사용자를 제외하고는 디렉토리에 진입할 수 없도록 설정하세요.
  • root 사용자와 administrators 그룹의 사용자만이 디렉토리에 파일을 생성할 수 있도록 설정하세요.
  • 디렉토리 내 생성되는 파일의 소유그룹이 administrators 가 되게 설정하세요.

디렉토리 생성

mkdir -p /project/webcontents

소유그룹 변경

chgrp administrators /project/webcontents/

권한 설정 변경

chmod 2770 /project/webcontents/

8. 파일 및 디렉토리 권한 설정

  • root 사용자로 /etc/passwd 파일을 /tmp 디렉토리에 복사하세요.
  • /tmp/passwd 파일에 대해 administrators 그룹의 읽기/쓰기 권한을 설정하세요.
  • /share 디렉토리 생성 후, 소유자 소유그룹을 변경하지 않고, 권한은 750으로 설정하세요.
  • administrators 그룹이 이 디렉토리에 대한 읽기/쓰기/실행 권한을 가지도록 설정하세요
  • 디렉토리에 만들어지는 파일 및 디렉토리도 admistrators 그룹에 대한 권한을 이어받도록 설정하세요.
  • 단, administrators 그룹에 포함되어 있는 newbie 사용자는 /share 디렉토리에 접근할 수 없도록 설정하세요.

파일 복사

cp /etc/passwd /tmp

권한 변경(ACL)

setfacl -m g:administrators:rw /tmp/passwd

디렉토리 생성 및 ACL 설정

mkdir /share
chmod 750 /share
setfacl -m g:administrators:rwx /share

디폴트 ACL 설정

setfacl -m d:g:administrators:rwx /share

newbie 사용자에 대한 ACL 설정

setfacl -m u:newbie:- /share

9. 작업 예약

  • manager 사용자로 다음 작업을 예약하세요.
    매 주 일요일 자정(00:00)에 현재 시스템의 메모리 사용량을 조회하는 free 명령의 실행결과를 /tmp/freemem 파일에 저장하세요.
  • root 사용자로 다음 작업을 예약하세요.
    매 달 1일 아침 7시에 현재 시스템의 저장소 사용 현황을 조회하는 df -h 명령의 실행결과를 /tmp/storage 파일에 저장하세요.

manager 사용자 예약작업 추가

manager$ crontab -e
0 0 * * 0 free > /tmp/freemem

root 사용자 예약 작업 추가

0 7 1 * * df -h > /tmp/storage

10. 디스크 파티셔닝 구성 / LVM

  • 현재 리눅스 시스템은 LVM으로 구성되어 있습니다. '/' 파티션의 용량이 부족하므로, 현재 시스템에 연결되어 있는 여분의 20GB 디스크(아마 /dev/sdc로 인식되어 있을 겁니다. 확인필요) 중 10GB를 '/' 파티션의 용량을 확장하기 위한 용도로 추가하세요/
  • 아직 사용되지 않은 10GB 디스크 두 개를 사용하여 'new_vg' 볼륨그룹을 생성하시오. 이 볼륨그룹의 PE 크기를 8MB로 설정하세요.
  • new_vg 볼륨그룹에서 다음 각 논리볼륨을 생성하세요.
  1. 크기 1G, 이름 normal_lv
  2. 크기 1G, 이름 r0, RAID 방식 : stripe (스트라이프 개수 2개)
  3. 크기 1G, 이름 r1, RAID 방식 : mirror (복제본 1개 생성)
  • new_vg 볼륨에 20GB 디스크에서 사용하지 않은 10GB 공간을 함께 사용하도록 설정하세요. 그리고 다음 LV 를 생성하시오.
  1. 크기 1G, 이름 r5, RAID 방식 : RAID 5, (스트라이프 개수 2개)
  • 각 논리볼륨에 xfs 파일시스템을 생성하세요. 파일시스템이 생성된 논리볼륨은 /LVM 디렉토리 아래에 각 논리볼륨의 이름으로 되어있는 디렉토리 생성 후, 해당 위치에 마운트하세요. ex) /LVM/normal_lv, /LVM/r0, /LVM/r1, /LVM/r5
  • normal_lv 논리볼륨의 크기를 2G로 확장하시오.
  • 1GB 용량의 swap_lv 논리볼륨 생성 후, 해당 논리볼륨을 스왑 장치로 등록하시오.
  • 지금까지 구성된 각 장치가 재부팅 후에도 마운트될 수 있도록 설정하시오. (마운트 및 스왑 포함)

20G 디스크 중 10GB 용량을 시스템 용으로 할당

fdisk /dev/sdc

n
p
1

+10G
t
8e
w

pvcreate /dev/sdc1
vgextend centos /dev/sdc1
lvextend -L +10G /dev/centos/root -r => 에러
lvextend -l +2559 /dev/centos/root -r

11. 재부팅 및 설정 확인

  • 현재까지 실습한 내용을 vmware의 스냅샷으로 저장하시오. (복구용)
  • 재부팅 후 정상적으로 부팅되는지 확인하시오.
  • 재부팅이 정상적으로 되지 않을 경우, 위 단계에서 생성한 스냅샷으로 돌아가서 문제를 해결하시오.
profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글