Linux怎么设置磁盘配额_Linux系统Quota安装与用户空间限制【教程】
技术百科
尼克
发布时间:2026-01-01
浏览: 次 要在Linux中精确控制用户或用户组磁盘空间,必须启用Quota机制:一、安装quota工具并确认内核支持;二、修改fstab添加usrquota/grpquota并重挂载;三、初始化aquota.user/group数据库;四、启用quotaon服务并设置开机自启;五、用edquota设定用户/组限额及宽限期;六、XFS系统需用xfs_quota命令配置;七、通过写入测试与quota/repquota命令验证效果。
如果您需要在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),输出应含y或m。
二、修改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',输出中应包含usrquota与grpquota。
三、初始化配额数据库文件
系统需在挂载点根目录下生成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。
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
# ai
# 均为
# 要在
# 您需要
# 工具
# 运行环境
# linux
# centos
# ubuntu
# linux系统
# debian
# if
# 数据库
# node
# bash
# 中对
# 文件系统
# 该文件
# count
# 软件包
# 发行版
# vim
# 数据库文件
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Windows电脑如何截屏?(四种快捷方法)
- 如何在 Go 同包不同文件中正确引用结构体
- 如何在Golang中捕获结构体方法错误_Golan
- 如何在 Go 中比较自定义的数组类型(如 [20]
- Linux怎么修改用户密码_Linux系统pass
- Win11怎么设置任务栏透明_Windows11使
- Win11无法安装软件怎么办_Win11解除应用安
- Python网络超时处理_健壮性设计说明【指导】
- c++怎么用jemalloc c++替换默认内存分
- 如何在Golang中优化文件读写性能_使用缓冲和并
- 如何正确访问 Laravel 模型或对象的属性而非
- MAC如何修改默认应用程序_MAC文件后缀关联设置
- Mac怎么设置登录项_Mac管理开机自启动程序【教
- Win11输入法选字框不见了怎么办_Win11输入
- Windows服务持续崩溃怎样修复_系统服务保护机
- php485返回数据不完整怎么办_php485数据
- c++中的Tag Dispatching是什么_c
- PhpStorm怎么调试PHP代码_PhpStor
- php高频调试功能有哪些_php常用调试函数与工具
- 如何使用Golang实现微服务状态监控_Golan
- C++如何获取CPU核心数?(std::threa
- Win11怎样彻底卸载自带应用_Win11彻底卸载
- Windows10如何重置此电脑_Windows1
- Win11怎么关闭粘滞键_彻底禁用Windows
- 如何在Golang中处理模块冲突_解决依赖版本不兼
- 如何使用 Python 合并文件夹内多个 Exce
- 如何使用Golang开发基础文件下载功能_Gola
- 如何在Golang中使用encoding/gob序
- Win11怎么打开旧版计算器_Win11恢复传统计
- php增删改查需要哪些扩展_开启mysqli或pd
- C++如何使用std::optional?(处理可
- Windows服务无法启动错误1067是什么_进程
- Win11怎么设置声音输出设备_Windows11
- Win11怎么压缩文件 Win11自带压缩解压功能
- C++中的协变与逆变是什么?C++函数指针与返回类
- Win11键盘快捷键大全_Windows 11常用
- c++协程和线程的区别 c++异步编程模型对比【核
- c# 在ASP.NET Core中管理和取消后台任
- Win11用户账户控制怎么关_Win11关闭UAC
- php485函数执行慢怎么优化_php485性能提
- Go 语言标准库为何不提供泛型 Contains
- Windows10如何删除Windows.old_
- Python邮件系统自动化教程_批量发送解析与模板
- Python脚本参数接收_sys与argparse
- Win10如何更改网络连接_Windows10以太
- Win10任务栏天气和资讯怎么关闭 Win10禁用
- Win11怎么设置虚拟内存最佳大小_Windows
- Win11怎么关闭触控板_Win11笔记本禁用触摸
- Python面向对象实战讲解_类与设计模式深入理解
- C#如何使用XPathNavigator高效查询X

QQ客服