할당량 구현

RHCE 2009. 6. 2. 13:42
사용자에게 용량제한, 파일 개수의 제한을 둘 수 있다.
quota 패키지를 사용해서 제한을 둘 수 있다.
그러면 diskhog라는 사용자에게 1024K 보다 더 큰 공간을 사용할 수 없도록 설정하고 용량이 512K를 넘으면 경고메시지가 나오게 설정하는 것을 예제로 배워 나가보자.

1. quota패키지 설치 확인.
   quota패키지가 시스템에 설치 되어 있는지 먼저 확인한다.
   `rpm -qa | grep quota
   명령을 실행해서 존재한다면 'quota-3.13-1.2.3.2.el5'와 같은 형식의 패키지가 있을 것이고,
   없다면 검색이 되지 않늘 것이다.
   만약 없다면 RPM파일을 다운받아서 설치하도록 하자. yum으로 설치해도 된다.

2. /etc/fstab 설정 변경.
   /etc/fstab 파일에 quota를 적용할, 즉 사용자 할당량을 구현할 파티션의 옵션부분에
   default와 함께 usrquota를 추가한다.
   여기서는 /home에 적용한다.

3. Remount
   /etc/fstab의 /home의 옵션을 변경했으니 mount를 다시 해준다.
   `mount -o remount /home`

4. 데이터베이스 생성 및 업데이트
   quota를 구현하기 위해서는 적용할 파티션에 대한 데이터베이스가 생성이 되어 있어야 한다.
   이미 생성이 된 데이터베이스가 있다면 업데이트를 해줘야 quota가 적용 되겠다.
   데이터베이스 파일은 aquota.user나 aquota.group 이라는 이름으로
   해당 파티션 최상위 디렉토리에 저장된다.
   사용자 할당량 구현할 때는 aquota.user파일이 생성되고, 그룹 할당량을 구현할 때는
   aquota.group파일이 생성됨을 기억하자.
   생성 및 업데이트 명령은 quotacheck 명령이다.
   여기서는 `quotacheck /home`을 내려주면 된다.
   위와 같은 명령을 내리면 /home 디렉토리에 aquota.user 파일이 생성 및 업데이트가 되는데
   quotacheck에는 아래와 같이 옵션이 있다고 한다.
   -a : 디스크 사용량 할당 활성화, 마운트된 파일 시스템 확인.
   -u : 사용자 계정 디스크 사용량 할당 정보 체크
   -g : 그룹 디스크 사용량 할당 정보 체크
        사용자 할댱량 구현이 아닌 그룹 할당량은 이 옵션을 쓰면 된다.
        즉, 만약 /home에 그룹할당량을 구현할 때는
        `quotacheck -g /home`라고 하면 된다는 말이다.
   -v : 사용량 할당 확인 작업의 진행을 상세한 정보로 보여줌.
   -c : 디스크 사용량 할당 파일 생성.
   -m : file system이 동작 중인 상태에서 강제로 quotacheck
   -f : 디스크 사용량 할당이 비활성화 시에 강제로 quotacheck 시도
   위에서 내린 명령처럼 `quotacheck /home` 해도 되는데, 위의 옵션을 이용해서
   ` quotacheck -acugfmv`을 입력하면 /home에 자동으로 데이터베이스가 업데이트 된다.
   /etc/fstab에 설정된 usrquota옵션을 체크해서 /home을 자동으로 찾는 것 같다.

5. quotaon
   데이타베이스를 생성/업데이트 했다면 quota를 시작할 수 있다.
   사용자 할당 세부 설정을 하기 이전에 quota를 먼저 시작해도 된다.
   `quotaon /home`

6. 사용자 할당 세부 설정.
   edquota명령을 이용해서 사용자에게 사용량, 파일 개수를 제한한다.
   `edquota diskhog`
   위와 같은 명령을 내리면, 아래와 같이 설정 화면이 vi 편집기를 통해 보여진다.
   Disk quotas for user diskhog (uid 722):
   Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda7                        48          0          0         15        0        0
   blocks는 현재 사용용량을 표시한다.
   soft는 경고 메시지를 보낼 용량을 표시한다.
   즉 여기에 적은 용량이 넘으면 경고 메시지가 사용자에게 보여진다.
   여기서는 예제의 조건에 맞게 512정도로 적으면 된다.
   hard는 최대 용량을 표시한다. 여기서는 1024K를 넘으면 안되므로 1024를 적으면 된다.
   용량 단위는 K바이트이다.
   inodes는 현재 파일, 디렉토리의 사용 개수를 표시한다.
   soft, hard는 위와 마찬가지이고 다른 점은 여기는 용량이 아니라 파일의 개수라는 것이다.
   * diskhog의 quota설정을 똑같이 다른 사용자에게도 적용하려면
     `edquota -p diskhog 적용할 사용자명`과 같이 명령을 내리면 된다.
   할당량 세부 설정은 위와 같이 edquota명령을 사용해서 설정해줄 수도 있고,
   setquota명령을 사용할 수도 있다.
   `setquota -u diskhog 512 1024 0 0 /home`
   이런식으로 말이다!

7. 할당량 확인
   현재 시스템에서 할당량 제한이 적용된 현황을 확인할 수 있다.
   `repquota /home`
   위와 같이 명령을 내리면 아래와 같이 결과가 나타난다.
   User            used    soft    hard  grace    used  soft  hard  grace
-------------------------------------------------------
root      --  154252       0       0              8     0     0      
scv       --      64       0       0             16     0     0      
drone     --      48       0       0             12     0     0      
probe     --      48       0       0             12     0     0      
myungsik  --      48       0       0             12     0     0      
sehun     --      48       0       0             12     0     0      
guest     --      48       0       0             12     0     0      
movie     --     188       0       0             39     0     0      
admin     --      48       0       0             12     0     0      
student   --   11464       0       0            215     0     0      
visitor   --      52       0       0             13     0     0      
joshua    --      52       0       0             13     0     0      
alex      --      52       0       0             13     0     0      
dax       --      48       0       0             12     0     0      
bryan     --      48       0       0             12     0     0      
zak       --      48       0       0             12     0     0      
ed        --      48       0       0             12     0     0      
manager   --      48       0       0             12     0     0      
diskhog   --       48      512   1024            15     0     0      

맨 아래에 diskhog를 보면 1024k가 넘지 않도록 잘 설정되어 있다.
soft, hard에 0이 입력이 된 것은 quota를 사용하지 않는 의미이다

[출처] 할당량 구현|작성자 이경모

'RHCE' 카테고리의 다른 글

사용자를 다수의 그룹에 포함시킬 때...  (0) 2009.06.02
생성되는 사용자의 umask값 조정  (0) 2009.06.02
ACL (Access Control List)  (0) 2009.06.02
보안 문맥  (0) 2009.06.02
chcon / restorecon  (0) 2009.06.02
Posted by 으랏차
,