사용자별 공간 할당하기

리눅스는 여러 명의 사용자가 동시에 접속해서 사용할 수 있다.

만약 A라는 사용자가 시스템을 사용 할 때, 루트 파일 시스템에 고의든 실수든 큰 파일들을 계속 복사했다고 가정해보자, 하드디스크가 꽉 차면 시스템 전체가 가동되지 않는 치명적인 문제를 일으킬 수 있다. 이런 상황을 미연에 방지하려면 각 사용자별로 사용할 수 있는 용량을 제한해야 한다. , 사용자가 적정 용량 이상을 사용하지 못하게 함으로써 할당된 양만큼의 공간만 사용하게 한다면 아무런 문제가 발생하지 않을 것 이다.

 

쿼터

쿼터란 파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것

 

실습

하드디스크 1개를 추가한다.

/dev/sdb의 파티션 생성과 포맷을 한 후 ‘/userHome’디랙토리에 마운트한다.

# fdisk /dev/sdb

Command : n

Select : p

Partition Number (1-4) : 1

First sector : enter

Last sector : enter

Command : p

Command : w

# mkfs.ext4 /dev/sdb1

# mkdir /userHome

# mount /dev/sdb1 /userHome

 

재부팅 후에도 인식되도록 /etc/fstab에 등록

/dev/sdb1 /userHome ext4 defautls 1 2

 

임의의 사용자를 생성

useradd d /userHome/john john

useradd d /userHome/bann bann

passwd john

passwd bann

 

/etc/fstab 파일을 편집한다.

기존에 입력되어있던 /dev/sdb1 /userHome ext4 defautls 1 2

defaults 뒤에 ,usrjquota=aquota.user,jqfmt=vfsv0을 추가해준다.

/dev/sdb1 /userHome ext4 defautls,usrjquota=aquota.user,jqfmt=vfsv0 1 2이 되도록 한다.

재부팅 하는 효과를 내기 위해 mount options remount /userHome을 입력해 다시 마운트 한다.

 

쿼터를 사용하려면 쿼터 DB를 생성해야 한다

cd /usrHome

쿼터용 파일 시스템이 마운트된 디렉터리로 이동한다

quotaoff avug

일단 쿼터를 끈다.

quotacheck augmn

파일 시스템의 쿼터 관련 체크를 한다.

rm rf aquota.*

생성된 쿼터 관련 파일을 일단 삭제한다.

quotacheck augmn

다시 파일 시스템의 쿼터 관련 체크를 한다.

touch aquota.user aquota,group

쿼터 관련 파일을 생성한다.

chmod 600 aquota.*

보안을 위해 소유자 외에는 접근하지 못하게 한다.

quotacheck augmn

마지막으로 파일 시스템의 쿼터 관련 체크를 한다.

quotaon avug

설정된 쿼터를 시작한다.


quotacheck 명령어

-a(all)

모든 파일시스템을 체크한다.

-u(User)

사용자 쿼터 관련 체크를 한다.

-g(Group)

그룹 쿼터 관련 체크를 한다.

-m(no-remount)

재마운트를 생략한다.

-n(use-first)

첫 번째 검색된 것을 사용한다.

-p(print-state)

처리 결과를 출력한다.

-v(Verbose)

파일 시스템의 상태를 보여준다.


사용자별 공간 할당

john 사용자와 bann 사용자가 사용할 수 있는 공간을 각각 10MB씩 할당하자. ‘edquota u john’을 입력하면 각 사용자별 또는 그룹별 할당량을 편집할 수 있다



[Filesystem] : 사용자별 쿼터를 할당하는 파일 시스템을 의미한다.

[blocks], [soft], [hard] : 현재 사용자가 사용하는 블록(KB단위)과 소프트 사용 한다, 하드 사용 한도를 의미한다. 현재 john사용자는 28KB를 사용한다는 의미이고 한도는 제한되어있지 않다는 의미다.

[inodes], [soft], [hard] : [blocks]는 용량을 의미하지만, [inodes]inode의 개수를 의미한다(파일의 개수라고 생각하면 쉽다). 현재 john사용자는 7개의 파일을 사용하며, 한도는 제한하지 않았다는 의미다.

 

[blocks]부분에 사용량 제한을 걸어보았다.

[soft]10MB(10240KB) [hard]15MB(15360KB)로 제한을 했다.


확인을 위해 john사용자로 접속을 해 파일을 몇 개 복사한다.

su john

 

$ pwd

 

$ cp /boot/vmlinuz-3* test1

4.9MB 사용

$ cp test1 test2

9.8MB 사용

$ cp test1 test3

14.7MB 사용 소프트 한도 (10MB)를 초과한다.

$ cp test1 test4

19.6MB 사용 하드 한도 (15MB)를 초과해 더 사용할 수 없음. test4 파일은 하드 한도까지 사용할 수 있는 남은 용량 약 204KB 만큼만 파일이 생성된다. 그러므로 test4는 정상적인 파일이 아니다.

$ ls l

 


$ quota 자신에게 할당된 하드디스크 공간을 확인 

[blocks]는 현재 사용자가 사용하는 하드디스크 공간

[limit](=hard)15360KB이므로 이미 제한된 사용량을 모두 사용한 것이다. 그런데 john 사용자에게 허용된 실제 사용량은 [quota](=soft)10,240KB가 된다. 이를 넘는 공간인 5,120KB(15,360-10,240KB)[grace](유예기간) 동안인 6(또는 7) 동안만 사용할 수 있는 것이다. 그러므로 john사용자는 6일 안에 자신의 [quota]사용량인 5,120KB를 넘는 공간을 정리해야 한다.

 

# repquota /userHome : userHome의 사용자별 현재 사용량

소프트 한도를 초과한 사용량에 대한 유예 기간(grace period)은 기본 설정이 7일이다. 이 유예 기간은 ‘edquota t’를 사용해서 변경할 수 있다.


'IT > 리눅스' 카테고리의 다른 글

PXE 정의 및 실습  (0) 2017.01.19
YUM 명령어  (0) 2017.01.16
LVM (logical volume manager) 실습  (0) 2017.01.16
RAID와 RAID 실습  (0) 2017.01.16
리눅스 하드디스크 추가 및 마운트  (0) 2017.01.16

+ Recent posts