linux磁盘配额可以通过哪两种方法对用户进行限制?

linux磁盘配额可以通过哪两种方法对用户进行限制?,第1张

Linux磁盘配额

1. 磁盘配额的使用限制

仅针对整个分区:磁盘配额实际运行时,是针对“整个分区”进行限制的,例如,如果/dev/hda5载入在/home下,那么,在/home下面的所有目录都会受到限制。

核心必须支持磁盘配额:Linux系统核心必须支持磁盘配额模块。

磁盘配额的记录文件:使用的Kernel 2.6.XX的核心版本,这个核心版本支持新的磁盘配额模块,使用的默认文件(aquota.user、aquota.group)将不同于旧版本的quota.user和quota.group。旧版本的磁盘配额可以通过convertquota程序来转换

只对一般身份用户有效:并不是所有在Linux上的账号都可以设置磁盘配额,例如root就不能设置磁盘配额,因为他拥有整个系统所有的数据。

2. 磁盘配额程序对硬盘配额的限制

最低限制( soft ):这是最低限制容量。用户在宽限期间之内,它的容量可以超过最低限制,但必须在宽限时间之内将磁盘容量降低到最低限制的容量限制范围之内。

最高限制( hard ):这是“绝对不能超过”的容量。通常最高限制会比最低限制高。

宽限时间:宽限之间是指当用户使用的空间超过了最低限制,却还没有到最高限制时,在这个“宽限时间”内,就必须请用户将使用的磁盘空间降低到最低限制之下,否则则不允许在写入。反之,则宽限时间取消

3. 基本的磁盘配额命令

在开始进行磁盘配额的实际练习之前,先了解一下磁盘配额使用的命令,这些命令分为两种,一种是查询功能(quota、quotacheck、quotastats、warnquota、requota),另一种则是编辑磁盘配额的内容(edquota、setquota)。下面我们来讨论这些基本命令。

3.1. /etc/mtab

为什么要提这个文件系统实际载入的记录文件呢?要注意,当我们使用磁盘配额的时候,系统会去搜素:“系统上具有磁盘配额参数的分区”,所以,当我们要使用磁盘配额的功能时,系统文件必须要支持磁盘配额的标志。一般来说,我们是通过编辑/etc/fstab后,在重新载入文件系统的方法,来让系统的文件系统支持磁盘配额。这个概念很重要。

3.2. quota

这个命令仅仅用来“显示”当前某个用户或者组的磁盘配额值。

# quota -uvs//这个是显示当前用户的配额值

-u:表示显示用户的配额

-g:表示显示组的配额

-v:显示每个文件系统的磁盘配额

-s:可以选择用Inode或者磁盘容量的限制值来显示

# quota -gvs //显示root用户所在组的配额值

# quota -uvs test1 //显示test1用户的配额值

3. 3.quotacheck

这个命令的主要目的是扫描某个磁盘的配额空间,它会针对分区进行扫描,并且,由于该磁盘持续欲行,可能扫描过程中文件会增加,造成磁盘配额扫描错误,因此,当使用quotacheck时,该磁盘将“自动被设置为只读扇区”;扫描完毕后,扫描所得的磁盘空间结果会写入该区最顶端(aquota.user与aquota.group)

# quotacheck -cug //扫描分区,并生成配额信息文件

-a:扫描所有在/etc/mtab内含有磁盘配额支持的文件系统,加上此参数,可以不写/mount_point

-v:显示扫描过程

-u:针对用户扫描文件与目录的使用情况,会建立quota.user

-g:针对组扫描文件及与目录的使用情况,会建立quota.group

-c :代表创建

Ps:如果提示不能quotacheck,权限不足,此时的原因是因为SElinux ,关闭它就能创建了。

3. 4: edquota

这个文件时编辑每一个“用户”或者“用户组”的磁盘配额数值。通常我们以edquota -u username或者是edquota -g groupname来编辑个人与用户组的磁盘配额值,不过这样一个一个分配很慢。也可以直接复制一个人的设置给另外一个人。用edquota -p user1 -u user2,下面介绍编辑时,里面的几个值

。filesystem:代表这个磁盘是针对哪个分区

。blocks:这个是当前用户在文件系统上所消耗的磁盘数量,也就是当前用户使用的空间,单位是KB

-u:配置用户的磁盘配额

-g:配置组的磁盘配额

-p:复制磁盘配额设定,从一个用户到另一个用户

-t:修改宽限时间,可以针对分区

# edquota -u test1 //配置test1的磁盘配额

# edquota -p test1 -u test2 //将test1的配置服务之test2

#edquota -t//修改宽限时间 可以针对每个分区

3.5. quotaon

这个命令是启动磁盘配额,不过,由于这个命令是启动aquota.group与aquota.user的,所以必须要先完成quotacheck的工作,然后执行quota -a即可启动

-u:针对用户启动磁盘配额

-g:针对用户组启动磁盘配额

-v:显示启动过程的相关信息

