Linux怎么设置磁盘配额_Linux系统Quota安装与用户空间限制【教程】

浅丽君_5576

浅丽君_5576

2026-01-01

431人浏览

原创

要在linux中精确控制用户或用户组磁盘空间,必须启用quota机制:一、安装quota工具并确认内核支持;二、修改fstab添加usrquota/grpquota并重挂载;三、初始化aquota.user/group数据库;四、启用quotaon服务并设置开机自启;五、用edquota设定用户/组限额及宽限期;六、xfs系统需用xfs_quota命令配置;七、通过写入测试与quota/repquota命令验证效果。

linux怎么设置磁盘配额_linux系统quota安装与用户空间限制【教程】

如果您需要在Linux系统中对用户或用户组的磁盘使用空间进行精确控制,则必须启用并配置Quota机制。以下是实现该目标的多种完整操作路径:

一、确认并安装Quota工具

系统需具备quota命令集及内核支持,部分发行版默认未安装quota软件包。此步骤确保基础运行环境就绪。

1、检查是否已安装quota工具:quota -V

2、若提示命令未找到,则根据发行版执行安装:sudo apt install quota(Debian/Ubuntu)或sudo yum install quota(CentOS/RHEL)。

3、验证内核模块支持:grep CONFIG_QUOTA /boot/config-$(uname -r),输出应含ym

二、修改fstab并重新挂载分区

磁盘配额必须在文件系统挂载时启用,需为对应分区添加usrquota和/或grpquota挂载选项,并触发重挂载以生效。

1、编辑/etc/fstab文件:sudo vim /etc/fstab

2、定位目标分区行(如/dev/sdb1 /sdb1 ext4 defaults 0 0),将defaults替换为defaults,usrquota,grpquota

3、保存后执行重挂载:sudo mount -o remount /sdb1

4、确认挂载参数已更新:mount | grep '/sdb1',输出中应包含usrquotagrpquota

三、初始化配额数据库文件

系统需在挂载点根目录下生成aquota.user和aquota.group两个二进制数据库文件,用于记录各用户/组的空间使用状态。

1、进入目标挂载点:cd /sdb1

2、手动创建空配额文件(仅ext系列必需):sudo touch aquota.user aquota.group

3、设置严格权限:sudo chmod 600 aquota.*

4、扫描并生成配额数据:sudo quotacheck -cvmug /sdb1(-c强制创建,-v显示过程,-m忽略挂载状态检查)。

四、启用并验证配额服务

配额功能在初始化数据库后仍处于关闭状态,必须显式启动才能生效,且需确保开机自动启用。

1、立即启用所有配额:sudo quotaon -avug

2、检查启用状态:sudo quotaon -p,输出中对应分区状态应为enabled

node-connect
node-connect

诊断Android、iOS及macOS配套应用的OpenClaw节点连接与配对故障,适用于二维码/设置码/手动连接失败或本地Wi-Fi问题时。

下载

3、设置开机自启:在/etc/rc.local末尾添加一行:/sbin/quotaon -avug(确保该文件有执行权限)。

五、为用户或用户组设置具体限额

通过edquota命令可交互式设定每个用户的块(blocks)与inode限制,软限(soft)与硬限(hard)单位均为KB,且支持批量复制配置。

1、为用户test1设置限额:sudo edquota -u test1

2、在vi界面中修改blocks行的soft与hard值(例如soft=512000、hard=524288,即500MB/512MB)。

3、为用户组group1设置限额:sudo edquota -g group1

4、将test1的配额模板应用至test2:sudo edquota -p test1 test2

5、设置宽限期(默认7天):sudo edquota -t,修改Block grace period值。

六、XFS文件系统专用配置路径

XFS不依赖aquota.*文件,其配额元数据直接存储于文件系统内部,启用方式与ext系列不同,须使用xfs_quota命令。

1、挂载时启用XFS配额:sudo mount -o uquota,gquota /dev/sdb2 /xfsdata

2、进入专家模式设置用户限额:sudo xfs_quota -x -c 'limit bsoft=100m bhard=120m isoft=100 ihard=120 test1' /xfsdata

3、查看XFS配额报告:sudo xfs_quota -x -c report /xfsdata

4、禁用XFS配额:sudo xfs_quota -x -c 'disable -u -g' /xfsdata

七、测试与实时监控配额效果

配置完成后必须进行写入测试,观察系统是否按预期触发警告或拒绝写入,并通过命令验证当前使用量。

1、切换至被限制用户:sudo -u test1 bash

2、尝试创建超出软限的文件:dd if=/dev/zero of=/sdb1/testfile bs=1M count=600

3、检查警告信息是否输出:dmesg | tail -5或查看系统日志中quota相关条目。

4、查看当前用户配额使用情况:quota -u test1

5、查看全系统配额汇总:sudo repquota -avug

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.20

2268

5

vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.01

309

3

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

2205

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

3581

10

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2023.08.31

2311

3

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.05

807

5

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

2147

5

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2023.10.16

2167

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2753

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习