Disk Quota
✒️ 2025-05-22 14:35 내용 수정
사용자별로 사용 가능한 용량 및 파일 개수를 제한하는 것
- ex) 이메일 첨부파일 2GB, 카카오톡 첨부파일 300MB, 웹하드 2GB
- 현재 모든 포털사이트들은 첨부파일 중 .exe 형식 차단(랜섬웨어 방지)
작업 순서
- 하드 디스크, LVM, RAID 등 원하는 저장 장치를 생성한다.
- 하드디스크 추가, LVM(Logical Volume Manager), RAID, 디스크 관련 명령어 참고.
- 마운트까지 완료한다.
gedit /etc/fstab으로 /etc/fstab 파일에 quota를 선언한다.- 하드디스크 추가#5. 자동 마운트 설정에서 옵션 항목 중 quota를 걸 장치 옵션에 userquota 를 추가
init 6로 재부팅하거나mount -o remount 디렉터리명으로 리마운트mount | grep 장치명에서 옵션 부분에 quota, usrquota가 있는지 확인한다.
- quota용 DB를 생성하기 위해 먼저
quotaoff -avug로 모든 quota를 해제하고, 작동중인 quota가 있는지quotacheck -augmn로 확인한다.
cd 마운트포인트로 quota를 설정할 장치의 마운트포인트 디렉터리로 이동한다.- 디렉터리 안에서
touch aquota.user로 파일을 생성한 후chmod 600 aquota.user로 파일 권한을 수정한다.
-
quotacheck -augmn나quotacheck -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에서 문제가 발생한 것으로 보인다.
-
사용자별 quota를 설정하기 위해
edquota -u 계정명을 입력한다.- vi 에디터로 열린다.
- 설정이 완료되면 :wq 로 저장 후 종료를 해준다.
| Filesystem | blocks | soft | hard | inodes | soft | hard |
|---|---|---|---|---|---|---|
| 장치이름 | 현재 사용용량 | 파일 개수 관리 |
- soft : 오버 가능한 용량 및 파일 개수
- hard : 전체 용량 및 파일 개수
- Block grace period : blocks에서 soft 제한이 있을 때 파일 유예 기간
- Inode grace period : inodes에서 soft 제한이 있을 때 파일 유예 기간
- ex) 유저별로 용량 100MB로 제한. 98MV 사용 중에 10MB의 업로드가 필요한 경우
- hard : 100MB
- soft : 110MB
- 해당 유저의 quota 설정을 다른 유저에게도 적용 시킨다면
edquota -p 원본설정유저 적용시킬유저를 입력한다.- 설정을 적용해준 유저의 설정 항목을
edquota -u 적용시킨유저로 입력 후 파일을 보면 원본 설정과 같은 것을 확인할 수 있다.
- 설정을 적용해준 유저의 설정 항목을
- 이제 quota 활성화를 활성화하기 위해
quotaon 디렉터리명을 입력한다.mount | grep 디렉터리명: 출력되는 정보에서 mount된 장치의 디렉터리가 usrquota 옵션이 활성화 되어있는지 확인repquota 디렉터리명에서도 quota된 장치 목록을 확인할 수 있다.
- 현재 어떤 유저도 해당 디렉터리에 파일을 만들지 않아 root 만 뜬다. 사용자로 접속해서 파일을 만들면
repquota 디렉터리에 뜨는지 확인해보았다.
- 테스트를 위해 사용자 user1이 사용할 마운트 포인트 내의 디렉터리를 생성했다.
mkdir user1으로 생성한 뒤chown user1 user1로 해당 디렉터리의 소유자를 user1으로 바꿔주었다.
- 다른 사용자로 다시 터미널에 로그인하거나, 아니면 테스트를 위해
su user1로 사용자를 변경한다. - 사용자가 바뀐 것을 확인했다면 해당 디렉터리로 이동해 테스트용 파일을 생성한다.
touch 파일을 한 후 vi나 gedit으로 내용을 추가하거나,cat > 파일명으로 내용을 넣는다.ls -l을 사용하면 파일 크기를 확인할 수 있다.
- 만약 사용자로 로그인한 상태에서
repquota 디렉터리를 쓰면 허가 거부로 작동하지 않는다. (관리자만 사용 가능한 명령어임을 알 수 있다.) - root로 다시 로그인하거나, exit로 현재 로그인 된 사용자를 로그아웃 하거나, su root로 root 계정으로 전환한 후 다시
repquota 디렉터리를 입력하면 이번엔 user1이 파일을 추가해서 disk quota 정보에 뜨는 것을 확인할 수 있다.