引言
这篇文章介绍一下磁盘配额;利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术。
文章目录
0×1.磁盘配额术语介绍
磁盘配额使用条件:
磁盘配额实施的对象是硬盘分区,并且Linux的内核必须支持磁盘配额这种技术,本例所使用的CentOS7是完全支持的;
磁盘配额的记录文件保存在开启磁盘配额分区的根目录下面,它们是aquota.user和aquota.group;
磁盘配额只对一般身份用户有效,对root权限用户无效;
磁盘配额的相关术语:
最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期);
最高限制(硬限制,hard): 不能被超越的限制;
宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据;
0×2.Linux磁盘配额实例
a.实验环境介绍
系统:CentOS7;
所用软件:quota,CentOS7默认已安装,CentOS6可能需要yum在线安装此软件,前面的文章已经介绍过yum的使用方法,这里不再赘述;
硬盘及分区:/dev/sda1(系统所在分区),/dev/sdb1(20G),已经格式化为ext4文件系统;
所有的磁盘配额操作都在/dev/sdb1中进行;
b.修改/etc/fstab添加支持磁盘配额选项
首先在系统新建一个用于挂载分区的目录,然后修改/etc/fstab添加一条自动挂载分区条目:
02 |
qing@qingsword.com:~$ sudo mkdir /sdb1 |
05 |
qing@qingsword.com:~$ sudo vi /etc/fstab |
08 |
/dev/sdb1 /sdb1 ext4 defaults,usrquota,grpquota 0 0 |
11 |
qing@qingsword.com:~$ mount | grep /dev/sdb1 |
14 |
/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota) |
c.创建磁盘配额配置文件
02 |
qing@qingsword.com:~$ sudo chmod 777 /sdb1 |
08 |
qing@qingsword.com:~$ sudo quotacheck -vug /sdb1 |
11 |
qing@qingsword.com:~$ ls /sdb1 |
12 |
aquota.group aquota.user |
d.实现磁盘配额限制
02 |
qing@qingsword.com:~$ sudo useradd qingsword |
03 |
qing@qingsword.com:~$ sudo passwd qingsword |
06 |
qing@qingsword.com:~$ sudo edquota -u qingsword |
16 |
Disk quotas for user qingsword (uid 500): |
17 |
Filesystem blocks soft hard inodes soft hard |
18 |
/dev/sdb1 0 10 20 0 3 5 |
21 |
qing@qingsword.com:~$ sudo quotaon /sdb1 |
如果操作无误,现在磁盘配额就已经开始起作用了,使用qingsword用户登录测试如下:
02 |
qing@qingsword.com:~$ su qingsword |
05 |
qingsword@qingsword.com:~$ cd /sdb1 |
11 |
qingsword@qingsword.com:/sdb1$ dd if =/dev/zero of=/sdb1/testfile1 bs=1K count=12 |
13 |
sdb1: warning, user block quota exceeded. |
17 |
12288 bytes (12 kB) copied |
20 |
qingsword@qingsword.com:/sdb1$ ls -l testfile1 |
21 |
-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:24 testfile1 |
24 |
qingsword@qingsword.com:/sdb1$ dd if =/dev/zero of=/sdb1/testfile2 bs=1K count=10 |
26 |
sdb1: write failed, user block limit reached. |
27 |
dd : writing `/sdb1/testfile2': Disk quota exceeded |
31 |
8192 bytes (8.2 kB) copied |
34 |
qingsword@qingsword.com:/sdb1$ ls -l testfile1 testfile2 |
35 |
-rw-rw-r--. 1 qingsword qingsword 12288 Jan 13 16:33 testfile1 |
36 |
-rw-rw-r--. 1 qingsword qingsword 8192 Jan 13 16:33 testfile2 |
39 |
qingsword@qingsword.com:/sdb1$ touch testfile3 |
42 |
qingsword@qingsword.com:/sdb1$ touch testfile4 |
43 |
sdb1: warning, user file quota exceeded. |
46 |
qingsword@qingsword.com:/sdb1$ touch testfile5 |
49 |
qingsword@qingsword.com:/sdb1$ touch testfile6 |
50 |
sdb1: write failed, user file limit reached. |
51 |
touch : cannot touch `testfile6': Disk quota exceeded |
54 |
qingsword@qingsword.com:/sdb1$ ls |
55 |
aquota.group testfile2 testfile4 |
56 |
aquota.user testfile1 testfile3 testfile5 |
59 |
qingsword@qingsword.com:/sdb1$ quota -vugs |
60 |
Disk quotas for user qingsword (uid 1002): |
61 |
Filesystem space quota limit grace files quota limit grace |
62 |
dev/sdb1 20K* 10K 20K 6days 5* 3 5 6days |
65 |
qing@qingsword.com:~$ sudo edquota -t |
e.关闭磁盘配额
02 |
qing@qingsword.com:~$ sudo quotaoff /sdb1 |
05 |
qing@qingsword.com:~$ sudo quotaoff -a |
08 |
qing@qingsword.com:~$ sudo quotaon -a |
11 |
qing@qingsword.com:~$ sudo rm -rf /sdb1/aquota.* |
*转载请注明来自:晴刃(QingSword.COM)
*原文连接:http://www.qingsword.com/qing/938.html