2023-08-14 14:17:26
728x90
728x90

1. quota
 1.1. journaling: ext4 파일시스템을 이용한 사용자 및 그룹에 대한 디스크 사용량 제한
  1.2. # yum install -y quota
  1.3. # selinux: permissive or disabled
 1.4. # 파티션 -> 파일시스템 -> mount 까지
 1.5. vi /etc/fstab 파일시스템 테이블
장치명    마운트포인트 파일시스템 권한 덤프   검사
/dev/sdb1  /quo ext4 defaults,usrjqouta=aquota.user,jqfmt=vfsv0 0     0
defaults,grpjquota=aquota.group,jqfmt-vfsv0 <- group quota
장치명에 가급적 UUID로 작성 UUID 확인은 lsblk -f

 1.6. # mount-o remount /dev/sdb1
 1.7. # mount
defaults,usrjqouta=aquota.user,jqfmt=vfsv0
 1.8. # cd /quo
 1.9. # quotacheck -F vfsv0 -avugm
-a: 모든 파일시스템에 대해서 체크
-v: view
-u: user
-g: group
-m: aquotauser 파일이 존재해도 무시하고 진행하겠다.
 1.10. # ls
  aquotauser 존재
----------------------------------------------------------------------------------------------------
2. 설정
 2.1. 사용자별 quota 설정
# edquota -u a
용량(kbyte) 갯수
파일시스템 block soft hard | inode soft hard
20480 30720
 2.2 유예기간
# edquota -t
파일시스템 block inode
4days 7days
 2.3. # 시작
   # quotaon /quo
 2.4. repquota -a  quota 현황 확인
---------------------------------------------------------------------------------------------------
3. test
 3.1. a 사용자의 홈디렉토리 /home/a/a.txt 3MB
# dd if=/dev/zero of=/home/a/a.txt bs=3M count=1
 3.2. /quo 디렉토리 권한변경
# setfacl -m :u:a:rwx /quo
 3.3. #su - a
 3.4. # cp a.txt /quo/a1.txt
      # cp a.txt /quo/a6.txt
      # cp a.txt /quo/a7.txt   첫번째 경고메시지
      # cp a.txt /quo/a10.txt
      # cp a.txt /quo/a11.txt   최종 경고 메시지 출력
---------------------------------------------------------------------------------------------------
user quota 생성부터 삭제까지

getenforce permisive or disabled 확인
yum install -y quota quota 설치
lsblk
mkdir /quo mount할 디렉토리 생성
fdisk /dev/sdb lvm 만들어주기
lsblk
mkfs.ext4 /dev/sdb1 sdb1에 ext4 파일시스템 생성
blkid
mount /dev/sdb1 /quo /quo에 sdb1 mount
mount
lsblk -f UUID 확인후 복사
vi /etc/fstab UUID등 저장작업
mount -o remount /quo mount 저장
cd /quo quota 디렉토리 이동
quotacheck -F vfsv0 -avugm quota 체크
edquota -u a a유저에 대한 quota 수정
edquota -t 유예기간 설정
quotaon /quo quota 실행
repquota -a quota 현황확인
dd if=/dev/zero of=/home/a/a.txt bs=3M count=1 용량테스트 파일생성
setfacl -m u:a:rwx /quo quota 디렉토리에 권한 부여
watch -n 2 repquota -a 2초마다 quota 현황확인
cd ../
quotaoff /quo quota 끄기
rm -rf /quo/aquota.user aquota.user 파일 삭제
vi /etc/fstab UUID 지우기
reboot
repquota -a
wipefs -a -f /dev/sdb1 파일시스템 삭제
fdisk /dev/sdb 디스크삭제
------------------------------------------------------------------------------------------------
group quota 생성

