centos用户磁盘使用配额

磁盘配额是对每个用户可以使用的磁盘空间进行限制,限制每个用户可以使用的磁盘空间的大小。磁盘配额的设定对象是能够实施读写操作的块设备,而且必须要有正确的文件系统。磁盘配额可以限制用户和组的访问行为,比如为指定用户限制磁盘使用量,通过磁盘空间进行限制(一个block的限制,代表1KB存储空间)或者通过inode进行限制。也可以直接通过组的方式来限制指定组中所有成员的磁盘使用量的总和。

在进行磁盘配额的限制的时候可以有两种方式,第一种比较人性化,叫做soft limit——软限制,这种限制是当用户的磁盘使用量达到软配额限制,将会启动宽限期倒计时;在倒计时归0之前,用户可以正常使用剩余的配额量,但一旦倒计时归0,用户将不能继续使用磁盘空间,除非将数据进行清理,低于软限制,而后可以继续使用磁盘空间。也就是说当一个用户使用的磁盘空间达到了限制的上限之后,先进行提醒,如果一段时间之后还是没有改变,再对其进行处理。与此相对的就是 hard limit——硬限制了,这种限制是用户所能够使用的磁盘空间的真正上限,一旦达到这个上限了,不再提醒,直接对用户进行处理,处理的方法可以是关闭用户使用磁盘的权利。一般来讲,软限制要比硬限制的数值要小一些,比如软限制可以是90M,硬限制可以是120M。一般在一个系统中软、硬限制都会存在,也就是先对用户进行提醒,用户可以继续使用,但是用户不能达到硬限制。 在Linux中默认的宽限期为7天,当一个用户达到了软限制,还能够在这7天中继续使用磁盘,直到到了7天这个期限之后,就会强制的对用户进行处理。

如果想要让分区或卷能够支持磁盘配额的设定,需要单独的挂载选项,也就是在挂载的时候加上usrquota和grpquota这两个选项

首先建立一个能够挂载的磁盘,比如在我的系统中有磁盘/dev/sdc,在这个磁盘中使用fdisk /dev/sdc 命令来建立一个 /dev/sdc1 磁盘:

[[email protected] ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x9de7a864 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[[email protected] ~]#

在建立之后将其进行格式化,装上ext4文件系统:

[[email protected] ~]# mkfs.ext4 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

然后建立一个挂载点:

[[email protected] ~]# mkdir /tmp/sdc

在建立之后就可以将刚才的磁盘挂载到这个挂载点上,但是在这里需要注意的是必须加上usrquota和grpquota选项才能使用用户配额,格式如下:

~]# mount -o usrquota,grpquota DEVICE MOUNT_POINT

或者在/etc/fstab文件中写入以下内容:

DEVICE MOUNT_POINT FSTYPE defaults,usrquota,grpquota 0 0

举例如下:

[[email protected] ~]# mount -o usrquota,grpquota /dev/sdc1 /tmp/sdc/

此时使用mount命令查看挂载的详细内容就会发现多了/dev/sdc1的挂载信息,并且有了usrquota和grpquota选项:

[[email protected] ~]# mount | grep "/sdc1"
/dev/sdc1 on /tmp/sdc type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)
[[email protected] ~]#

在进行了以上的挂载操作之后就可以在这块磁盘上进行用户的配额管理了。进行配额管理使用需要两个重要的文件,一个是aquota.group,这个文件是为了对组进行配额;另一个是aquota.user,这个文件是为了对用户进行配额。在一个磁盘新挂载的之后是没有这两个文件的,需要使用下面这个命令来进行创建:

quotacheck命令:

quotacheck  -  scan  a filesystem for disk usage, create, check and repair quota files

选项:

-v, --verbose:显示整个操作过程的详细信息

-u, --user:创建,检测和修复用户配额文件

-g, --group:创建,检测和修复组配额文件

-c, --create-files:经过检测,如果没有用户配额文件和或组配额文件,就安装用户给定的选项来进行文件的创建;

-a, --all:所有的在/etc/fstab文件中包含了与配额有关的挂载选项的设备上,是否有对应选项的配额文件;

在使用了这个命令之后就会产生两个文件:

[[email protected] ~]# quotacheck -u -g /tmp/sdc/
[[email protected] ~]# ls /tmp/sdc/
aquota.group  aquota.user  lost+found
[[email protected] ~]#

