目录
开启磁盘配额功能(rpm -qa | grep quota)
磁盘配额
Linux磁盘配额的基本概念
概述:
quota磁盘配额功能是一种用于限制用户或用户组磁盘使用量的机制。通过设置磁盘配额,系统管理员可以防止个别用户或组占用过多磁盘空间,从而保证所有用户都能公平地使用磁盘资源。
重要性:
在多用户环境中,如果没有配额限制,一个用户可能无意或故意地消耗大量磁盘空间,导致其他用户无法正常使用。通过实施磁盘配额,可以避免这种情况,有效管理磁盘空间分配,确保每个用户都能平等地使用资源。
磁盘配额可以进行两方面的限制:
磁盘容量:限制用户能使用的磁盘数据块(block)大小,即限制磁盘空间大小, 默认单位KB。
文件数量:限制用户能够拥有的文件个数。
磁盘配额的限制方法分为软限制和硬限制两种:
软限制:指设定一个软性的配额数值(磁盘空间大小和文件个数),在固定的宽限期(默认为 7 天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:指设定一个硬性的配额数值(磁盘空间大小和文件个数),而且绝对禁止用户超过该限值。硬限制的配额值应大于相应的软限制值,否则软限制值将失效。
磁盘配额操作
这里我们对已经在/mnt/sdb1挂载好的磁盘进行磁盘配额演示:
查看磁盘配额功能(rpm -qa | grep quota)
文件系统重新挂载(/cet/fstab)
开启配额功能后,要将系统文件重新挂载,这里有临时挂载和永久挂载两种方法:
永久挂载
通过修改配置文件/etc/fstab 进行永久挂载:
vim /etc/fstab
添加挂载语句:/dev/sdb1 /mnt/sdb1 ext4 defaults,usrquota,grpquota 0 0
保存并退出,再一次重新挂载:
mount -o remount /mnt/sdb1
临时挂载
这种方法只能临时生效,一般不用:
mount -o remount,usrquota,grpquota /mnt/sdb1
设置许可模式(setenforce 0)
执行 setenforce 0 命令 。
当执行 setenforce 0 命令时,它将 SELinux 设置为许可模式。SELinux 设置是 Linux 系统中一个重要的安全特性,主要用于增强操作系统的安全性。在许可模式下,SELinux 不会阻止任何操作,但会记录所有违反安全策略的行为。这意味着系统不会因为 SELinux 的安全策略而拒绝访问,但所有的违规行为都会被记录在日志中,供管理员审查和调整安全策略。
生成配额文件(quotacheck -cvug)
quotacheck -cvug /mnt/sdb1
u 表示检查用户的配额。
v 表示显示没有存储分配的文件系统的配额。
g 表示检查组的配额。
c 表示在检查时跳过已挂载的文件系统,这个选项主要用于特殊情况下避免对已挂载文件系统造成影响。
(cvug的顺序可以变,不固定)
查看/mnt/sdb1/:
可以看到生成的配额aquota.group / aquota.user / lost+found :
设置用户和组的配额(edquota -u/g)
edquota -u 用户名 :设置指定用户的配额(其中的soft为软限制配额,hard为硬限制配额)
更改blocks后面的soft和hard的值(文件大小),单位为KB,然后保存。
inodes后面的soft和hard的值(文件个数)
edquota -g 组名 :设置组用户配额
和设置用户配额一样的操作。
激活磁盘配额(quotaon -ugv)
设置好磁盘配额后,我们需要激活磁盘配额:
quotaon -ugv /mnt/sdb1
配额复制(edquota -p)
设置好一个用户的配额后,可以将配额复制给其他用户:
edquota -p 源用户 -u 目标用户
修改宽限时间(edquota -t)
设置了软限制后,我们可以设置宽限时间(超过这个时间后,超出配额大小的文件将被删除)
执行edquota -t
默认宽限时间是7天
关闭磁盘配额(quotaoff -vug)
利用 quotaoff -vug 命令关闭磁盘配额