groupadd test 그룹생성
useradd -g test a test 그룹에 속한 a유저 생성
useradd -g test b test 그룹에 속한 b유저 생성
fdisk /dev/sdb 파티션 생성 lvm 으로 전환
mkfs.ext4 /dev/sdb1 파일시스템 생성
mkdir /grquo mount할 폴더 생성
mount /dev/sdb1 /grquo /grquo 디렉토리에 /dev/sdb1 mount
lsblk -f UUID 확인 및 복사
vi /etc/fstab UUID등 설정
mount -o remount /grquo /grquo remount
mount remount 확인
cd /grquo quotacheck 하기 위해서 mount한 디렉토리로 이동
quotacheck -F vfsv0 -avugm quotacheck
ls aquota.group 생성됬는지 확인
edquota -g test test그룹의 quota 설정 soft 20480 hard 30720 으로 파일size 제한
edquota -T -g test test그룹의 quota 유예기간 설정 ex)5days
quotaon /grquo /grquo의 quota 실행
dd if=/dev/zero of=/home/a/a.txt bs=3M count=1
dd if=/dev/zero of=/home/b/b.txt bs=3M count=1 용량테스트할 파일 생성
setfacl -m g:test:rwx /grquo /grquo 디렉토리에 test 그룹에대한 권한 부여
watch -n 2 repquota -avg 2초마다 repquota -avg 를 실행 user는 a 그룹은 avg
user a,b 에 접속해 파일생성 후 테스트
-------------------------------------------------------------------------------------------------
1. Package 관리
 1.1. yum(YellowDog Update Manager)
  1.1.1 인터넷상의 저장소(Repository)에서 Package를 다운로드해서 설치
  1.1.2. Linux배포판은 만든 회사에서 Repository 관리
   1.1.3. 장점
   1.1.3.1. package뿐만 아니라 관련된 Lib나 다른 패키지(의존성)까지 다운로드 해서 설치해 준다.
   1.1.4. 단점
     1.1.4.1. 최신 버전은 아니다. 안정화된 버전
     1.1.4.2. 인터넷이 연결되지 않으면 이용 불가능
   1.1.5. 사용법
    #yum 옵션 패키지명
    install: 다운로드 후 설치(다운로드만 가능,설치,취소)
    remove: 삭제
    localinstall: rpm파일을 별도로 다운로드 해서 설치하는 경우에 사용하는 명령어
    list: 현재 리포지토리의 모든 패키지를 출력
    repolist: 리포지토리 목록 출력
 1.2. rpm(Redhat Package Manager)
 1.2.1. binary 설치에 비해서는 쉽다.
  1.2.2. 의존성문제에서 완전히 자유롭지는 못하다.
  1.2.3. # rpm 옵션 패키지명
 1.2.4. 옵션
       i: Install
    U: Install or Update
    v: 필수옵션 아님 view
    h: 설치 진행 과정을 #으로 보여줌
    q: 시스템에 패키지에 관련된 질의
    qa: 설치된 패키지 확인
    qi: 설치된 패키지의 정보
    ql: 패키지내의 파일 및 디렉토리 정보 확인
    qf: 파일이 어느 패키지에 속해 있는지 확인
    e: 삭제, 반드시 패키지 명
 1.3. Binary 설치
소스파일 이름에 OS타입(linux)나 CPU타입(armv6l) 이 적혀 있으면, 이건 바이너리 버전 즉 빌드된 파일이라고 생각하면 된다.
   1.3.1. 장점
몇가지 명령만으로 패키지 설치, 업그레이드, 쿼리 및 제거를 구현할 수 있다.
        설치 속도 측면에서 소스컴파일 설치방식보다 훨씬 빠르다.
  1.3.2. 단점
컴파일 후에는 소스 코드를 볼 수 없다.
기능 선택은 소스패키지만큼 유연하지 않다.
-----------------------------------------------------------------------------------------------------------
1.4. Local Repository
 1.4.1. 인터넷 사용이 불가능한 환경의 경우 yum 명령어 사용불가, 내부망(Local Server)에 Local Repository를 구성한다.
Local Repository 구성 후 http로 서비스를 하면 내부 직원들만 이용할 수 있도록 구성할 수 있다.
 1.4.2. CentOS Vmware 가동상태에서 ISO파일을 Vmware의 CD-ROM에 장착한다. Device status 모두 선택.

 1.4.3. mount 및 package 복사
