ENCORE CLOUD ARCHITECTURE TIL 3/12 Linux CentOS

신민창·2021년 3월 12일
0

TIL

목록 보기
24/46

리눅스 실습

1. 네트워크 설정

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

장치 이름 확인
# 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”
# systemctl isolate graphical.target

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

helloworld

서비스 구동
# 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 볼륨그룹에서 다음 각 논리볼륨을 생성하세요.
크기 1G, 이름 normal_lv
크기 1G, 이름 r0, RAID 방식 : stripe (스트라이프 개수 2개)
크기 1G, 이름 r1, RAID 방식 : mirror (복제본 1개 생성)
new_vg 볼륨에 20GB 디스크에서 사용하지 않은 10GB 공간을 함께 사용하도록 설정하세요. 그리고 다음 LV 를 생성하시오.
크기 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

0개의 댓글