quota

quota – 限制用户对磁盘空间的使用。

针对用户和组的磁盘配额实验

设置一个20G大小的分区做为配额限制分区:

[root@teacher ~]# fdisk /dev/sda
[root@teacher ~]# partx -a /dev/sda
[root@teacher ~]# ls /dev/sda*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5  /dev/sda6  /dev/sda7  /dev/sda8
[root@teacher ~]# mkfs.ext4 /dev/sda8
[root@teacher ~]# mkdir /sda8
[root@teacher ~]# mount /dev/sda8 /sda8
[root@teacher sda8]# chmod 1777 /sda8

添加配额限制参数

[root@teacher ~]# vim /etc/fstab
UUID=9a216799-0764-4b9f-b81f-ce82361ebc10 /sda8                 ext4    defaults,usrquota,grpquota      0 0

[root@teacher sda8]# mount -o remount /dev/sda8
[root@teacher sda8]# mount | grep /dev/sda8
/dev/sda8 on /sda8 type ext4 (rw,usrquota,grpquota)

添加实验用户:

[root@teacher ~]# useradd u1 && passwd u1^C
[root@teacher ~]# useradd u2 && passwd u2^C
[root@teacher ~]# useradd u3 && passwd u3^C
[root@teacher ~]# groupadd gquota
[root@teacher ~]# usermod -g gquota u3
[root@teacher ~]# id u3
uid=1015(u3) gid=1018(gquota) groups=1018(gquota)

[root@teacher sda8]# quotacheck -guv /sda8                --扫描/sda8分区,并创建正对用户和组的quota文件
                                                --如果出现无权限创建,则需要关闭selinux
[root@teacher sda8]# ls
aquota.group  aquota.user  lost+found
[root@teacher sda8]# ls -l
total 32
-rw------- 1 root root  6144 Apr  8 10:09 aquota.group
-rw------- 1 root root  6144 Apr  8 10:09 aquota.user
drwx------ 2 root root 16384 Apr  8 09:55 lost+found

编辑对u1用户的配额限制

[root@teacher sda8]# edquota -u u1
Disk quotas for user u1 (uid 1013):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda8                         0        4096       5120          0        6        10
[root@teacher sda8]# quotaon -a                        --启用配额限制

#su - u1
# cd /sda8
[u1@teacher sda8]$ touch file{1,2,3,4,5}
[u1@teacher sda8]$ touch file{6,7}
sda8: warning, user file quota exceeded.
[u1@teacher sda8]$ ls
aquota.group  file1  file3  file5  file7
aquota.user   file2  file4  file6
[u1@teacher sda8]$ touch file{8,9,10}

编辑对gquota组的配额限制

[root@teacher Desktop]# edquota -g gquota
Disk quotas for group gquota (gid 1018):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda8                         0        3072       5120          0       3       5

[root@teacher ~]# su - u3
[u3@teacher ~]$ cd /sda8
[u3@teacher sda8]$ ls
aquota.group  aquota.user  file1  file2  file3  lost+found

验证文件个数限制

[u3@teacher sda8]$ touch ufile{1,2,3}
[u3@teacher sda8]$ touch ufile4
sda8: warning, group file quota exceeded.
[u3@teacher sda8]$ ls
aquota.group  file1  file3       ufile1  ufile3
aquota.user   file2  lost+found  ufile2  ufile4

[u3@teacher sda8]$ touch ufile{5,6}
sda8: write failed, group file limit reached.
touch: cannot touch `ufile6': Disk quota exceeded

验证文件总大小的限制

[u3@teacher sda8]$ dd if=/dev/zero of=/sda8/ufile1 bs=1M count=2^C
[u3@teacher sda8]$ dd if=/dev/zero of=/sda8/ufile2 bs=1M count=2^C
[u3@teacher sda8]$ dd if=/dev/zero of=/sda8/ufile3 bs=1M count=2^C