磁盘配额
限制用户对磁盘的使用空间。
软限制:可以限制使用空间和文件数量,允许在规定时间内超出限制。
硬限制:可以限制使用空间和文件数量,不允许超出限制。
配置步骤:
第一步:挂载分区时启用配额选项
(1)vim /etc/fstab
/dev/sdb1 /mnt/sdb1 ext4 defaults, usrquota, grpquota 0 0
(2) mount -o remount /mnt/ sdb1
(3)生成配额文件:
setenforce 0
quotacheck - cvug / mnt/sdb1
(4)编辑配额项:
用户限制edquota -u stul
组(基本组)限制:quota -g d1z
filesystem blocks soft hard inodes soft hard
挂载点 已使用空间软件限制 硬限制 已有文件个数软件限制 硬限制
(5)激活磁盘配额:
quotaon -ugv /mnt/ sdb1
(6)关闭磁盘配额: quotaoff /mnt/ sdb1
quota 磁盘配额功能只在指定的文件系统(分区)内有效,未设置配额的文件系统不受限制。
quota :限制用户账号、组账号的磁盘使用空间,其他用户或组不受影响。
限制用户能够使用的磁盘数据块(block)大小,也就是限制磁盘空间大小,默认单位为 KB。
限制用户能够拥有的文件个数。
指设定一个软性的配额数值(如 500MB 磁盘空间、200 个文件),在固定的宽限期(默认为 7 天)内允许暂时超过这个限制,但系统会给出警告信息。
指设定一个硬性的配额数值(如 1GB 磁盘空间、500 个文件),而且绝对禁止用户超过该限值。
硬限制的配额值应大于相应的软限制值,否则软限制值将失效。
正确举例:
软限制为:2G
硬限制为:3G
下面以硬盘分区“/dev/sdb1”为例,先将其挂载到“/data”目录下,然后在文件系统中实现磁盘配额:
分区:
fdisk /dev/sdb
n
p
1
默认
默认
w保存
格式化
mkfs -t ext4 /dev/sdb1
挂载
mount /dev/sdb1 /mnt/data
[root@localhost var]# vim /etc/fstab
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0
[root@localhost ~]# mount -o remount /data
[root@localhost ~]# mount | grep sdb1
结果:/dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)
将安全机制设置为0
setenforce 0
quotacheck 命令可以对文件系统进行磁盘配额检测,发现哪些文件系统启用了
磁盘配额功能,并在这些文件系统中生成配额文件 aquota.user 和 aquota.group。
[root@localhost ~]# quotacheck -cvug /data
cd /mnt/data
里面会有配额文件aquota.user aquota.group
相关选项的作用:
-c,创建配额文件。
-v,显示详细信息。
-u,检查用户配额信息,创建 aquota.user 文件。
-g,检查组配额信息,创建 aquota.group 文件。
将 SELinux 设为许可模式
[root@localhost ~]# setenforce 0
再次执行 quotacheck 命令
[root@localhost ~]# quotacheck -cvug /data
查看生成的配额文件
[root@localhost ~]# ls /data
aquota.group aquota.user lost+found
使用 edquota 命令结合“-u”、“-g”选项可用于编辑用户或组的配额设置。
创建 financial 组,创建用户 jerry,将 financial 指定为 jerry 的基本组。
设置用户 jerry 的磁盘配额
[root@localhost ~]# edquota -u jerry
Filesystem blocks soft hard inodes soft hard
设备点/挂载点 已使用容量 软限制容量 硬限制容量 已使用文件个数 软限制文件个数 硬限制文件个数
[root@localhost ~]# edquota -g financial
注:配额设置仅对基本组生效。如用户 jerry 所属的基本组是“financial”,所属的附加组是“technology”, 那么只有针对“financial”组设置的配额才对 jerry 有效,而针对“technology”组设置的配额则对 jerry 没有限制。
’激活“/data”文件系统的用户、组配额
[root@localhost ~]# quotaon -ugv /data
/dev/sdb1 [/data]: group quotas turned on
/dev/sdb1 [/data]: user quotas turned on
相关选项的作用:
-u,激活用户磁盘配额。
-g,激活组磁盘配额。
-v,显示详细信息。
验证磁盘配额功能:
下面使用受配额限制的用户帐号(jerry)登录 Linux 系统,并向应用了配额的文 件系统进行复制文件等写操作,测试所设置磁盘配额项是否有效。为了方便测试,将 用户 jery 的基本组设为 financial,对用户和组的磁盘配额功能一并进行测试。
用 dd 命令生成指定大小的测试文件
从设备文件/dev/zero 中复制数据到/home/jerry/test 文件,读取 210 个大小为 1MB的数据块。
[root@localhost ~]# dd if=/dev/zero of=/mnt/data/xx bs=1KB count=120
记录了 210+0 的读入
记录了 210+0 的写出
220200960 字节(220 MB)已复制,13.3504 秒,16.5 MB/秒
[root@localhost ~]# ll -h /home/jerry
总用量 211M
-rw-r--r--. 1 root root 210M 11 月 6 10:49 test
开放 data/的写入权限
[root@localhost ~]#chmod 777 /data
切换到 jerry 用户的身份进行测试,磁盘配额功能验证成功
查看用户(quota -u user)或分区(repquota /data)的配额使用情况
使用 quota 命令结合“-u”、“-g”选项分别查看指定用户和组的配额使用情况。
quota -u student
quota -g student
执行 repquota /data 查看/data 文件系统的配额使用情况报告
repqupta /data
quotaoff -vug
通过 quota 磁盘配额可以方便地对单个用户或用户组的可用磁盘空间进行限制,使磁盘管理工作具有 更大的灵活性。
在生产环境中具体应用时还应注意,quota 是以每一个使用者,每一个文件系统为基础的,它不能跨
文件系统对用户做出限制,如果使用者可能在超过一个以上的系统中建立文件,那么必须在每一个文 件系统上分别设定 quota 配额。
另外,由于 root 用户在 Linux 环境中具有至高无上的权限,所以无法对 root 用户设置配额。
1)永久挂载文件系统并启用磁盘配额
vim /etc/fstab
/dev/md0 /mnt/md0 ext4 defaults,usrquota,grpquota 0 0 #usr/grpquota表用户/组配额
mount -a
2)生成配额文件
getenforce 查看安全系统是否开启
Enforcoing 表示启用状态 值为1 (保护)
setenforce 0 将.SElinux设为许可模式
permissive 表示关闭状态 值为0
quotacheck -cvug /mnt/md0 生成配置文件
3)编辑配额设置
edquota -u stu1
4)激活配额
quotaon -ugv /mnt/md0
将stu1提权 chmod 777 stu1
切换到stu1用户
su stu1
5)验证并查看配额
dd if=/dev/zero of=/mnt/md0/aa bs=1KB count=120
//1)新建用户和组:
useradd yg1
useradd yg2
useradd yg3
useradd yg4
useradd yg5
groupadd groups01
//2)将用户加入groups01组:
[ root@localhost home] # gpasswd -a yg1 groups01
正在将用户Vyg1”加入到groups01”组中
[ root@locathost home] # gpasswd -a yg2 groups01
正在将用户yg2"加入到groups01”组中
[ root@locathost home] # gpasswd -a yg3 groups01
正在将用户yg3”加入到groups01”组中
[ root@locathost home] # gpasswd -a yg4 groups01
正在将用户yg4”加入到groups01”组中
[ root@locathost home] # gpasswd -a yg5 groups01
正在将用户Vyg5”加入到groups01”组中
//3)新建分区并格式化并挂载
fdisk /dev/sdb n p 1 //新建分区
mkfs -t ext4 /dev/sdb1 //格式化分区
mount /dev/sdb1 /mnt/data //挂载到mnt/data
//5)启动配额
//5.1)修改配置文件“/etc/fstab”的方式启用 quota 磁盘配额
vim /etc/fstab
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0
:wq //保存并退出
//5.2)将文件系统重新挂载,查看是否成功
mount -o remount /mnt/data
mount |grep sdb1
//5.3)关闭安全机制——已开启
setenforce 0
//5.4)设置配额
quotacheck -cvug /mnt/data
//5.5)查看配额
ls data
//结果 aquota.group aquota.user lost+found
//6)编辑用户和组帐号的配额设置不超过500M
[root@locathost mnt] # edquota - u yg1
[root@locathost mnt] # edquota - u yg2
[root@locathost mnt] # edquota - u yg3
[root@locathost mnt] # edquota - u yg4
[root@locathost mnt] # edquota - u yg5
//结果
[root@locathost mnt] # ls data
aquota.group aquota.use lost+found
//7)激活配额
quotaon -ugv /mnt/data
//结果:
// /dev/sdb1 [/mnt/data] :group quotas turned on
// /dev/sdb1 [/mnt/data] :user quotas turned on
//8)验证配额
//切换到用户yg1:
su yg1
//创建一个文件 :
touch 1.txt
//尝试写入超过大小的文件——报错
dd if=/dev/zero of=/mnt/data/1.txt bs=600MB count=1
//9)关闭磁盘配额
quotaoff -vug