[quota]
- 사용자 및 그룹별로 디스크 사용량 및 inode(파일 갯수) 제한 설정
- 패키지 파일명 : quota
사전준비
반드시 selinux 를 disable 또는 Permissive로 설정해야함
1. /etc/sysconfig/selinux 파일을 수정
2.임시적인 방법
-명령어
setenforce 0
- selinux=permissive로 설정
getenforce
- selinux 상태 확인
* 단 리눅스 재부팅, 서비스 재시작 시 초기화 됨
quotacheck
- 디스크를 사용하고 있는 파일 시스템을 체크햐여 quota 기록파일을 생성 및 업데이트
- 형식
quotacheck [옵션] 디렉토리
* 옵션
-a : 사용자와 그룹에 대한 quota 체크
-v : quotacheck 프로세스 출력
-g : 그룹 quota 파일 체크 옵션
-u : 사용자 quota 파일 체크 옵션
-m : 읽기 전용 모드 등의 이유로 mount 하지 못할 때 강제로 quota를 check한다
edquota
- quota 설정 명령어
- 형식
edquota <옵션> <값>
* 옵션
-u : 사용자별 할당량 설정
Filesystem blocks soft hard inodes soft hard
장치명
-> blocks는 용량, inodes는 갯수를 제한
-> soft link는 유예기간 동안 설정치를 넘을 수 있지만 hard link는 설정 제한을 절대 넘길 수 없다는 차이가 있음
-t : 사용자별 유예기간 설정
quotaon / quotaoff
- quota 활성화 / 비활성화 명령어
- 형식
quotaon 디렉토리
quotaoff 디렉토리
repquota
- quota 모니터링 명령어
* 옵션
-a : /etc/mtab에 따라 quota 상태 표시
-g : 그룹에 대한 quota 상태 표시
-u : 사용자에 대한 quota 상태 표시
테스트용 계정 rwj 및 마운트 포인트로 사용할 디렉토리 /quo, /quo2 생성, 10G 크기의 하드 디스크 추가 후 진행한다


sdb를 5G씩 두개의 주파티션으로 생성한 후 파일 시스템 지정까지 완료한다
사용자 계정에 대한 quota 설정에 sdb1을 그룹에 대한 quota 설정에 sdb2를 사용할 것이다
[사용자 계정에 대한 quota 설정]
mount /dev/sdb1 /quo 명령어로 파티셔닝한 sdb1을 /quo 디렉토리에 마운트 시킨다

기본적으로 mount 되어있던 장치들은 시스템 재부팅 시 전부 umount 된다
이 때 부팅시 설정한 장치가 자동으로 mount 하도록 오토마운트 설정을 하는 파일이 /etc/fstab (file system table)이다
형식은 장치명, 마운트 포인트, 파일 시스템 타입, 마운트 옵션(defaults), dump 운용 여부(0), 디스크 검사(0) 여부 순서이다
/dev/sdb1에 대한 오토 마운트 설정을 입력해준다
usrjquota=파일이름
- 저널 사용자 할달량 사용(일반적으로 aquota.user가 필요)
jqfmt=할당량형식
- quota가 지정될 때 상용된 할량량의 형식


mount -o remount 명령어를 통해 재부팅 없이 /etc/fstab에 설정한 값을 적용시켜서 다시 mount 시킨다
이 때 mount 명령어를 통해 설정값을 제대로 입력했는지 mount 된 장치를 꼭 확인 해본다

마운트 포인트 디렉토리로 이동하여 quota 기록 파일을 생성해준다


용량 제한은 soft 20M, hard 30M로 설정하고 유예기간은 4일로 설정했다
[테스트]

quotaon 명령어로 마운트 포인트에 quota를 활성화 시키고 새로운 세션을 생성하여 테스트 계정 rwj로 로그인한다

테스트의 편의성을 위해 3M 크기의 test.txt 파일을 생성한 후 /quo 디렉토리에 복사한다

6개까지 복사했을 때 할당량 제한에 도달했다는 경고 메시지가 출력됐다
(test.txt + 1 +2 ...6 = 3M x 7 = 21M)
원래 세션에서 모니터링 해보면

soft link 제한을 넘었고 그에 따라 유예기간 카운트 다운이 시작된 것을 확인할 수 있다

계속해서 복사했을 때 hard 할당향 제한을 넘기자 디스크 할당량을 초과했다며 오류 메시지가 출력되고
용량 제한을 넘어서 생성된 파일 '10'은 크기가 0으로 정상적으로 복사된 파일이 아님을 확인할 수 있다

모니터리을 해보면 사용자 rwj가 hard link 제한에 도달한 것을 확인할 수 있으며
유예기간 내에 soft link이상을 사용할 수는 있어도 hard link 이상은 사용할 수 없는 것을 알 수 있다

추가적인 테스트를 위해 10부터 경고 메시지가 출력되었던 6까지 파일을 삭제 한다
이번에는 시스템의 날짜를 변경하여 유예기간이 지난 후는 어떤지 테스트 해본다


시스템의 날짜를 유예기간 이후인 2022/10/01로 변경 후 똑같이 파일을 복사하자
아직 hard link 제한에 도달하지 않았음에도 디스크 할당량 초과 오류 메시지가 뜨는 것을 확인할 수 있다
이로써 유예기간이 지나면 soft link 이내로 밖에 사용할 수 없다는 것을 알 수 있다
[그룹에 대한 quota 설정]
그룹 Quo를 생성 후 Quo를 기본그룹으로 가지고 있는 테스트 계정 one, two를 생성한다
이번에는 그룹에 대한 할당량 제한을 설정 해볼 것이다

grpjquota=파일이름
- 저널 사용자 할달량 사용(일반적으로 aquota.group가 필요)
사용자 할당량 제한을 설정할 때와 다르게 설정해줘야함을 주의하자 (usr -> grp, user -> group)


설정한 대로 mount 된것을 확인한다

quota 기록 파일을 생성하려는데 마운트 포인트 /quo 디렉토리에 사용자 계정 quota가 적용중이라
파일이 깨질 수 있다는 경고 메시지가 출력됐다 -f 옵션으로 무시할 수 있지만 quota 적용을 끈 후에 작업하도록 하자

문제 없이 생성되는 것을 확인할 수 있다

설정값은 아까 그대로 soft 20M, hard 30M, 유예기간 4일로 설정 해준다
사용자 설정 때와 다르게 edquota -g 옵션과 -T -g 옵션으로 Quo 그룹에 대한 용량 설정과 유예기간을 설정해준다

테스트는 동일하게 진행된다
먼저 그룹에 속한 일반 사용자가 마운트 포인트에 접근하여 사용할 수 있도록 acl 설정 후
할당량 제한을 초과하도록 파일을 복사 후 모니터링 한다


사용자 one으로 접속 후 테스트 해 보니 그룹 할당량 설정이 잘 된것을 확인할 수 있다
계속해서 two로도 접속해서 할당량을 초과시켜 본다


soft link는 이미 넘었음에도 경고 메시지가 출력되지 않는다는 차이점이 있다


하지만 역시 hard link 제한을 넘길 수는 없다는 것을 확인할 수 있다
'Linux' 카테고리의 다른 글
Local Repository (0) | 2022.09.21 |
---|---|
패키지 관리(RPM&YUM) (0) | 2022.09.21 |
NTFS 디스크 마운트 (0) | 2022.09.20 |
LVM (0) | 2022.09.19 |
Disk & Partition (1) | 2022.09.19 |