mkdir /cd cd디렉토리 생성
mount /dev/sr0 /cd cd-rom을 사용하기 위해 /cd에 cd-rom을 mount
df -Th mount 됐는지 확인
mkdir /repo local repository 생성
cp /cd/Packages/* /repo/& cd-rom을 /cd로 mount 했으니 /cd/Packages/에 있는 파일 전부를 /repo로 복사한
다. &는 백그라운드로 실행한다는 의미.
jobs %1 백그라운드 작업 확인

 1.4.4. Repository 생성 Package 설치
yum install -y createrepo

 1.4.5. 기존 Repository 설정 파일 이동
ls -l /repo | wc -l /repo에 복사된 파일을 확인하는데 wc -l로 확인한다.wc -l은 줄의 개수,즉 파일의 개수
mkdir /backup 백업 디렉토리 생성
mv /etc/yum.repos.d/* /backup 기존 Repo 구성 파일을 /backup 디렉토리에 이동

 1.4.6. Local Repository 구성 파일 생성
yum install -y dhcp yum명령어가 동작하는지 테스트
vi /etc/yum.repos.d/local.repo vi편집으로 구성파일 생성

 1.4.7. local.repo 편집 아래의 내용대로 편집
[LocalRepo]
name=LocalRepository 이름지정
baseurl=file:///repo 패키지 저장소의 url 지정
enabled=1
gpgcheck=0 GPG로 서명 검사 여부 0:off 1:on

 1.4.8. Local Repository 생성
createrepo /repo /repo디렉토리에 repository생성
yum repolist repository 확인
yum install -y dhcp Package 설치 테스트
-------------------------------------------------------------------------------------------------------
1.5 Source
 1.5.1. 가장 어렵고 시간이 많이 걸린다.
  1.5.2. 의존성 문제에서 자유롭지 못하다.
  1.5.3. Custermzing이 가능하다. 설치 경로 및 모듈등을 선택해서 설치 가능.
  1.5.4. 필요한 패키지 다운로드 및 설치
# yum install -y weget expat-devel gcc gcc-c++
wget: CLI(Command Line Interface)환경에서 URL을 이용한 파일 다운로드 Util
expat-devel: apache 설치 시 htpasswd error 발생 원인
 expat: XML 파싱(구문분석)하는 C Library
 expat-devel: expat을 가지고 XML 응용 프로그램을 개발하는데 필요한 Library들과 File들
gcc: Linux C Compiler - apr 설치 시 필요
 apr: Apache Portable Runtime으로 여러 플렛폼에서도 일관된 인터페이스를 제공하는 라이브러리를 생성,관리
gcc-c++: Linux C Compiler - pcre 설치 시 필요
 pcre: 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합

#! /bin/bash

#!은 셔뱅(shebang) #! 뒤에 오는 문법을 스크립트 해석하는 프로그램으로 실행
yum install -y wget

웹 페이지로부터 wget(URL)을 통해 파일 다운로드 받는 방식,사용전 yum으로 다운로드 해야함.
mkdir /web
cd /web
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.bz2

wget을 통해 다운로드
yum install -y bzip2

bizp2 다운로드
tar xvfj httpd-2.4.57.tar.bz2

다운로드 받은 파일 아키이브 및 bz2 압축 해제
wget https://downloads.apache.org/apr/apr-1.7.4.tar.bz2
tar xvfj apr-1.7.4.tar.bz2

다운로드 받은 파일 아키이브 및 bz2 압축 해제
cd apr-1.7.4

압축 해제한 디렉토리로 이동
yum install -y gcc
./configure --prefix=/web/apr

./configure: Install을 하기 위한 환경을 설정하는 프로그램
--prefix=: 컴파일된 프로그램을 설치하는 위치 지정
make ; make install

make: 소스파일들을 컴파일하여 프로그램을 빌드
make install: make를 통해 만들어진 설치파일을 알맞은 위치에 설치
cd ..
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.bz2
tar xvfj apr-util-1.6.3.tar.bz2
cd apr-util-1.6.3
yum install -y expat-devel
./configure --prefix=/web/aprutil --with-apr=/web/apr

apr을 /web/aprutil 경로에 설치하며, apr을 참조한다.
make && make install

컴파일하여 프로그램을 빌드하고 완료되면 설치한다.
cd ..
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2 --no-check-certificate
https 사이트에 접근 시 SSL 인증서를 검증한다. --no-check-certificate 증명서 체크하지 않기 옵션
yum install -y gcc-c++
tar xvfj pcre-8.45.tar.bz2
cd pcre-8.45
./configure --prefix=/web/pcre
make && make install
cd ../httpd-2.4.57
./configure --prefix=/web/apache2 --with-apr=/web/apr --with-apr-util=/web/aprutil --with-pcre=/web/pcre/bin/pcre-config
make && make install
/web/apache2/bin/apachectl start

apache 시작 중지는 stop
firewall-cmd --add-port=80/tcp

firewalld 데몬을 통해 방화벽 정책을 구성하고 수정하는 것
80/tcp 포트 추가

728x90