Disk Quota

✒️ 2025-05-22 14:35 내용 수정


사용자별로 사용 가능한 용량 및 파일 개수를 제한하는 것


작업 순서

  1. 하드 디스크, LVM, RAID 등 원하는 저장 장치를 생성한다.

diskquota 1.png

  1. gedit /etc/fstab으로 /etc/fstab 파일에 quota를 선언한다.

diskquota 2.png

  1. init 6로 재부팅하거나 mount -o remount 디렉터리명으로 리마운트
    • mount | grep 장치명에서 옵션 부분에 quota, usrquota가 있는지 확인한다.

diskquota 3.png

  1. quota용 DB를 생성하기 위해 먼저 quotaoff -avug로 모든 quota를 해제하고, 작동중인 quota가 있는지 quotacheck -augmn로 확인한다.

diskquota 4.png

  1. cd 마운트포인트로 quota를 설정할 장치의 마운트포인트 디렉터리로 이동한다.
  2. 디렉터리 안에서 touch aquota.user로 파일을 생성한 후 chmod 600 aquota.user로 파일 권한을 수정한다.

diskquota 5.png

  1. quotacheck -augmnquotacheck -cvug 대상디렉터리로 quota 설정 파일을 업데이트한다.

    • 명령어 입력 후 아무것도 뜨지 않았다면 정상적으로 quota 설정 파일이 업데이트 된 것이다.
    • 만약 "quotacheck: Cannot guess format from filename on /dev/sdm1. Please specify format on commandline." 이라는 에러가 뜨면 생성했던 aquota.user 파일을 rm -f aquota.user로 제거한 뒤 quotacheck -augmn를 입력하면 에러 없이 aquota.user를 생성할 수 있다.
    • 참고 자료 : 로픽's 니룩스 -quotacheck 허가거부, cannot guess format from filename 에러
    • 사진 중간에 있는 vi /etc/selinux/config는 SELinux가 꺼져 있는지 확인하기 위해 입력했다. (해당 에러와는 연관 없음을 확인했다.)
    • 개인적 추측으론 예전 실습때 이미 disk quota를 만들어 둔 상태에서 다른 디스크의 disk quota를 설정할 때 quotacheck -augmn에서 문제가 발생한 것으로 보인다.
      diskquota 6.png
  2. 사용자별 quota를 설정하기 위해 edquota -u 계정명을 입력한다.

    • vi 에디터로 열린다.
    • 설정이 완료되면 :wq 로 저장 후 종료를 해준다.
Filesystem blocks soft hard inodes soft hard
장치이름 현재 사용용량 파일 개수 관리

diskquota 7.png

  1. 해당 유저의 quota 설정을 다른 유저에게도 적용 시킨다면 edquota -p 원본설정유저 적용시킬유저를 입력한다.
    • 설정을 적용해준 유저의 설정 항목을 edquota -u 적용시킨유저로 입력 후 파일을 보면 원본 설정과 같은 것을 확인할 수 있다.

diskquota 8.png

diskquota 9.png

  1. 이제 quota 활성화를 활성화하기 위해 quotaon 디렉터리명을 입력한다.
    • mount | grep 디렉터리명 : 출력되는 정보에서 mount된 장치의 디렉터리가 usrquota 옵션이 활성화 되어있는지 확인
    • repquota 디렉터리명 에서도 quota된 장치 목록을 확인할 수 있다.

diskquota 10.png

  1. 테스트를 위해 사용자 user1이 사용할 마운트 포인트 내의 디렉터리를 생성했다.
    • mkdir user1으로 생성한 뒤 chown user1 user1로 해당 디렉터리의 소유자를 user1으로 바꿔주었다.

diskquota 11.png

  1. 다른 사용자로 다시 터미널에 로그인하거나, 아니면 테스트를 위해 su user1로 사용자를 변경한다.
  2. 사용자가 바뀐 것을 확인했다면 해당 디렉터리로 이동해 테스트용 파일을 생성한다.
    • touch 파일을 한 후 vi나 gedit으로 내용을 추가하거나, cat > 파일명으로 내용을 넣는다.
    • ls -l을 사용하면 파일 크기를 확인할 수 있다.

diskquota 12.png

  1. 만약 사용자로 로그인한 상태에서 repquota 디렉터리를 쓰면 허가 거부로 작동하지 않는다. (관리자만 사용 가능한 명령어임을 알 수 있다.)
  2. root로 다시 로그인하거나, exit로 현재 로그인 된 사용자를 로그아웃 하거나, su root로 root 계정으로 전환한 후 다시 repquota 디렉터리를 입력하면 이번엔 user1이 파일을 추가해서 disk quota 정보에 뜨는 것을 확인할 수 있다.

diskquota 13.png