Linux 配置Quota磁盘配额
由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃,为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。
- 配额作用:限制用户和组,对磁盘空间的使用量,限制用户和组,在磁盘内创建文件的个数
- 软限制:低级限制,超出部分会有宽限天数,宽限天数到期后超出部分被清空,软限制不能超过硬限制
- 硬限制:绝对限制,此限制不会被突破,达到指定限制条件后将无法继续使用更多磁盘空间
- 宽限天数:当有数据超过软限制后,超出部分会被计时,宽限天数到期后超出部分数据将被清空,宽限天数默认是7天
注:磁盘配额是针对分区进行设置的,无法实现用户在系统中共计只能使用50MB
磁盘空间,只能设置某用户在/home
分区能使用50M这
样的限制.切记:磁盘配额是针对分区的!
格式化新分区: 格式化/dev/sdb
新分区,并检查分区是否支持磁盘配额.
[root@localhost ~]# yum install -y quota
[root@localhost ~]# mkfs.ext4 /dev/sdb
[root@localhost ~]# cat /boot/config-3.10.0-693.el7.x86_64 | grep "CONFIG_QUOTA"
[root@localhost ~]# dumpe2fs -h /dev/sdb | grep "Default mount options"
dumpe2fs 1.42.9 (28-Dec-2013)
Default mount options: user_xattr acl
#检查结果中是否包含,usrquota,grpquota两个属性
挂载并检测分区: 挂载格式化好的分区,并检查分区是否支持配额(主要看有没有usrquota,grpquota参数)
[root@localhost ~]# mount /dev/sdb /quot/
[root@localhost ~]# cat /proc/mounts |grep "/dev/sdb"
/dev/sdb1 /sdb1 ext4 rw,relatime,data=ordered 0 0
#上面没有看到相关权限,此时我们要重新挂载磁盘,并加上权限
[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb
上方的设置为临时挂载,设置开机自启动的方式是写入/etc/fstab
文件,如下写法.
[root@localhost ~]# cat /etc/fstab
/dev/sdb /quot ext4 defaults,usrquota,grpquota 0 0
[root@localhost ~]# mount -a
生成磁盘配额文件: 使用quotacheck -ugv
生成配额文件,生成后的配额配置文件保存在/dev/sdb
里面
[root@localhost ~]# quotacheck -ugv /dev/sdb
语法格式:[ quota [选项] [分区名] ]
-a #扫描/etc/mtab文件中所有启用磁盘配额功能的分区.如果加入此参数,命令后面就不需要加入分区名了
-u #建立用户配额的配置文件,即生成aquota.user
-g #建立组配额的配置文件,即aquota.group
-v #显示扫描过程
-c #清除原有的配置文件,重新建立新的配置文件
编辑配额限制单个用户: 使用交互方式,给lyshark
用户设置软限制100M
硬限制200M
[root@localhost ~]# edquota -u lyshark
Disk quotas for user lyshark (uid 1000):
↓文件系统 (空余) 软(容量) 硬(容量) I节点 软(数) 硬(数)
Filesystem blocks soft hard inodes soft hard
/dev/sdb 0 100M 200M 0 0 0
编辑配额限制用户组: 使用交互方式,给tomwang
组,设置软限制1000M
硬限制2000M
[root@localhost ~]# edquota -g tomwang
Disk quotas for group temp (gid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb 0 1000M 2000M 0 0 0
非交互方式限制用户: 使用非交互方式,设置用户superroot
的软限制为100M
硬限制为200M
setquota -u 用户名 软(容) 硬(容) 软(数) 硬(数) 分区名
setquota -u superroot 100M 200M 0 0 /dev/sdb
使用模板用户配置: 有时候我们不想挨个配置,可以以lyshark
用户为模板,赋予toms
账户相同的限制条件
[root@localhost ~]# edquota -p lyshark -u toms
#edquota -p 模板用户 -u 目标用户
启动/关闭磁盘配额: 配置好以后,直接执行quotaon -augv
命令即可开启配额,使磁盘配额生效.
[root@localhost ~]# quotaon -augv
语法格式:[ quotaon [选项] [分区名] ]
-a #根据/etc/mtab文件启动所有分区的磁盘配额(不写分区名)
-u #启动用户的磁盘配额
-g #启动组的磁盘配额
-v #显示启动过程信息
[root@localhost ~]# quotaoff -augv
语法格式:[ quotaoff [选项] [分区名] ]
-a #根据/etc/mtab文件关闭所有分区的磁盘配额(不写分区名)
-u #关闭用户的磁盘配额
-g #关闭组的磁盘配额
-v #显示关闭过程信息
查看分区磁盘配额: 最后配置好就是查看了,查看/dev/sdb
分区配额可执行以下命令.
[root@localhost ~]# repquota -ugvs /dev/sdb
语法格式:[ repquota [选项] [分区名] ]
-u #查询用户配额
-g #查询组配额
-v #显示详情
-s #以常见单位显示
文章出处:https://www.cnblogs.com/LyShark/p/14336574.html
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-01-31 Postfix + Extmail 企业邮件服务器搭建