사용자별 공간 할당하기
리눅스는 여러 명의 사용자가 동시에 접속해서 사용할 수 있다.
만약 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 |