알짜 레드헷 배포판은 기본으로 quota를 지원합니다. 그래서 커널 컴파일이 필요 없습니다
. 용량 제한에는 파일의 숫자를 제한하는 방법과 전체 용량을 제한하는 방법이 있습니다.
파일의 숫자를 제한하는 것을 inode 제한 이라고 하고, 용량을 제한하는 것을 block 제한 이
라고 합니다. 용량은 kilobyte단위입니다. 예를 들어 linux01 사용자는 전체 파일을 100개, 용
량으로는 10Mbyte를 넘을 수 없게 할 경우, inode 는 100 , block은 10000 이 되지요. 먼저 서버의
파일 시스템을 보기 위해 /etc /fstab 파일을 열고 내용을 살펴봅니다. # vi /etc/fstab /dev/hdb1
/ ext2 defaults 1 1 /dev/hdb5 swap
swap defaults 0 0 /dev/fd0 /mnt/floppy ext2
noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 none
/proc proc defaults 0 0 vi /etc/fstab해서 아래와 같이
추가를 합니다. 물론 서버에 따라 설정이 조금씩 차이가 나겠지요. usrquota는 사용자 제한이
고, grpquota는 그룹 제한입니다. 사용자는 개인의 파일 수나 용량의 제한이 되고, 그룹은 그
룹 사용자 전체의 갯수나 용량이 제한되지요. /dev/hdb1 / ext2 def
aults 1 1 /dev/hdb1 /home ext2 defaul
ts, usrquota, grpquota 1 1 사용자와 그룹의 제한을 위한 두 개의 파일을 만듭니다. 위치
는 반드시 /home 디렉토리가 있는 디스크의 루트에 만들어야 합니다. # touch quota.user # touch q
uota.group # chmod 600 quota.user # chmod 600 quota.group
파일을 만든 후 사용권한을 바꿉니다. 나중에 만들어진 파일을 열어보면 이상한 문자만
가득 차 있습니다. 이제 다시 재 부팅을 하고 quota를 실행합니다. 먼저 부팅이 되고 나면 quo
tacheck를 하고 quotaon을 실행합니다. 뒤에 붙는 옵션은 av는 기본 명령, u는 유저, g는 그룹입
니다 # quotacheck -avug /dev/hdb1 Scanning /dev/hdb1 >done Checking .....
Using quotafile /quota.user
엔터키를 딱 치면 커서가 휙휙 돌면서 디스크를 체크하고 업데이트를 했다는 메시지가 뜹
니다. 다음에 quotaon을 실행합니다. # quotaon -avug
quotaon: using /quota.user on /dev/hdb1 : 장치나 자원이 작동 중
이런 메시지가 나오면 성공한 겁니다. quota를 수정하려면 edquota 명령을 줍니다.
# edquota -u linux01
Quotas for user linux01
/dev/hdb1 : blocks in use : 12, limits (soft = 0 , hard = 0 )
inodes in use : 8, limits (soft = 0 , hard = 0 )
위의 보기는 edquota로 사용자 linux01의 정보를 나타낸 것입니다. vi 에디터로 열린 것이므로
수정을 하면 됩니다. block 제한과 inode 제한은 위에서 설명했고, soft는 제한을 넘을 경우
경고만 나타나고 제한을 넘을 수 있지만, hard 는 경고와 함께 용량의 제한을 절대 넘을 수
없습니다. 단, root 는 quota를 걸어도 사용자나 그룹의 제한을 초과해서 디스크를 쓸 수 있습
니다. 그러니까 linux01 사용자는 inode로 10개의 파일을 hard로 제한하면 자신의 디렉토리의
파일 개수가 10개를 넘을 수 없지만 root는 linux01의 디렉토리에 다른 10개의 파일을 옮겨도
경고나 제한 메시지가 나오지 않습니다. 따라서 파일의 갯수는 20개가 되지만 사용자 linux01
은 자신의 홈 디렉토리에 더 이상 파일을 옮겨오거나 만들 수 없지요. 이해가 되실지.... 직
접 한번 해보시면 금방 이해가 됩니다. # edquota -t 위의 명령은 디스크의 사용을 시간단
위로 제한한다는 데, 자세히 모르는 부분입니다. # repquota -a 이 명령은 디스크의 quota 정
보를 다 보여줍니다. 이것도 해보면 금방 압니다. 부팅과 동시에 quota를 사용하려면 시스
템의 init 스크립트 /etc /rc.d/ rc.local 에 다음을 추가합니다. if [-x /usr/sbin/quotacheck] the
n echo "Checking quotas." /usr/sbin/quotacheck -avug echo "Done"
fi if [-x /usr/sbin/quotaon] then echo "Turning on quota"
/usr/sbin/quotaon -avug
fi
그리고, 모든 사용자를 동일하게 지정하기 위해서는 하나의 기준 사용자 ID나, UID를 쓰고 U
ID가 500 이상이면 패턴처리 언어인 awk를 사용해서 한번에 모든 사용자를 처리할 수 있습니
다. # edquota -p linux01 awk -F: '$3 > 499 {print $1}' /etc/passwd -F는 구분인자가 ':'임을 정의합니다.
패스워드 파일의 세 번째는 칼럼은 UID고, 첫 번째는 사용자 이름이 들어 있지요. 열어 보
면 보입니다. /etc/passwd 파일에서 UID 499이상인 사용자들을 linux01과 동일하게 제한하라는 뜻
입니다. tip - 메일 계정사용자의 메일용량제한 /var/spool/mail/ 디렉토리를 독립파티션으로
설정한 후 계정별로 쿼터를 설정합니다. 받는 메일의 임시 저장장소인 /var/spool/mail 디렉토
리에서 각 계정 사용자들의 메일이 계정 이름으로 하나의 파일로 저장되므로 쿼터에 의해
받는 메일의 용량을 제한 할 수 있습니다.