Home RHCSA RedHat Linux 7 유형별 연습
Post
Cancel

RHCSA RedHat Linux 7 유형별 연습

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  # 확인