개발/Linux

Linux - Quota (user)

잇(IT) 2022. 3. 10. 13:00
728x90

11. Quota

- 사용자 및 그룹별로 디스크 사용량을 제한한다. 쿼터는 설정을 유저와 그룹으로 제한 할 수 있다.

 

다음은 quota를 설정하는 절차다.

1. getenforce

2. 설치 - yum install -y quota

3. # mount /dev/sdb1 [경로, 디렉토리]

4. # vi /etc/fstab(filesystem table)

5. # mount -o remount [경로, 디렉토리]

6. cd [경로, 디렉토리]

7. # quotacheck -F vfsv0 -avugm

8. # edquota -u [사용자명]

9. # edquota -t

10. # quotaon [경로, 디렉토리]

11. # repquota -a

 

11.1 quota user 생성

 

먼저 getenforceselinux가 해제되어 있는지 확인하고 quota 패키지를 설치 한다.

 

rpm -qa quota 명령어를 사용해 설치가 되어 있는지 확인이 가능하다.

 

디스크 하나를 파티셔닝 시켜준다.

 

파일 시스템을 ext4로 포맷 시킨다.

 

quota로 용량을 제한할 디렉토리를 생성 및 마운트를 시킨다.

 

/etc/fstab 파일을 편집기로 실행시켜 내용을 변경 시켜준다.

 

제일 마지막 줄에 위와 같이 추가 시켜 준다.

 

/dev/sdb1       /quo    ext4    defaults,usrjquota=aquota.user,jqfmt=vfsv0      0 0

 

/dev/sdb1        : 디바이스 이름

/quo               : 마운트 포인트, 마운트 시킨 디렉토리명

ext4                : 타입, 파일 시스템 종류

defaults           : rw, nouser, auto, exec, suid 속성을 모두 가진다.

usrjquota=aquota.user,jqfmt=vfsv0                 : 커널과 파일 시스템에서 저널링을 지원할 때, 사용자 quota를 적용시킨다는 뜻

0                    : Dump0이 아닌 값은 파일 시스템이 백업 되어야 하고, 0은 백업이 없음을 나타낸다. dump라는 파일 시스템 자체를 백업할 수 있는 명령어의 사용 여부를 결정한다.

0                    : Pass로 어떤 파일 시스템이 체크되어야 하는지 순서를 확인한다. 0은 파일 시스템이 체크되지 않는다라는 뜻이고, 1이 가장 먼저 21의 작업이 끝나고 난 이후에 검사한다.

 

mount -o remount /quo를 사용하여 다시 마운트를 시킨다. 이 명령어는 이전에 디렉토리에 마운트가 되어 있어야 한다.

 

마운트 시킨 디렉토리로 이동한다.

 

디렉토리로 이동한 다음 quotacheck -F vfsv0 -avugm 명령어를 사용해 quota를 체크한다.

아래 Check Directories가 확인되면 정상작도 된 것임을 알 수 있다.

 

quota를 체크한 디렉토리를 확인해보면 다음과 같이 aquota.user가 생성된 것을 볼 수 있다.

 

edquota -u(유저) a(사용자) 명령어를 사용하여 quota를 수정해준다.

 

Filesystem       : quota를 적용 시킬 디스크

block              : 해당 크기로 제한

soft                : 사용자나 그룹이 해당 파티션에서 자유롭게 사용할 수 있는 용량과 파일의 개수를 정의, soft에서 설정한 용량을 초과하게 되면 유예 기간에 돌입하게 된다. 설정한 유예기간이 지나면 사용이 금지된다.

hard               : 유예 기간이 지나지 않았더라도 절대적으로 초과할 수 없는 용량

 

- softhard 용량을 20mb 30mb로 지정한다. 작성시에는 kb를 기준으로 작성한다.

 

edquota -t는 유예 기간을 설정하는 명령어다.

 

위에서 봤던 soft의 용량을 넘어서게 되면 5일간의 유예 기간동안 hard용량을 넘기 전까지 해당 디스크를 더 사용할 수 있다.

 

quotaon [디렉토리명]

quotaoff [디렉토리명]

on, off를 사용하여 해당 디렉토리의 quota를 실행시키고 종료시킨다.

quotaon으로 quota를 실행 시킨다.

 

repquota -a : 현재 quota에 대한 정보를 출력한다.

위에서 설정한 내용들과 현재 파일의 사용량을 확인 할 수 있다.

 

외부 사용자가 사용할 수 있도록 디렉토리 권한을 바꿔준다.

 

크기가 약 3MB 크기의 파일을 생성한다.

 

다음과 같이 3MB크기의 파일을 6개 생성한다.

 

다음과 같이 사용자 a에 의해서 대략 18MB의 용량이 찬 것을 볼 수 있다.

 

다음으로 파일 하나를 더 생성해 soft 용량을 초과 시켜본다.

 

다음과 같이 soft 용량을 넘어서게 되면 유예 기간이 시작되는 것을 볼 수 있다.

 

후에 hard 용량을 넘을만큼의 파일을 넣는다.

 

a10.txt까지는 용량이 확인되지만 hard용량을 넘어서는 a11.txt의 경우 빈 파일이 전송된 것을 볼 수 있다.

 

다음으로는 파일을 삭제시켜 soft용량을 넘을정도로만 남겨둔다. 이 때 soft 용량을 넘어섰기 때문에 유예 기간이 시작됐을 것이다.

 

다음으로 시간을 임의로 유예기간을 지나는 시점으로 변경 시키고 repquota -a로 확인해보면 유예기간이 none으로 지난 것을 확인할 수 있다.

 

 

11.2 quota 삭제

 

quota를 삭제 절차는

1. quotaoff      : quota를 종료시킨다.

2. rm -f /quo/aquota.user        : 체크하면서 생성된 quota 관련 파일을 삭제한다.

3. umount       : 해당 디렉토리를 언마운트한다.

 

4. vi /etc/fstab  : 작성했던 한 줄을 주석처리하거나 지운다.

5. fdisk /dev/sdb         : 파티셔닝을 해제한다.

728x90

'개발 > Linux' 카테고리의 다른 글

Linux - Local Repository  (0) 2022.03.11
Linux - Quota (group)  (0) 2022.03.10
Linux - ACL (setfacl, getfacl)  (0) 2022.03.09
Linux - LVM 2 (PV, VG, LV)  (0) 2022.03.08
Linux - LVM (PV, VG, LV)  (0) 2022.03.07