Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions ch06/6.5 사용자별로 공간을 할당하기.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# 사용자별로 공간을 할당하기

- 필요성

시스템 사용 중 하드디스크가 꽉 차면시스템 전체가 가동되지 않을 수 있음<br>
이런 경우를 방지하고자 사용자별로 사용 가능항 용량을 제한해야 함

* 쿼터

파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것

## 쿼터 실습
순서<br>
/etc/fstab 수정 => 재부팅 or 리마운팅 => 쿼터 DB생성 => 개인별 쿼터 설정

/etc/fstab 수정<br>
- 10GB 하드디스크를 /userHome 디렉터리에 마운트까지 하자<br>
[root@localhost ~]# fdisk /dev/sdb<br>
Command (m for help): n<br>
Select (default p): p<br>
Partition number (1-4, default 1): 1<br>
enter<br>
enter<br>
Command (m for help): p<br>
Command (m for help): w<br>
[root@localhost ~]# mkdir /userHome<br>
[root@localhost ~]# mount /dev/sdb1 /userHome

- 사용자 john 과 bann 만들기<br>
useradd -d /userHome/john john<br>
useradd -d /userHome/bann bann<br>
passwd john<br>
비밀번호 입력<br>
비밀번호 입력<br>
passwd bann<br>
비밀번호 입력<br>
비밀번호 입력<br>

- /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 리마운팅
- 리마운팅<br>
[root@localhost ~]# mount --options remount /userHome<br>
[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으로 변경하고 저장

- 잘 설정되었는지 확인<br>
파일을 복사하여 확인(복사하는 파일의 크기가 약 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)이다.<br>
이를 넘는 공간은 유예기간동안만 사용 가능(grace)
<br>
- 사용자별 사용량 확인(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
```