diff --git "a/ch06/6.5 \354\202\254\354\232\251\354\236\220\353\263\204\353\241\234 \352\263\265\352\260\204\354\235\204 \355\225\240\353\213\271\355\225\230\352\270\260.md" "b/ch06/6.5 \354\202\254\354\232\251\354\236\220\353\263\204\353\241\234 \352\263\265\352\260\204\354\235\204 \355\225\240\353\213\271\355\225\230\352\270\260.md" new file mode 100644 index 0000000..1292232 --- /dev/null +++ "b/ch06/6.5 \354\202\254\354\232\251\354\236\220\353\263\204\353\241\234 \352\263\265\352\260\204\354\235\204 \355\225\240\353\213\271\355\225\230\352\270\260.md" @@ -0,0 +1,143 @@ +# 사용자별로 공간을 할당하기 + +- 필요성 + + 시스템 사용 중 하드디스크가 꽉 차면시스템 전체가 가동되지 않을 수 있음
+ 이런 경우를 방지하고자 사용자별로 사용 가능항 용량을 제한해야 함 + +* 쿼터 + + 파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것 + +## 쿼터 실습 +순서
+/etc/fstab 수정 => 재부팅 or 리마운팅 => 쿼터 DB생성 => 개인별 쿼터 설정 + +/etc/fstab 수정
+- 10GB 하드디스크를 /userHome 디렉터리에 마운트까지 하자
+ [root@localhost ~]# fdisk /dev/sdb
+ Command (m for help): n
+ Select (default p): p
+ Partition number (1-4, default 1): 1
+ enter
+ enter
+ Command (m for help): p
+ Command (m for help): w
+ [root@localhost ~]# mkdir /userHome
+ [root@localhost ~]# mount /dev/sdb1 /userHome + +- 사용자 john 과 bann 만들기
+useradd -d /userHome/john john
+useradd -d /userHome/bann bann
+passwd john
+비밀번호 입력
+비밀번호 입력
+passwd bann
+비밀번호 입력
+비밀번호 입력
+ +- /etc/fstab 파일을 열어서 /dev/sdb1 마운트하는 부분을 다음과 같이 수정 +![img](%EC%82%AC%EC%9A%A9%EC%9E%90%EB%B3%84%20%EA%B3%B5%EA%B0%84%ED%95%A0%EB%8B%B9%201.png) + +재부팅 or 리마운팅 +- 리마운팅
+[root@localhost ~]# mount --options remount /userHome
+[root@localhost ~]# mount +![img](%EC%82%AC%EC%9A%A9%EC%9E%90%EB%B3%84%20%EA%B3%B5%EA%B0%84%ED%95%A0%EB%8B%B9%202.png) +/dev/sdb1 디렉터리가 쿼터용으로 마운트된걸 확인 + +- 쿼터 DB생성 +```cli +[root@localhost ~]# cd /userHome/ +[root@localhost userHome]# quotaoff -avug +/dev/sdb1 [/userHome]: user quotas turned off +[root@localhost userHome]# quotacheck -augmn +[root@localhost userHome]# rm -rf aquota.* +[root@localhost userHome]# quotacheck -augmn +[root@localhost userHome]# touch aquota.user aquota.group +[root@localhost userHome]# chmod 600 aquota.* +[root@localhost userHome]# quotacheck -augmn +[root@localhost userHome]# quotaon -avug +/dev/sdb1 [/userHome]: user quotas turned on +``` + +- 개인별 쿼터 설정 +```cli +[root@localhost userHome]# edquota -u john +``` + +![img](%EC%82%AC%EC%9A%A9%EC%9E%90%EB%B3%84%20%EA%B3%B5%EA%B0%84%ED%95%A0%EB%8B%B9%203.png) +| 단어 | 뜻 | 비고 | +| --- | --- | --- | +| Filesystem | 사용자별 쿼터를 할당하는 파일 시스템 | +| blocks, soft, hard | 현재 사용자가 사용하는 블록(kb), 소프트, 하드 사용한도 | blocks 이 28이면 28kb를 사용, soft와 hard가 0이면 제한 X | +| inodes, soft, hard | inode의 개수를 의미(파일 개수) | 현재 7개 파일을 사용하며 한도는 제한하지 않았다는 뜻 | + + +blocks 부분의 soft와 hard 를 20480, 30720으로 변경하고 저장 + + - 잘 설정되었는지 확인
+ 파일을 복사하여 확인(복사하는 파일의 크기가 약 7.5MB) + ```cli + [root@localhost userHome]# su - john +[john@localhost ~]$ pwd +/userHome/john +[john@localhost ~]$ cp /boot/vmlinuz-4* test1 +[john@localhost ~]$ cp test1 test2 +[john@localhost ~]$ cp test1 test3 +sdb1: warning, user block quota exceeded. +[john@localhost ~]$ ls -l +합계 23076 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test1 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test2 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test3 +[john@localhost ~]$ cp test1 test4 +sdb1: write failed, user block limit reached. +cp: 'test4'에 쓰는 도중 오류 발생: 디스크 할당량이 초과됨 +[john@localhost ~]$ ls -l +합계 30692 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test1 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test2 +-rwxr-xr-x 1 john john 7872760 9월 18 20:28 test3 +-rwxr-xr-x 1 john john 7798784 9월 18 20:28 test4 + ``` + +- 자신에게 할당된 디스크 공간 확인 +```cli +[john@localhost ~]$ quota +Disk quotas for user john (uid 1001): + Filesystem blocks quota limit grace files quota limit grace + /dev/sdb1 30720* 20480 30720 6days 11 0 0 +``` +실제 john에게 허용된 양은 20,480KB(soft)이다.
+이를 넘는 공간은 유예기간동안만 사용 가능(grace) +
+- 사용자별 사용량 확인(root 권한으로 확인) +```cli +[john@localhost ~]$ exit +logout + +[root@localhost userHome]# repquota /userHome +*** Report for user quotas on device /dev/sdb1 +Block grace time: 7days; Inode grace time: 7days + Block limits File limits +User used soft hard grace used soft hard grace +---------------------------------------------------------------------- +root -- 20 0 0 4 0 0 +john +- 30720 20480 30720 6days 12 0 0 +bann -- 28 0 0 7 0 0 +``` + +* 다른 사용자에게 똑같이 쿼터 적용 +``` +[root@localhost userHome]# edquota -p john bann +[root@localhost userHome]# repquota /userHome +*** Report for user quotas on device /dev/sdb1 +Block grace time: 7days; Inode grace time: 7days + Block limits File limits +User used soft hard grace used soft hard grace +---------------------------------------------------------------------- +root -- 20 0 0 4 0 0 +john +- 30720 20480 30720 6days 12 0 0 +bann -- 28 20480 30720 7 0 0 +```