这两个文件分别有自己的功能,当然如果只是需要对用户进行配额,则不需要aquota.group这个文件,反过来也是,在使用的时候根据自己的需要来进行命令的使用。

在这两个文件创建完毕了之后,就可以对用户或组进行磁盘配额了,使用的命令是:

edquota

-u, --user:编写用户配额,默认的功能;

-g, --group:编写组配额,不推荐使用;

-t, --edit-period:设置超出软限制的宽限期;默认7天,可以选择以秒,分钟,小时,天等时间单位;

在使用这个命令时,比如为一个用户“test”的配额进行限制:

[[email protected] ~]# edquota -u test

在这条命令执行之后就会进入vim的界面,我们可以在这个界面中对用户的配额进行修改:

Disk quotas for user test (uid 1006):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdc1                        0         0         0        0        0        0
~                                                                                                                                                                          
~                                                                                                                                                                          
~

在这个vim界面中我们可以看到能够修改的选项有块数(文件的大小,单位是KB)的软限制和硬限制还有inode的软限制和硬限制,在这里我对块数的软限制和硬限制进行修改,修改的方法是直接对数值进行修改,然后保存这个文件即可:

Disk quotas for user test (uid 1006):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdc1                       0       1000       2000        0        0        0
~                                                                                                    
~                                                                                                    
~

在进行了修改保存后,必须使用以下命令来使配额功能生效或失效:

quotaon(是配额功能生效), quotaoff(是配额功能失效)

quotaon, quotaoff - turn filesystem quotas on and off

第一种用法是不指定磁盘:

[[email protected] ~]# quotaon -avug
/dev/sdc1 [/tmp/sdc]: group quotas turned on
/dev/sdc1 [/tmp/sdc]: user quotas turned on
[[email protected] ~]#
[[email protected] ~]# quotaoff -avug
/dev/sdc1 [/tmp/sdc]: group quotas turned off
/dev/sdc1 [/tmp/sdc]: user quotas turned off
[[email protected] ~]#

或者直接指定磁盘:

quotaon|quotaoff /dev/sdb1

查看配额的使用情况

quota:显示用户的磁盘配额,后头要跟上用户的名称

quota - display disk usage and limits

[[email protected] sdc]# quota test
Disk quotas for user test (uid 1006): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdc1    2000*   1000    2000   6days       2       0       0        
[[email protected] sdc]#

在这个例子中,我将块数的软限制改为1M,硬限制改为2M,在保存之后将当前用户切换到test,之后可以使用这个用户通过dd命令建立一个1M的文件(在创建之前首先要确保这个用户对这个文件拥有写入权限,如果没有要赋予):

[[email protected] sdc]$ dd if=/dev/zero bs=1024 count=2000 of=/tmp/sdc/FILE1_2M
记录了2000+0 的读入
记录了2000+0 的写出
2048000字节(2.0 MB)已复制,0.00675606 秒,303 MB/秒

此时在/tmp/sdc文件中test用户使用的磁盘空间就占去了2M的空间,如果再次使用这个命令就会报错:

[[email protected] sdc]$ dd if=/dev/zero bs=1024 count=2000 of=/tmp/sdc/FILE2_2M
sdc1: write failed, user block limit reached.
dd: 写入"/tmp/sdc/FILE2_2M" 出错: 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
0字节(0 B)已复制,0.000285576 秒,0.0 kB/秒
[[email protected] sdc]$

repquota:查看磁盘配额的使用情况,只有root用户可以使用

repquota - summarize quotas for a filesystem

[[email protected] sdc]# repquota -avug
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0      0               2    0     0       
test      +-     2000    1000    2000  6days      2    0     0       
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
*** Report for group quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    1020       0      0            3    0    0       
test      --    2000      0      0            2    0    0       
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
[[email protected] sdc]#

注意:在使用磁盘配额的时候,无论进行怎样的操作, root都不受磁盘配额限制,最多只能对root用户进行提醒,所以root的权限是非常大的,在没有必要的时候尽量不要使用root用户进行登陆。

时间: 2024-10-29 19:13:25

centos用户磁盘使用配额的相关文章

Linux用户磁盘配额

一:内核中支持QUOTA: [[email protected] /]# grep  CONFIG_QUOTA /boot/config-3.10.0-123.el7.x86_64 CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y 如果有上列输出,则表示当前内核已

CentOS 7磁盘分区及文件系统管理

