>> Edit article
이름
제목
패스워드
알짜 레드헷 배포판은 기본으로 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 defaults 1 1 /dev/hdb1 /home ext2 defaults, usrquota, grpquota 1 1 사용자와 그룹의 제한을 위한 두 개의 파일을 만듭니다. 위치는 반드시 /home 디렉토리가 있는 디스크의 루트에 만들어야 합니다. # touch quota.user # touch quota.group # chmod 600 quota.user # chmod 600 quota.group 파일을 만든 후 사용권한을 바꿉니다. 나중에 만들어진 파일을 열어보면 이상한 문자만 가득 차 있습니다. 이제 다시 재 부팅을 하고 quota를 실행합니다. 먼저 부팅이 되고 나면 quotacheck를 하고 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] then 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를 쓰고 UID가 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 디렉토리에서 각 계정 사용자들의 메일이 계정 이름으로 하나의 파일로 저장되므로 쿼터에 의해 받는 메일의 용량을 제한 할 수 있습니다.
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved