root 패스워드 변경
- 풀이
1 2 3 4 5 6 7 8
# e # linux16 줄 끝에 rd.break # ctrl+x mount | grep -w /sysroot # ro확인 mount -o remount,rw /sysroot # 읽기쓰기 버전으로 리마운트 chroot /sysroot # root를 /sysroot로 변경 passwd # 변경할 패스워드 입력 touch /.autorelabel # 레이블재지정 exit exit
hostname 변경
- 풀이
1 2 3
hostnamectl set-hostname redhat1 # hostname redhat1로 변경 hostname # 변경 확인 vi /etc/hostname # 재부팅 후에도 적용되는지 확인
NetWork 설정
- 문제
- IP = 192.168.0.11
- NETMASK = 255.255.255.0
- GW = 192.168.0.1
- DNS = 8.8.8.8
- 풀이
1
vi /etc/sysconfig/network-script/ifcfg-eth0 # 네트워크 설정 파일 수정
1 2 3 4 5 6 7 8
# /etc/sysconfig/network-script/ifcfg-eth0 DEVICE=ens33 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.11 GATEWAY=192.168.0.1 NETMASK=255.255.255.0 DNS1=8.8.8.8
1 2
systemctl restart network-service # network 데몬 재시작 ping 8.8.8.8 # DNS로 ping 확인
GUI 환경 변경
- 풀이
1 2 3
systemctl get-default # 환경 확인 systemctl set-default graphical.target # runlevel 5 GUI 모드로 변경 systemctl get-default # 변경 확인
SELINUX 활성화(재부팅 필수)
- 풀이
1
vi /etc/selinux/config
1 2
# /etc/selinux/config SELINUX = enforcing # 원래설정 각주 처리 후, enforcing으로 변경
1 2 3 4
getenforce # 변경 확인, 재부팅 전이라 적용 안됨 setenforce 1 # 재부팅 없이 enforcing 설정 getenforce # 변경 확인 init 6 # 재부팅
물리 파티션 생성
- 문제
- 100MB 물리 파티션 생성, /meet에 mount 하시오
- 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
find /sys -name scan # 가장 마지막 host 내용 드래그 echo "- - -" > /sys/device/~~ # 마지막 host 내용 붙이기 fdisk -l # 추가한 HDD list 확인 fdisk /dev/sdb # 추가한 /dev/sdb를 fdisk 명령어를 이용하여 실행 p # 파티션 테이블 출력(현재의 파티션 정보 확인) n # 새로운 파티션 추가 e # extend 파티션 생성 # Enter # Enter # Enter n # 새로운 파티션 추가 l # logical 파티션 생성 # Enter +100M # 100M 파티션 생성 p # 파티션 테이블 출력(현재의 파티션 정보 확인) w # 저장 partprobe # 파티션 변경 저장 mkfs.ext4 /dev/sdb5 # 포맷 mkdir /meet # mount point 생성 blkid |grep ext4 >> /etc/fstab # 포맷한 장치 UUID 내용 /etc/fstab 파일에 추가 vi /etc/fstab
1 2
# /etc/fstab UUID /meet ext4 defaults 0 0 # 파일 내용 수정
1 2
mount -a # /etc/fstab에 있는 장치 전부 mount fdisk -l # 확인
swap 파티션
- 문제
- 150MB swap 파티션 생성
- 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
free -m # swap 파티션 확인 fdisk /dev/sdb # 추가한 /dev/sdb를 fdisk 명령어를 이용하여 실행 n # 새로운 파티션 추가 l # logical 파티션 생성 # Enter +100M # 150M 파티션 생성 t # 파티션 type 변경 # Enter 82 # swap 파티션 선택 p # 파티션 테이블 출력(현재의 파티션 정보 확인) w # 저장 partprobe # 파티션 변경 저장 mkswap /dev/sdb6 # 포맷 swapon /debv/sdb6 # swap 활성화 blkid | grep swap >> /etc/fstab # 포맷한 장치 UUID 내용 /etc/fstab 파일에 추가 vi /etc/fstab
1 2
# /etc/fstab UUID swap swap defaults 0 0 # 파일 내용 수정
1 2 3
mount -a # /etc/fstab에 있는 장치 전부 mount swapon -s # swap 적용 확인 free -m # swap 파티션 확인
repo 추가
- 문제
- repo http://content.example.com/rhel7.0/x86_64/dvd server.repo
- 풀이
1 2 3
yum-config-manager --add-repo=http://content.example.com/rhel7.0/x86_64/dvd # repo파일 내용 자동 생성 mv http://content.ex~.repo server.repo # repo명 변경 vi /etc/yum.repos.d/server.repo # repo 내용 편집
1 2 3 4 5 6
# /etc/yum.repos.d/server.repo [server] name=server basurl=http://content~~ enabled=1 gpgcheck=0
1 2 3
yum clean all # 캐시 삭제 yum -y repolist # repolist 설치 yum list
kernel 업데이트(재부팅 필수)
- 문제 1
- kernel update http://content.example.com/rhel.7.0/x86_6/errata
- 재부팅 시에도 기본 커널은 업데이트 된 커널
- 원래 커널은 시스템에서 사용 & 부팅가능
- 풀이
1 2 3
yum-config-manager --add-repo=http://content.example.com/rhel.7.0/x86_6/errata # repo파일 내용 자동 생성 mv http://content.ex~.repo kernel.repo# repo명 변경 vi /etc/yum.repos.d/kernel.repo
1 2 3 4 5 6
# /etc/yum.repos.d/kernel.repo [kernel] name=kernel basurl=http://content~~ enabled=1 gpgcheck=0
1 2 3 4 5
yum update kernel # 커널 업데이트 grub2-editenv list # 현재 설정 된 부팅 1순위 확인 grub2-set-default 0 # 업데이트 된 커널로 부팅할 수 있도록 설정 init 6 # 재부팅해야 적용 yum list kernel # 커널 2개 존재 확인
- 문제 2
- kernel update만 http://content.example.com/rhel.7.0/x86_6/errata
- 풀이
1 2 3 4 5 6
uname -a # 커널 정보 확인(업데이트 ver확인) yum list | grep kernel-* # yum list에 커널 정보 확인 yum update kernel # 커널 업데이트 grub2-editenv list # 현재 설정 된 부팅 1순위 확인 grub2-set-default 0 # 업데이트 된 커널로 부팅할 수 있도록 설정 init 6 # 재부팅해야 적용
group,user 설정
- 문제
- 보조 그룹이 manager인 harry 계정, sara 계정
- manager 권한이 없는 sarah 계정 생성, sarah는 로그인 불가능
- 모든 계정의 패스워드는 test
- 풀이
1 2 3 4 5 6 7 8 9 10 11 12
groupadd manager # 그룹 생성 useradd harry # harry 계정 생성 useradd sara # sara 계정 생성 usermod -aG manager harry # manager 그룹에 harry 계정 추가 usermod -aG manager sara # manager 그룹에 sara 계정 추가 useradd -s /sbin/nologin sarah # 로그인 불가능한 sarah 계정 생성 echo test | passwd --stdin harry # harry 계정 비밀번호 test로 설정 echo test | passwd --stdin sara # harry 계정 비밀번호 test로 설정 echo test | passwd --stdin sarah # harry 계정 비밀번호 test로 설정 id harry # 비번 확인 id sarah # 비번 확인 su - sarah # sarah 계정으로 로그인 불가능 확인
디렉토리 그룹 소유권
- 문제
- /redhat/manager 디렉토리 생성, 그룹 소유권은 manager (자동 설정)
- manager의 멤버들은 읽고 쓰고 접근 가능, 다른 유저는 불가능
- 풀이
1 2 3 4 5 6 7
mkdir -p /redhat/manager # 디렉토리 생성 chgrp manager /redhat/manager # 그룹소유권 manager로 설정 chmod 2770 /redhat/manager # 권한 설정 ls -ltr /redhat # 권한 확인 cd /redhat/manager touch abc.txt ls -ltr abc.txt # 권한 확인
IP forwarding 활성
- 풀이
1
vi /etc/sysctl.conf
1 2
# /etc/sysctl.conf net.ipv4.ip_forward = 1 # <name>아래에 내용 추가
1
sysctl -p # 확인
LDAP 인증
- 문제
- LDAP 검색 베이스 dc=example,dc=com
- LDAP 인증서 파일 http://classroom.example.com/pub/EXAMPLE-CA-CERT
- ldapuserX는 시스템에 로그인 (X는 도메인 번호)
- 풀이
1 2 3 4
yum install -y auth* # LDAP 인증 설치 yum install -y authconfig-gtk sssd krv5-workstation yum install -y sssd* autoconfig-gtk
- dc=example,dc=com
- ldap=://classroom.example.com
- TLS
- http://classroom.example.com/pub/EXAMPLE-CA-CERT
LDAP password 선택
- 풀이
1 2 3
systemctl enable sssd.service # LDAP 인증 데몬 : sssd systemctl restart sssd.service getent passwd ldapuserX # 확인
LDAP 자동 mount
- 문제
- LDAP 사용자의 홈디렉토리를 자동 mount하도록 autofs 구성
- classroom.example.com ext4를 /home/guests를 시스템으로 내보냄
- LDAP user X의 홈디렉토리 classroom.example.com/home/guests/ldapuserX
- 홈디렉토리 사용자가 사용 가능
- LDAPuser1 ~ 20까지 사용자로 로그인 가능, 시스템 엑세스는 ldapuserX 유일
- 풀이
1 2 3
yum install -y autofs* mkdir -p /home/guests # mount point 생성 vi /etc/auto.master.d/home.autofs # 확장자 무**문제** .autofs
1 2
# /etc/auto.master.d/home.autofs /home/guests /etc/auto.home
1
vi /etc/auto.home # mount 옵션 설정
1 2
# /etc/auto.home ldapuser X -rw,sync, classroom.example.com:/home/guests/ldapuserX
1 2 3 4 5
systemctl enable autofs.service # autofs 데몬 systemctl restart autofs.service # autofs데몬 su - ldapuserX # 로그인 확인 password cd # 로그인 확인
NTP
- 문제
- classroom.example.com
- 풀이
1 2
yum install -y chrony # NTP 설치 vi /etc/chrony.conf # NTP 설정 파일
1 2
# 기존 서버 전부 주석처리 server classroom.example.com ibrust # 추가
1 2 3
systemctl enable chronyd.service # NTP 데몬 systemctl restart chronyd.service # NTP 데몬 chronyc sources -V # NTP 도메인 확인
ACL
- 문제
- /etc/fstab 파일을 /var/tmp에 복사하여 /var/tmp/fstab 파일이 루트 사용자가 소유하도록 권한 구성
- harry 사용자는 /var/tmp/fstab 읽기, 쓰기 가능
- sara 사용자는 /var/tmp/fstab 읽기, 쓰기 불가
- 다른 모든 사용자는 /var/tmp/fstab 읽기 가능
- 풀이
1 2 3 4 5 6 7
cp /etc/fstab /var/tmp/fstab # etc/fstab 파일을 /var/tmp에 복사 cd /var/tmp ls setfacl -m u:harry: rw- /var/tmp/fstab # /var/tmp/fstab 읽기, 쓰기 가능한 harry 계정 setfacl -m u:sara: --- /var/tmp/fstab# /var/tmp/fstab 읽기, 쓰기 불가한 sara 계정 setfacl -m o:: r-- /var/tmp/fstab # /var/tmp/fstab 읽기 가능한 다른 모든 계정 getfacl /var/tmp/fstab # 확인
LVM
- 문제
- 물리 볼륨 생성, 볼륨 그룹 이름 datacontainer 생성, vg 범위는 16MB
- 50개의 extend 크기로 datacopy 이름을 가진 새 논리 볼륨 작성
- 파일 시스템 ext4, /datasource에 mount * 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
fdisk -l fdisk /dev/sdb # 추가한 /dev/sdb를 fdisk 명령어를 이용하여 실행 p # 파티션 테이블 출력(현재의 파티션 정보 확인) n # 새로운 파티션 추가 l # logical 파티션 생성 # Enter +1G # 1G 파티션 생성 t # 파티션 type 변경 # Enter 8e # 볼륨 선택(볼륨으로 변경해야 pv 생성 가능) p # 파티션 테이블 출력(현재의 파티션 정보 확인) w # 저장 partprobe # 파티션 변경 저장 pvcreate /dev/sdb7 # 물리 볼륨 생성 vgcreate -s 16M datacontainer /dev/sdb7 # 16M 볼륨 그룹 datacontainer 생성 vgdisplay # 볼륨 그룹 확인 lvcreate -l 50 -n datacopy datacontainer # datacontainer에 속한 크기 50 datacopy 논리 볼륨 생성 lvdisplay # 논리 볼륨 확인 mkfs.ext4 /dev/datacontainer/datacopy # 포맷 mkdir /datasource # mount point 생성 blkid | grep ext4 >> /etc/fstab # 포맷한 장치 UUID /etc/fstab에 추가 vi /etc/fstab
1 2
# /etc/fstab UUID /datasource ext4 defaults 0 0
1 2 3
mount -a # /etc/fstab에 속한 장치 전부 mount fdisk -l # 확인 df -h # mount확인
논리 볼륨 크기 조정
- 문제
- 논리 볼륨 데이터 복사 및 파일 시스템 크기를 400MB 조정
- 파일 시스템 내용 손상 X
- 풀이
1 2 3 4 5 6
df -Th # ext4 경로 확인 umount /datasource/~~~~ # mount 해제 e2fsck -f /dev/datacontainer/datacopy # 파일 시스템 이상 유무 검사,조치 lvreduce -r -L 400M /dev/datacontainer/datacopy # 파일 시스템 크기까지 같이 조정 mount -a # mount lvs # 확인
user가 소유한 파일 찾기
- 문제
- talsan 유저 id 2985 추가
- julice가 소유한 파일 찾아서 /root/findresults 폴더로 복사
- 풀이
1 2 3 4 5
useradd -u 2985 talsan # talsan user id 2985 설정 useradd julice # julice user 추가 mkdir -p /root/findresults find / -user julice -exec cp {} /root/findresults \; # julice가 소유한 파일 찾아서 /root/findresults에 복사 ls /root/findresults # 확인
아카이브 생성, 압축
- 문제 1
- /usr/local에 대한 아카이브 파일 /root/local.tgz 생성 gzip으로 압축
- 풀이
1
tar -zcvf /root/local.tgz /usr/local
- 문제 2
- /root/backup.tar.bz 디렉토리를 bzip2로 압축된 아카이브 파일을 생성하여 /usr/local로 저장
- 풀이
1 2
tar -jcvf /root/backup.tar.bz /usr/local ls
문자열 검색
- 문제
- /etc/passwd 파일에서 sarah 문자열 검색하고 /root/lines에 출력 저장
- 풀이
1 2
grep "sarah" /etc/passwd > /root/lines cat /root/lines
cron 작업
- 문제
- harry 사용자는 매일 14:23에 /bin/echo “hiya”를 실행한는 cron 작업 구성
- 풀이
1 2 3 4
yum install -y cronie # cron 설치 systemctl enable crond # cron 데몬 systemctl restart crond # cron 데몬 crontab -eu harry # cron 설정
1
23 14 * * * /bin/echo "hiya"
1
crontab -lu harry # 확인