一.CentOS 7磁盘及文件系统特性 在CentOS 7,不管是IDE硬盘还是SATA硬盘,在linux里面的硬盘设备文件标识都为/dev/sd[a-z].(当然这一特性在CentOS 6中就已经实现) CentOS 7默认使用的文件系统为xfs. 二.磁盘分区管理工具 磁盘分区管理工具有很多,在CentOS 7上也支持传统的fdisk工具,还有parted,sfdisk,本文以fdisk介绍,如果对parted.sfdisk等工具有兴趣可以看我的另外一篇博客:http://xinzong.b

磁盘容量配额(转)

如前面介绍章节讲到的类Unix系统最初设计理念就让许多人一起使用,多任务的操作系统,但是硬件的资源是固定有限的,如果出现个小破坏份子不断的创建文件或下载电影,那么硬盘空间总有一天会被占满的吧,这时就需要quota服务帮助我们为每个用户限制可以使用的硬盘空间,一旦超出预算就不再允许他们使用. quota的磁盘配额可以限制用户的硬盘可用空间或最大创建文件数量,并且还有软/硬限制的区别: 软限制:当达到软限制时会提示用户,但允许用户在规定期限内继续使用. 硬限制:当达到硬限制时会提示用户,且强制终止用

详解Centos默认磁盘分区

对于有经验的Linux系统管理员,在安装系统之前都会对系统的分区进行规划:针对这一需求,下面就通过默认的Centos分区与大家分享一些关于Linux系统的知识.Linux系统的磁盘命名规范:硬盘类型标记:第一个SCSI磁盘记为/dev/sda,第二个SCSI磁盘记为/dev/sdb:第一个SATA磁盘记为/dev/hda,第二个为/dev /hdb,以此类推.硬盘分区标记:Linux系统中,每一个磁盘的各个分区编号是从1开始的,例如,第一个SCSI磁盘的第一个分区为/dev/sda1,第二分区为

8.磁盘的配额的设定

一.磁盘的配额的设定  逻辑卷的建立 /dev/sdb1  500M  ajest 用户在该分区中只能存储8个文件,存储到第六个的时候会警告. allen用户在该分区中只能存储100M 的文件 存储到80M是会警告. 1.为已挂载的分区添加配额属性的设定 硬盘名字使用UUID代替 查看UUID 命令:blkid /dev/sda1 vim /etc/fstab /dev/sdb1 /mnt/ext4 ext4 defaults,usrquota,grpquota  0 0 /dev/sdb1可以

磁盘管理配额和raid配置

磁盘管理配额和raid配置 磁盘结构 <img src="E:\博客文本\磁盘配额和raid配置\1572923009298.png" alt="1572923009298" style="zoom:67%;" /> MBR与磁盘分区表示 主引导记录(MBR:Master Boot Record) MBR位于硬盘第一个物理扇区处 MBR中包含硬盘的主引导程序和硬盘分区表 分区表有4个分区记录区,每个分区记录区占16个字节 Linux中

centos 用户管理

3.使用命令管理账户useradd 选项  用户名//添加新用户 usermod 选项  用户名//修改已经存在的用户 userdel-r   用户名//删除用户表示自家目录一起删除. groupadd 选项 组名// 添加新组 groupmod 选项 组名//修改已经存在的组 groupdel 组名  //删除已经存在的特定组. 例子useradd zhh888 //添加一个用户zh888 groupadd blog  //新建一个blog组 useradd -G blog zh //表示创建

linux Centos下磁盘分区及文件系统创建与挂载

linux Centos下磁盘分区及文件系统创建与挂载 MBR(Master Boot Record)是传统的分区机制,应用于绝大多数使用BIOS的PC设备. 1.MBR支持32bit和64bit系统 2.MBR支持分区数量有限 3.MBR只支持不超过2T的硬盘,超过2T的硬盘只能使用2T空间(使用其他方法) 1.主分区:最多只能创建4个主分区(可使用) 2.扩展分区:一个扩展分区会占用一个主分区位置(不可使用,可化为逻辑分区) 3.逻辑分区:Linux最多支持63个IDE分区和15个SCSI分

Linux CentOS 7 磁盘格式化mke2fs、mkfs.ext4、磁盘挂载及手动增加swap空间

一. 磁盘格式化 查看系统支持的分区类型: cat /etc/filesystems [[email protected] ~]# cat /etc/filesystems  xfs ext4 ext3 ext2 nodev  procnodev  devpts iso9660 vfat hfs hfsplus* [[email protected] ~]# mountsysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)proc o