前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 配置Quota磁盘配额

Linux 配置Quota磁盘配额

作者头像
微软技术分享
发布2022-12-28 17:36:23
1.5K0
发布2022-12-28 17:36:23
举报

由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃,为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。

  • 配额作用:限制用户和组,对磁盘空间的使用量,限制用户和组,在磁盘内创建文件的个数
  • 软限制:低级限制,超出部分会有宽限天数,宽限天数到期后超出部分被清空,软限制不能超过硬限制
  • 硬限制:绝对限制,此限制不会被突破,达到指定限制条件后将无法继续使用更多磁盘空间
  • 宽限天数:当有数据超过软限制后,超出部分会被计时,宽限天数到期后超出部分数据将被清空,宽限天数默认是7天

注:磁盘配额是针对分区进行设置的,无法实现用户在系统中共计只能使用50MB磁盘空间,只能设置某用户在/home分区能使用50M这样的限制.切记:磁盘配额是针对分区的!

格式化新分区: 格式化/dev/sdb新分区,并检查分区是否支持磁盘配额.

代码语言:javascript
复制
[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参数)

代码语言:javascript
复制
[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文件,如下写法.

代码语言:javascript
复制
[root@localhost ~]# cat /etc/fstab
/dev/sdb /quot   ext4   defaults,usrquota,grpquota  0 0

[root@localhost ~]# mount -a

生成磁盘配额文件: 使用quotacheck -ugv 生成配额文件,生成后的配额配置文件保存在/dev/sdb里面

代码语言:javascript
复制
[root@localhost ~]# quotacheck -ugv /dev/sdb

语法格式:[ quota [选项] [分区名] ]
        -a      #扫描/etc/mtab文件中所有启用磁盘配额功能的分区.如果加入此参数,命令后面就不需要加入分区名了
        -u      #建立用户配额的配置文件,即生成aquota.user
        -g      #建立组配额的配置文件,即aquota.group
        -v      #显示扫描过程
        -c      #清除原有的配置文件,重新建立新的配置文件

编辑配额限制单个用户: 使用交互方式,给lyshark用户设置软限制100M硬限制200M

代码语言:javascript
复制
[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

代码语言:javascript
复制
[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

代码语言:javascript
复制
setquota -u  用户名     软(容)  硬(容)  软(数) 硬(数)  分区名
setquota -u superroot  100M    200M     0      0     /dev/sdb

使用模板用户配置: 有时候我们不想挨个配置,可以以lyshark用户为模板,赋予toms账户相同的限制条件

代码语言:javascript
复制
[root@localhost ~]# edquota -p lyshark -u toms
#edquota  -p 模板用户 -u 目标用户

启动/关闭磁盘配额: 配置好以后,直接执行quotaon -augv命令即可开启配额,使磁盘配额生效.

代码语言:javascript
复制
[root@localhost ~]# quotaon -augv
语法格式:[ quotaon [选项] [分区名] ]

        -a      #根据/etc/mtab文件启动所有分区的磁盘配额(不写分区名)
        -u      #启动用户的磁盘配额
        -g      #启动组的磁盘配额
        -v      #显示启动过程信息

[root@localhost ~]# quotaoff -augv
语法格式:[ quotaoff [选项] [分区名] ]

        -a      #根据/etc/mtab文件关闭所有分区的磁盘配额(不写分区名)
        -u      #关闭用户的磁盘配额
        -g      #关闭组的磁盘配额
        -v      #显示关闭过程信息

查看分区磁盘配额: 最后配置好就是查看了,查看/dev/sdb分区配额可执行以下命令.

代码语言:javascript
复制
[root@localhost ~]# repquota -ugvs /dev/sdb
语法格式:[ repquota [选项] [分区名] ]

        -u      #查询用户配额
        -g      #查询组配额
        -v      #显示详情
        -s      #以常见单位显示
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档