리눅스 실전연습문제
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 설정
/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 볼륨그룹에서 다음 각 논리볼륨을 생성하세요.
- 크기 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
11. 재부팅 및 설정 확인
- 현재까지 실습한 내용을 vmware의 스냅샷으로 저장하시오. (복구용)
- 재부팅 후 정상적으로 부팅되는지 확인하시오.
- 재부팅이 정상적으로 되지 않을 경우, 위 단계에서 생성한 스냅샷으로 돌아가서 문제를 해결하시오.