2020. 9. 3. 17:20ㆍBACKEND/Linux
안녕하세요 〰️ 오늘은 리눅스의 권한 관리하는 법 3부입니다.
원래 특수권한과 같이 발행하려고 했는데, 포스팅의 길이가 너무 길어져서 따로 분리했습니다 🤣
***************** INDEX *****************
[1부]
🚀 권한 관리❓
💼 소유권(Ownership)
🔑 허가권(Permission)
[2부]
👾 특수 권한
[3부]
📀 디스크 쿼터
💼 디스크 쿼터 설정하기
⚡️ 디스크 쿼터 명령어
********************************************
📀 디스크 쿼터
파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것입니다.
사용자나 그룹이 가질 수 있는 inode의 수나 할당된 디스크 블록 수를 제한합니다.
보통 블록 단위의 용량 제한과 inode의 개수를 제한합니다 〰️
왜 이렇게 사용자별로 제한하는 것일까요❓
리눅스는 다중 사용자 운영체제이며, 사용자별로 할당량이 따로 정해져있지 않습니다.
따라서, 한 명이 용량을 전부 사용해도 문제가 되지 않습니다.
이를 막기 위해서 디스크 쿼터라는 개념을 도입한 것이죠.
쿼터는 사용자별, 파일 시스템별로 동작되며, 그룹 단위로도 용향을 제한할 수 있으며 웹호스팅 서비스를 하는 경우에 유용합니다.
💼 디스크 쿼터 설정하기
참고 : 우분투에서 디스크 쿼터를 설정하려면 먼저 quota 패키지를 설치해야합니다❗️
sudo apt install quota
sudo apt install quota
🧷 /etc/fstab
$ cat /etc/fstab
/dev/sdb1 /QUOTA ext4 defaults, usrjquote=aquota.user, jqfmt=vfsv0 1 2
디스크 쿼터와 관련된 정보는 /etc/fstab에 담겨있습니다.
설정된 옵션이 무슨 의미를 가지는지 몇 개만 확인해볼게요.
옵션 | 적용 대상 | 설명 |
quota | fsfold, vfsv0 | ✔️사용자 할당량 사용 |
gquota | xfs | ✔️그룹 할당량 사용 |
usrquota | 모든 유형 | ✔️사용자 할당량 사용 |
grpquota | 모든 유형 | ✔️그룹 할당량 사용 |
usrjquota=파일명 | vfsv0 | ✔️저널 사용자 할당량 사용. ✔️jqfmt 옵션의 스팩 및 할당량 데이터베이스 파일 이름이 필요 ✔️일반적으로 사용되는 파일명은 aquota.user |
grpjquota=파일명 | vfsv0 | ✔️저널 사용자 할당량 사용. ✔️jqfmt 옵션의 스팩 및 할당량 데이터베이스 파일 이름이 필요 ✔️일반적으로 사용되는 파일명은 aquota.group |
jqfmt=format | vfsv0 | ✔️usrjquota 또는 grpjquote가 지정될 때 사용된 할당량의 형식 ✔️현재는 vfsv0가 유일하게 지원되는 형식 |
위의 표만 보면 혼란스러운데요,,,,ㅠㅜ
어떻게 적용하면 될까요❓
사용자 쿼터만 지정하려면 usrjquota=aquota.user,jqfmt=vfsv0 와 같이 설정해주면 됩니다.
그룹 쿼터만 지정하려면 grpjquota=aquota.grp,jqfmt=vfsv0 와 같이 설정해주면 됩니다 〰️
둘 다 지정하려면 어떻게 해야할까요❓
usrjquota=aquota.user,grpjquota=aquota.grp,jqfmt=vfsv0 으로 설정하면 됩니다 〰️
/etc/fstab 파일을 변경한 후, 적용시키고 싶다면 mount를 다시 해줘야하는데요.
두 번째 단계를 같이 해봅시다 〰️
🧷 remounting
$ mount -o remount /QUOTA
$ mount
/dev/sdb1 on /QUOTA type ext4 (rw, usrjquota=aquota.user, jqfmt=vfsv0)
🧷 쿼터 파일 삭제
이번에는 쿼터 파일을 다시 작성하기 위해 기존의 쿼터 파일을 삭제해볼게요.
하나씩 살펴보도록 할까요❓
디스크 쿼터 기능 해제 : quotaoff
$ cd /QUOTA
$ quotaoff -augp
group quota on /QUOTA (/dev/sdb1) is off
user quota on /QUOTA (/dev/sdb1) is off
파일 시스템의 쿼터 관련 점검 : quotacheck
$ quotacheck -augmn
생성된 쿼터 파일 삭제
$ rm -rf aquota.*
명령어는 이후에 더 자세히 알아보도록 하겠습니다.
🧷 쿼터 데이터베이스 생성
먼저, 디스크 쿼터 파일 생성 후 권한 설정을 해줍니다.
$ touch aquota.user aquota.group
$ chmod 400 aquota.*
$ quotacheck -augmn
참고로 aquota.user 파일은 사용자 쿼터 파일이고, aquota.group 파일은 그룹 쿼터 파일입니다 〰️
다음으로 쿼터 관련 점검 후 쿼터 서비스를 개시합니다.
명령어 quotaon은 쿼터 서비스를 활성화합니다.
$ quotaon -avug
/dev/sdb1 [/QUOTA]: user quotas turned on
이제 꺼졌던 디스크 쿼터가 다시 켜졌습니다.
🧷 사용자별 쿼터 지정
$ edquota -u gngsn
Disk quotas for user gngsn (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 10240 15360 0 0 0
각 필드별로 보여주는 데이터는 어떤 의미를 가질까요❓
Filesystem : 사용자별 쿼터를 할당하는 파일 시스템
blocks : 현재 사용자가 사용하는 디스크 블록 (KB)
soft : 한 파티션에서 사용자가 사용할 수 있는 최대 용량. 유예기간 내에 사용자는 사용 용량 초과에 대해 경고를 받지만, hard보다 적으면 초과 가능.
hard : 유예 기간이 설정되어 있을 때만 동작. 디스크 사용에 있어 정대적인 사용 제한으로 용량 초과 불가
indes : 현재 사용자가 사용하는 inodes(파일과 디렉터리) 개수
soft : 사용자에게 지정된 파일과 디렉터리 생성 개수
유예기간 grace❓
첫 번째 soft의 설명글에 유예기간이 나오는데요.
soft limit용량을 넘은 후부터 적용되는 어느정도의 한계선입니다. 시간은 sec, min, hour, day, month 단위이며, 확인하고 싶다면 아래의 edquota (-t)를 참고하세요 〰️
⚡️ 디스크 쿼터 명령어
자, 이제부터는 위에서 나온 명령어들을 정리해볼게요.
✔️ quotaoff
$ quotaoff [option]options
-a : 파티션 정보 출력
-u : 사용자 쿼터 비활성화
-g : 그룹 쿼터 비활성화
-v : 메시지 출력
쿼터 서비스를 비활성화 하는 역할을 합니다.
✔️ quotacheck
$ quotacheck [option] options
-a : 파티션 정보 출력 (all)
-u : 사용자 쿼터 비활성화 (user)
-g : 그룹 쿼터 비활성화 (group)
-m : 재마운트를 생략 (no-remount)
-n : 첫 번째 검색된 것을 사용 (user-first)
-p : 처리 결과를 출력(print-state)
-v : 파일 시스템의 상태를 보여줌(verse)
파일 시스템의 디스크 사용상태를 검색합니다. quota 기록 파일인 'quota.user, quota.group'이나 'aquota.user, aquota.group' 파일들을 최근 상태로 갱신하기 위해 사용합니다.
✔️ edquota
$ edquota [option] [계정명 or 그룹명] options
-u : 사용자 디스크 할당량 설정
-g : 그룹 디스크 할당량 설정
-t : 디스크 할당량 유예 기간 설정
-p : 디스크 할당량 설정을 다른 사용자와 동일하게 설정
편집기를 이용하여 사용자나 그룹에 디스크 사용량을 할당하는 명령어입니다.
예시를 보면,
$ sudo edquota -p user1 user4
$ quota -p user4
user1의 디스크 할당량을 user4에게 동일하게 설정하는 명령어와 쿼터 정보를 확인하는 quota 명령어입니다.
✔️ setquota
$ setquota [option] [계정명 or 그룹명] [Block soft limit] [Block hard limit] [inode soft limit] [inode hard limit] [파티션명] options
-u : 사용자 디스크 할당량 설정
-g : 그룹 디스크 할당량 설정
-a : 해당 시스템의 모든 설정
-t : 유예 기간을 초단위로 설정
편집기가 아닌 명령행에서 직접 사용자나 그룹에 디스크 사용향을 할당하는 명령어입니다
쓰는데 시간이 정말 많이 들었어요,,, 그래도 확실히 개념을 정리하고 나니 좋네요~.~
다음에는 파일시스템에 대해 작성해볼 예정입니다 ^~^
'BACKEND > Linux' 카테고리의 다른 글
LINUX, shell 알아보기 (0) | 2020.10.11 |
---|---|
LINUX, 특수 권한 (2) | 2020.09.03 |
LINUX, 권한 관리하기 (0) | 2020.08.28 |
정규식, 제대로 사용하기 - 심화 (4) | 2020.08.16 |
정규식, 어렵지 않게 사용하기 - 기본 (0) | 2020.07.07 |
Backend Software Engineer
𝐒𝐮𝐧 · 𝙂𝙮𝙚𝙤𝙣𝙜𝙨𝙪𝙣 𝙋𝙖𝙧𝙠