-a:根据/etc/mtab内的文件系统设置启动相关的磁盘配额,若不加-a的话,则后面就需要加上特定的文件系统

#quota -avug//启动所有的磁盘配额

#quota -uv /data //启动/data里面的用户磁盘配额设置

3.6. quotaoff

-a:全部文件系统的磁盘配额都关闭

-u:关闭用户的磁盘配额

-g:关闭组的磁盘配额

#quotaoff -a//全部关闭

#quotaoff -u /data //关闭/data的用户磁盘配额设置值

LINUX下磁盘限额的配置(以CentOS版本为例):

1、编辑修改/etc/fstab文件

vim /etc/fstab

LABEL=/  / ext3 defaults 1 1

#改为:

LABEL=/  / ext3 defaults,usrquota 1 1

2、重新装载 Linux 分区

mount -o remount  /

#usrquota是基于用户的磁盘配额,grpquota是基于组的磁盘配额

3、在准备加磁盘限额的文件系统安装点目录建立aquota.user 和 aquota.group 文件

cd /

touch aquota.user

#为用户设置磁盘限额

touch aquota.group

#为用户组设置磁盘限额

4、将两个文件(aquota.user、aquota.grup)格式化

quotacheck -mc /#-m的意思是强迫在“读、写”模式下检查硬盘的配额。

5、启动磁盘配额。

quotaon /

6、设置用户/组的配额

edquota 用户名/组名

#例如给swm用户设置限制:

# edquota swm  (执行打开一个vi窗口编辑)

Disk quotas for user swm (uid 505):

  Filesystem                   blocks       soft            hard            inodes      soft         hard

  /dev/sda3                    119108     125000     125000         20         125000   125000

7、设定磁盘限额的时间

edquota -t

#出现一个 vi 窗口:

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/sda3 7days 7days

#按照需要修改。重新启动就磁盘限额就生效

8、如果复制相同的磁盘配额给不同用户

edquota -p user user1 user2 user3

edquota -g -p group group1 group2 group3

9、取消磁盘限额

quotaoff /

安装磁盘配额支持软件

yum install quota

制作文件系统,并以支持配额功能的方式挂载文件系统

mkfs.ext4 /dev/sdb1

mount /dev/sdb1 /tmp

mount -o remount,usrquota,grpquota /dev/sdb1

查看磁盘挂载时是否启用磁盘配额技术

mount

要想永久挂载(需在配置文件里,加入usrquota,grpquota这两个参数)

vim /etc/fstab

/dev/sdb1 /tmp ext4 defaults,usrquota,grpquota 0 0

检测磁盘配额并生成配额文件(若是出错,请关闭selinux)

quotacheck -cugv /tmp #此命令会在/tmp下生成两个文件

#解释:

-c 创建配额文件,

-u (-g) 扫描磁盘空间,计算每个用户(组)识别码所占用的目录和文件数,

-a 扫描在/etc/fstab文件里,有加入quota设置的分区,

-d 详细显示指令执行过程,便于排错。

-R 排除根目录所在分区

用户和组帐号的配额设置

useradd wsfnk #先创建一个用户,若有就不用创建了

edquota -u wsfnk #-g 表示 wsfnk组,在类似vim界面,编辑限制大小,

Disk quotas for user wsfnk (uid 1000):

Filesystem                   blocks       soft       hard     inodes     soft     hard

/dev/sdb1                         0          20         50          1        0        0

#对其中各字段解释如下:

#Filesystem下显示实现磁盘配额的分区;

#blocks下为当前已经使用的大小,不用修改;

#soft为软限制,超出后会给出警告,超出的部分默认会保存7天;

#hard为硬限制,不可超越的限制(软硬限制默认单位都是KB);

#后面的两个相同的soft、hard分别表示分区中这个用户可以创建的文件数目软硬限制;

#本例中设置,qingsword可以使用/dev/sdb1分区的软限制大小10KB,硬限制20KB,可创建的文件个数软限制是3个,硬限制5个;

edquota参数

-u :设置用户的quta,这是预设的参数

-g :设置群组的quota

-p 源用户名称 :将源用户的quota设置套用到其他用户或组

-t :设置宽限期限

激活磁盘配额

quotaon -ugv /tmp

注意:磁盘配额中的blocks,不是fdisk里看到的blocks,而是表示1k

测试是否限制会生效

写数据

mkdir /tmp/test

chmod 777 /tmp/test

切换用户wsfnk

su wsfnk

cd /tmp/test

dd if=/dev/zero of=wss.test bs=1k count=500

关闭磁盘配额

#关闭单个磁盘的磁盘配额

quotaoff /sdb1

#关闭所有已经开启的磁盘配额

quotaoff -a

#反之,开启所有磁盘配额

quotaon -a

#如果不再使用磁盘配额,可以将配置文件也删除

rm -rf /sdb1/aquota.*

#最后删除/etc/fstab中的自动挂载即可。 详情查看  网页链接


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8792406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存