linux用户磁盘配置文件aquota.user访问权限默认访问权限是多少

微信公众号
如何限制Linux用户的磁盘空间(ext3)
本文旨在提供一个思路给大家来参考,所以是针对用户磁盘空间的限制(ext3),作为的使用,对于虚拟主机用户的管理及磁盘空间的分配这些工作是必不可少的,所以清楚如何去限制与管理用户的磁盘空间也就显得尤为重要啦!
1. 修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项(如下的例子)。
/dev/hda7 /home ext3 defaults,usrquota,grpquota 1 2
2. 重新装载 Linux 分区,例如:
[root@fileserver root]# mount -o remount /home
3. 在欲加磁盘限额的文件系统的安装点目录建立 aquota.user 和 aquota.group 文件:
[root@fileserver root]# cd /home (/home 为单个分区 /dev/hda7 的装载点)
[root@fileserver home]# touch aquota.user (为用户设置磁盘限额)
[root@fileserver home]# touch aquota.group (为用户组设置磁盘限额)
这时生成 的 aquota.user 和 aquota.group 是空的,不符合系统的要求。
请看下一步。
4. 生成符合系统要求的 aquota.user 和 aquota.group
[root@fileserver home]# quotacheck /home (生成符合系统要求 的 aquota.user)
[root@fileserver home]# quotacheck -g /home (生成符合系统要求 的 aquota.group)
生成时,有错误提示。这不要紧。因为 先前 touch 生成的是一个空文件,肯定格式不对。
这样 正确的 aquota.user 和 aquota.group 生成啦。
继续下一步:
5. 为用户设置磁盘空间限额:
[root@fileserver home]# edquota [-u] user_name
[root@fileserver home]# edquota -g group_name (对于用户组)
本命令开启一个 vi 窗口,为用户设置磁盘空间和i节点数目的限额.其中 soft 限额为一个临时性的限额;hard 限额为一个永久性限额(soft 限额可略大于 hard 限额),编辑方法与 vi 完全相同,以 ZZ 或 :wq 命令退出.如要给若干用户 user1, user2,user3 指定相同的磁盘限额,可用下面的命令给这些用户赋予与 protuser 相同的限额:
[root@fileserver home]# edquota [-u] -p protuser user1 user2 user3
[root@fileserver home]# edquota -g -p protgroup group1 group2 group3
设定soft quota和hard quota之间的时间:
[root@fileserver home]# 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/hda7 7days 7days
修改成自己所需要的,并保存退出就设置这个时间啦。
您在这之后可能需要重新启动,以使磁盘限额生效。
您可以啦,不过还要注意一些问题,请继续看下去。
6. 检查磁盘空间限制的一致性,系统会自动每次重新启动时,在检查硬盘后进行( /etc/rc.sysinit ),无须您亲手进行。
假若 分区 已经以&读写&方式挂上时,您要小心,例如:
[root@fileserver root]# quotacheck /home
quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
这时, 由于某种需要,或者在某种情况,&不得不&运行这个命令 :
[root@fileserver home]# quotacheck -mf [-u] /dev/hda7
[root@fileserver home]# quotacheck -mf -g /dev/hda7
参数 -m[M] 意思是:强迫在&读、写&模式下检查硬盘的 quota (有一定的&正在写&的数据丢失可能,应确保没有进程在写这个分区。建议在单用户模式下进行。)。
例如:(在平时检查)
日下午15时25分48秒[root@mail gugong]# quotacheck /var/spool/ -f
quotacheck: Cannot remount filesystem mounted on /var/spool read-only so counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force checking.
日下午15时25分53秒[root@mail gugong]# quotacheck /var/spool/ -m
quotacheck: Quota for users is enabled on mountpoint /var/spool so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
日下午15时25分57秒[root@mail gugong]# quotacheck /var/spool/ -mf
日下午15时25分59秒[root@mail gugong]#
7. 以后您如果要取消磁盘空间和i节点数目的限制,可用以下命令,请看:
[root@fileserver root]# quotaoff /home (取消磁盘空间限制。)
[root@fileserver root]# quotaon /home (现在启动磁盘空间限制。)
[root@fileserver root]# quotaon /home (已经启动磁盘空间限制啦,所以出现以下错误:)
quotaon: using /home/aquota.group on /dev/hda7: Device or resource busy
quotaon: using /home/aquota.user on /dev/hda7: Device or resource busy
其他类似的新闻
● ● ● ● ● ● ● ● ● ●
其他相关的新闻
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点
小伙伴都在关注的热门词
Copyright (C) 2006- Inc. All Rights Reserved
孝感风信信息技术有限公司 ● 版权所有IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
学习如何设置和检测 Linux® 文件系统的磁盘配额,防止个体用户使用超过允许范围的空间,避免造成整个文件系统的意外拥堵。您可以使用本文中的资料来准备 Linux 系统管理员认证的 LPI 101 考试,或者只是探究配额。
, 高级程序员, IBM
Ian Shields 参与 developerWorks Linux 专区的许多 Linux 项目。他是北卡罗来纳州 Research Triangle Park 的一名高级程序员。他于 1973 年作为一名系统工程师加入 IBM 位于澳大利亚堪培拉的子公司,此后,在加拿大蒙特利尔和北卡罗来纳州 RTP 从事通信系统和普适计算。他拥有多项专利并发表了许多论文。他毕业于 Australian National University,取得纯数学和哲学学位,他拥有北卡罗来纳州州立大学的计算机硕士和博士学位。更多信息参见 。
概述在本文中,了解如何管理用户的磁盘配额。学习:设置一个文件系统的磁盘配额设置配额限制检查配额生成配额报告除非有特殊说明,本文中的例子都使用 2.6.34 内核的 Fedora 13。您在其他系统上的结果可能有所不同。本文帮助您准备 Linux Professional Institute's Junior Level Administration(LPIC-1)考试 101 中主题 104 下的目标 104.4。该目标的权值为 1。先决条件为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个 Linux 系统,用于练习本文介绍的命令。有时候不同版本的程序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同。您还要熟悉文章 “” 中的内容。配额简介配额允许您控制用户或者组织的磁盘使用。它能防止个体用户和组织使用文件系统中超过自己所允许的部分,或者造成系统完全拥堵。XFS 文件系统也支持项目配额,它限制了一个项目所能使用的空间大小,无论哪个用户在项目的目录树中创建文件。配额必须由 root 用户或者有 root 权限的用户启用和管理。它们往往用于多用户系统,不常用于单一用户的工作站。有 3 种不同的配额支持:vfsold,或者版本 1 配额vfsv0,或者版本 2 配额xfs,XFS 文件系统上的配额本文包括非 XFS 文件系统上的版本 2 配额和 XFS 文件系统上的 xfs 配额。请注意,LPI 101 考试以版本 2 配额为重点。配额需要 2.4 内核之后引入的内核支持。2.6 内核也有您所需的支持。XFS 配额往往是日志化的。内核 2.6.11 及以上版本支持日志化版本 2 配额。测试设置首先要说明本文使用的测试分区设置,这样您就能更好地理解部分例子。如果您已经理解了文件所有权和权限,也已经安装了配额包,那么您可以直接跳到
部分。参考 ,获得该系列提供更多命令详细信息的其他文章链接,本文此处只提供简单说明。测试分区和用户我们使用 110GB ext4 分区(/dev/sda7)和 40GB XFS 分区(/dev/sda8)来演示。它们分别安装在 /quotatest/ext4 和 /quotatest/xfs。清单 1. 设置分区[root@echidna ~]# mkfs -t ext4 /dev/sda7
mke2fs 1.41.10 (10-Feb-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
7159808 inodes,
1431893 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=
874 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
3, , 2, 2654208,
624, 887872
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.
Use tune2fs -c or -i to override.
[root@echidna ~]# mkfs -t xfs /dev/sda8
meta-data=/dev/sda8
agcount=4, agsize=2622108 blks
sectsz=512
bsize=4096
blocks=, imaxpct=25
swidth=0 blks
=version 2
bsize=4096
ascii-ci=0
=internal log
bsize=4096
blocks=5121, version=2
sectsz=512
sunit=0 blks, lazy-count=1
realtime =none
extsz=4096
blocks=0, rtextents=0
[root@echidna ~]# mkdir -p /quotatest/ext4
[root@echidna ~]# mkdir -p /quotatest/xfs
[root@echidna ~]# mount /dev/sda7 /quotatest/ext4
[root@echidna ~]# mount /dev/sda8 /quotatest/xfs在这个例子中,我们希望普通用户能够在新的文件系统中创建文件。这样创建,文件系统归 root 所有,一般用户不能在系统上创建文件或者目录。我们变更所有权,这样新的文件系统就由拥有名为 development 的专用组的用户 development 所有。我们变更权限,这样在 development 组中的用户就能够创建文件和目录。
清单 2 显示了我们如何设置所有权和权限。清单 2.
变更测试分区的所有权和权限[root@echidna ~]# # Show default ownership and permissions
[root@echidna ~]# ls -l /quotatest/
drwxr-xr-x. 3 root root 4096 Nov 18 22:43 ext4
drwxr-xr-x. 2 root root
6 Nov 18 22:43 xfs
[root@echidna ~]# # Change user and group ownership to development
[root@echidna ~]# chown development:development /quotatest/*
[root@echidna ~]# # Allow group members to create files and directories
[root@echidna ~]# chmod g+w /quotatest/*
[root@echidna ~]# ls -l /quotatest/
drwxrwxr-x. 3 development development 4096 Nov 18 22:43 ext4
drwxrwxr-x. 2 development development
6 Nov 18 22:43 xfs
[root@echidna ~]# # Set default group of new files and directories
[root@echidna ~]# # to development
[root@echidna ~]# chmod g+s /quotatest/ext4/
[root@echidna ~]# ls -l /quotatest/
drwxrwsr-x. 3 development development 4096 Nov 19 11:39 ext4
drwxrwxr-x. 2 development development
6 Nov 18 22:43 xfs我们利用 3 位用户,ian、gretchen 和 tom,他们每人都拥有和用户名一样的专用组,同时也是 development 组的成员。检查配额包如果您正在使用一个桌面系统,那么您可能无法安装配额包,因为配额不是普通的默认桌面系统安装的。使用 dpkg 或者 rpm 确认您是否安装了包,如清单 3。清单 3. 检查配额包# On Debian-based systems
ian@pinguino:~$ dpkg -l quota
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
Description
+++-==============-==============-============================================
4.00~pre1-3
implementation of the disk quota system
# On systems that use RPM
[ian@echidna ~]$ rpm -q quota
quota-3.17-11.fc13.x86_64如果您没有如本文所述安装配额包,在安装页 “” 和
获取帮助。配额的启用添加配额支持到 /etc/fstab启用配额的下一步是根据您是否想实现用户配额、组配额,或者两者兼有,添加适当选项到 /etc/fstab 的文件系统定义。XFS 文件系统也支持项目配额。编写时,启用配额的选项不是集中记录在一个明显的手册页中。表 1 显示了可用的选项,以及它们适用的配额系统类型。表 1.
/etc/fstab 中的配额选项选项适用于使用usrquota所有类型启用用户配额usrjquota=filenamevfsv0启用日志化的用户配额;需要一个配额数据库文件名(通常为 aquota.user)和 jqfmt 选项的规格uquotaxfs相当于 usrquotagrpquota所有类型支持组配额grpjquota=filenamevfsv0启用日志化组配额;需要一个配额数据库文件名(通常为 aquota.group)和 jpfmt 选项的规格gquotaxfs相当于 grpquotaprjquotaxfs启用项目配额pquotaxfs相当于 prjquotajqfmt=formatvfsv0当 usrjquota 或者 grpjquota 被指定时使用的配额格式;目前只有 vfsv0 是受支持的格式quotavfsold,vfsv0相当于 usrquotanoquotavfsold,vfsv0不启用配额uqnoenforcexfs启用用户配额审计,但是不能启用强制措施gqnoenforcexfs启用组配额审计,但是不能启用强制措施pqnoenforcexfs启用项目配额审计,但是不能启用强制措施我们使用一个 ext4 分区和一个 XFS 分区进行演示。我们将会在这些文件系统中添加用户和组配额,这样您就可以看到配额如何在两个不同的文件系统中运行。我们的 /etc/fstab 输入如清单 4 所示。清单 4. 启用 /etc/fstab 中的配额支持/dev/sda7
/quotatest/ext4
defaults,usrquota,grpquota
/quotatest/xfs
defaults,usrquota,grpquota
1 2重新安装文件系统编辑 /etc/fstab 和添加配额之后,您需要重新安装文件系统。对 XFS 文件系统来说,配额数据是文件系统元数据的一部分。对其他文件系统来说,用户配额信息存储在文件系统 root 的 aquota.user 文件,组配额也同样存储在 aquota.group。版本 1 配额使用 quota.user 和 quota.group。对这些文件系统来说,重新安装完文件系统之后,您必须创建配额文件,并启用配额进行检测。quotacheck 命令检查所有文件系统上的配额,如果 aquota.user 和 aquota.group 文件不存在,就会创建所需的 aquota.user 和 aquota.group 文件。它还能修复损坏的配额文件。查看手册页获得更多信息。以下是通常和 quotacheck 命令一起使用的部分常用选项:-a or --all检查所有安装在 /etc/mtab(除了 NFS 文件系统)的文件系统-c or --create-files忽略当前的配额文件。运行新的扫描,将结果写到磁盘-u or --user检查用户配额(默认的)-g or --group检查组配额-v or --verboseVerbose 输出清单 5 显示了在我们新安装的文件系统上运行 quotacheck 命令的结果。如果您没有使用 -a 选项,就必须指定您想要检查的文件系统。清单 5. 创建 vfsold 和 vfsv0 的配额数据库文件[root@echidna ~]# quotacheck -augvc
quotacheck: Skipping /dev/sda8 [/quotatest/xfs]
quotacheck: Your kernel probably supports journaled quota but you are not using it.
Consider switching to journaled quota to avoid running quotacheck after an unclean
quotacheck: Scanning /dev/sda7 [/quotatest/ext4] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 2 directories and 1 files
quotacheck: Old file not found.
quotacheck: Old file not found.请注意,来自 quotacheck 命令的警告建议我们转而使用日志化的配额。将 /dev/sda7 上 ext4 文件系统 /etc/fstab 中的选项由 defaults,usrquota,grpquota 改为 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,就能完成此变更。还需要注意的是,XFS 文件系统可由 quotacheck 命令跳过,因为 XFS 配额结构包含在元数据和日志中。开始或者停止配额检测要强制实施 vfsold 和 vfsv0 配额检测,您必须使用 quotaon 命令将其启用。常用选项 -a,-g,-u 和 -v 与 quotacheck 命令 有相同意思。类似的,如果您没有指定 -a 选项,就必须指定文件系统。如果只是想要显示配额的开启和关闭,您可以使用 -p 选项。使用 quotaoff 命令关闭配额检测。清单 6 显示了这些命令的例子。清单 6. 开始 vfsold 和 vfsv0 配额的配额检查[root@echidna ~]# quotaon -p /quotatest/ext4/
group quota on /quotatest/ext4 (/dev/sda7) is off
user quota on /quotatest/ext4 (/dev/sda7) is off
[root@echidna ~]# quotaon -uagv
/dev/sda7 [/quotatest/ext4]: group quotas turned on
/dev/sda7 [/quotatest/ext4]: user quotas turned on
[root@echidna ~]# quotaoff -ugv /quotatest/ext4/
/dev/sda7 [/quotatest/ext4]: group quotas turned off
/dev/sda7 [/quotatest/ext4]: user quotas turned off
[root@echidna ~]# quotaon -ugv /quotatest/ext4/
/dev/sda7 [/quotatest/ext4]: group quotas turned on
/dev/sda7 [/quotatest/ext4]: user quotas turned on对 XFS 文件系统来说,配额检查是默认启动的,除非文件安装了 uqnoenforce,gqnoenforce 或者 pqnoenforce 设置。使用 xfs_quota 命令和
-x(适用于 专家)选项控制 xfs 配额。没有 -x 选项,您显示配额信息会受到限制。命令还有一些子命令,包括 help,用于显示可用的子命令清单,state,用于显示整体状况,enable,用于启用配额检测,还有 disable,用于停止。选项 -u、-g 和 -p 分别限制用户、组或项目的行为。使用 -v 获得 verbose 输出。您可以在命令行模式运行命令,命令行中独立的子命令由 -c 选项指明。您可以多次指定多种子命令的该选项。如果您将指定子命令的选项,可能就需要引用命令。清单 7 中显示了一些例子。清单 7. 开始 xfs 配额的配额检测[root@echidna ~]# xfs_quota -x
xfs_quota& state
User quota state on /quotatest/xfs (/dev/sda8)
Accounting: ON
Enforcement: ON
Inode: #131 (3 blocks, 3 extents)
Group quota state on /quotatest/xfs (/dev/sda8)
Accounting: ON
Enforcement: ON
Inode: #132 (3 blocks, 3 extents)
Project quota state on /quotatest/xfs (/dev/sda8)
Accounting: OFF
Enforcement: OFF
Inode: #132 (3 blocks, 3 extents)
Blocks grace time: [7 days 00:00:30]
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]
xfs_quota& disable
xfs_quota& quit
[root@echidna ~]# xfs_quota -x
-c "enable -gu -v"
/quotatest/xfs
User quota state on /quotatest/xfs (/dev/sda8)
Accounting: ON
Enforcement: ON
Inode: #131 (3 blocks, 3 extents)
Group quota state on /quotatest/xfs (/dev/sda8)
Accounting: ON
Enforcement: ON
Inode: #132 (3 blocks, 3 extents)
Blocks grace time: [7 days 00:00:30]
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]在启动上检查 vfsold 和 vfsv0 配额虽然不在本文范围内,quotacheck 和 quotaon 命令通常包含在初始化脚本中,这样无论您何时启动系统,都能同时启用配额。Quota Mini HOWTO(见
的链接)有额外的信息。如果您使用日志配额,就不需要在启动时运行 quotacheck。设置配额限制正如您所见,配额不是通过文件系统 root 中的二进制文件控制,就是通过文件系统元数据控制。为特定用户设置一个配额,要使用 edquota 命令。这个命令会为用户从启用配额的各种文件系统中提取配额信息,创建一个临时文件,并为您打开编辑器来调整配额。通过默认设置,edquota 使用 vi 编辑器。如果您想使用不同的编辑器,设置 EDITOR 或者 VISUAL 变量。编辑用户配额,使用 -u 选项(默认)和一个或者多个用户名。编辑组配额,使用 -g 和一个或者多个组名。您必须是 root 用户,才可以编辑配额。使用 vi 作为编辑器,显示的信息类似清单 8 所示。清单 8. 运行 edquotaDisk quotas for user ian (uid 1000):
Filesystem
~正如您在清单 8 中所见,edquota 显示了我当前的使用,包括配额启用中的每个文件系统上的 1K 模块和索引节点。对模块和索引节点的使用还有软、硬件上的限制。在这个例子中,它们都是 0,意味着没有配额限制。软件限制就是一个值,这个值就是用户超过配额时将会收到邮件警告的次数。硬件限制用户不能超过的次数。您可以将模块限制想成用户能够存储的数据量的适当限制,索引节点限制想成文件和目录数的限制。变更配额限制您可以更改临时文件中的值,然后保存文件来变更配额限制。如果您不想变更,就不保存直接关闭文件。我们在例子中使用了非常小的限制,这样您就能很容易就见到效果了。假设您想将配额设置为每个测试文件系统上 10MB 的数据和 50 个文件。允许额外 10% 的硬件限制,您可以如清单 9 所示设置值。清单 9. 设置限制Disk quotas for user ian (uid 1000):
Filesystem
55保存文件,新的配额就会生效。请注意,您对使用的模块或者索引节点值所作出的任何修改都会被忽略。配额的复制现在您就要为附加开发人员创建 id。假设您有用户 gretchen 和 tom,而且您希望他们两个都和 ian 有相同的配额。您可以使用 edquota 的 -p 选项,它使用 ian 的配额为其他用户配额的 原型,如清单 10 所示。清单 10. 从原型设置配额root@pinguino:~# edquota -p ian gretchen tom组限制您还可以根据文件的组所有权,使用 edquota 限制磁盘空间的分配。比如,上面提到的三位开发人员是 development 组的成员。要把组中所有成员所能使用的总量设置为 250MB 和 100 文件,使用命令 edquota -g development 并设置值,如清单 11 所示。清单 11. 为一个组设置配额Disk quotas for group development (gid 505):
Filesystem
110您可能会想,为什么在 /dev/sda7 的 ext4 文件系统上已经有被使用的模块和索引节点。请回想一下,在清单 2 中,我们使用 chown 和 chmod 来设置所有新文件的默认组为 development 组?这也适用于两个配额数据库文件。您可以将它们改回到 root 的中的值,如清单 12 所示。请保证在关闭配额检查之后进行变更,然后再将它开启。清单 12. 重新设置配额数据库文件的组所有人 [root@echidna ~]# quotaoff /quotatest/ext4/
[root@echidna ~]# chown :root /quotatest/ext4/aquota.*
[root@echidna ~]# quotaon /quotatest/ext4/宽限期用户或者组可能会超出软件限制的 宽限期,默认值为 7 天。宽限期之后,软件限制就会作为硬件限制执行。一旦达到硬件限制,就必须在创建新文件之前删除部分文件。使用 edquota 的 -t 选项设置宽限期。您再一次回到编辑器中,会见到类似清单 13 中的数据。和之前一样,保存变更来更新值。请确保给用户留有足够时间接收警告邮件、相应地删除部分文件。清单 13. 设置宽限期Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem
Block grace period
Inode grace period
7days检查配额没有选项的 quota 命令显示了任何文件系统上激活用户的配额,如果用户在这个系统上有文件,就会在其上设置配额。-v 选项显示了启用配额的所有文件系统的信息。root 用户可以给命令添加一个用户名来查看特定用户的配额。在清单 14 中,我们在 ext4 文件系统上创建一个 1MB 文件,并说明了有无 -v 选项的 quota 命令的使用。清单 14. 显示配额[ian@echidna ~]$ dd if=/dev/zero of=/quotatest/ext4/ianfile1 bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0. s, 132 MB/s
[ian@echidna ~]$ quota
Disk quotas for user ian (uid 1000):
Filesystem
[ian@echidna ~]$ quota -v
Disk quotas for user ian (uid 1000):
Filesystem
55根据当前使用的统计数据,您可以看到显示的软硬件配置限制。如果在创建文件之后立刻运行 quota 命令,您就会在短时间内见到略大的模块数显示。清单 15 显示了如果您超过软件限制会出现什么情况,以及如果超过硬件限制会出现什么情况。在这个例子中,我们在已创建的 1MB 中添加 9.5MB 的文件,这很显然超出了软件限制。请注意软件限制如何获得一个星号,除了它表示用户超出配额。还要注意的是,宽限期列标明了用户要在多长时间内解决问题。最后,当我们尝试复制 1MB 文件时,因为它会超出用户 ian 的硬件限制,所以操作失败。清单 15. 超过配额[ian@echidna ~]$ dd if=/dev/zero of=/quotatest/ext4/ianfile2 bs=1024 count=9500
9500+0 records in
9500+0 records out
9728000 bytes (9.7 MB) copied, 0.0754223 s, 129 MB/s
[ian@echidna ~]$ quota
Disk quotas for user ian (uid 1000):
Filesystem
[ian@echidna ~]$ cp /quotatest/ext4/ianfile1 /quotatest/ext4/ianfile3
cp: writing `/quotatest/ext4/ianfile3': Disk quota exceeded配额报告一次检查一个用户的配额很没有效率,所以您会想要使用 repquota 命令生成配额报告。清单 16 显示了如何查看 /quotatest/ext4/ 上所有用户和组的配额。清单 16. 生成配额报告[root@echidna ~]# repquota -ug /quotatest/ext4/
*** Report for user quotas on device /dev/sda7
Block grace time: 7 Inode grace time: 7days
Block limits
File limits
----------------------------------------------------------------------
development --
*** Report for group quotas on device /dev/sda7
Block grace time: 7 Inode grace time: 7days
Block limits
File limits
----------------------------------------------------------------------
development -+
7days请注意,清单 16 中用户 ian、tom 和组 development 的加号,它表明现在每个都超出了配额。用户 ian 有过多的数据。用户 tom 有过多的文件。组 development 也有过多文件。正如使用其他配额命令一样,-a 选项生成启用配额的已安装的文件系统的报告。-v 选项生成一个更详细的输出。-n 选项生成数字用户的编号,而不是将用户编号解析为名称。这个会对庞大的报告提供一个性能提升,但对读者并没有那么有用。XFS 文件系统上的项目配额XFS 配额系统还支持项目配额,它是组配额的替换。您不能在 XFS 文件系统上同时使用组和项目配额。项目配额要通过在 /etc/fstab 中添加 prjquota(或者 pquota)启用。项目配额使用数字 id 的概念和更具描述性的项目名称。文件 /etc/projects 用于映射数字项目识别符到目录树,而文件 /etc/projid 映射数字项目识别符到项目名称。可以不使用 /etc 中的这两个文件进行操作,但是这样较为不方便。查看映射页面获取详细信息。要设置项目配额,您必须在专家模式(-x 选项)使用 xfs_quota 命令。首先您必须使用 project 子命令和 -s 选项,通过标记所有受影响的索引节点作为项目一部分来设置项目配额。然后使用 limit 子命令来设置硬件或者软件限制。清单 17 显示了如何在 /quotatest/xfs/proj-dir1 下设置一个 15MB 项目硬件限制的项目树。我们还将设置一个没有限制的并行 /quotatest/xfs/proj-dir2 进行说明。清单 17. 设置 xfs 项目配额[root@echidna ~]# mkdir -m ag+w /quotatest/xfs/proj-dir{1,2}
[root@echidna ~]# chown development:development /quotatest/xfs/proj-dir*
[root@echidna ~]# echo "50:/quotatest/xfs/proj-dir1" && /etc/projects
[root@echidna ~]# echo "dev-projects:50" && /etc/projid
[root@echidna ~]# xfs_quota -x
xfs_quota& path
Filesystem
/quotatest/xfs
/dev/sda8 (uquota, pquota)
[001] /quotatest/xfs/proj-dir1 /dev/sda8 (project 50, dev-projects)
xfs_quota& project -s dev-projects
Setting up project dev-projects (path /quotatest/xfs/proj-dir1)...
Processed 1 (/etc/projects and cmdline) paths for project dev-projects with recursion
depth infinite (-1).
xfs_quota& limit -p bhard=15m dev-projects
xfs_quota& q我们将通过使用户 chris 创建几个文件来说明项目配额。用户 chris 不是 development 组的成员,也没有为自己和组设置配额。清单 18 显示了 chris 不能在 /quotatest/xfs/proj-dir1 创建大于 15MB 的数据,但在 /quotatest/xfs/proj-dir2 中没有限制。清单 18. 行动中的项目配额[chris@echidna xfs]$ id chris
uid=1010(chris) gid=1010(chris) groups=1010(chris)
[chris@echidna xfs]$ dd if=/dev/zero of=proj-dir1/chris1 bs=1024 count=10000
10000+0 records in
10000+0 records out
bytes (10 MB) copied, 0.0379557 s, 270 MB/s
[chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir1/chris2
cp: writing `proj-dir1/chris2': No space left on device
[chris@echidna xfs]$ ls -l proj-dir1
total 15356
-rw-rw-r--. 1 chris chris
Nov 23 13:16 chris1
-rw-rw-r--. 1 chris chris
5484544 Nov 23 13:16 chris2
[chris@echidna xfs]$ # Note: second copy was truncated at hard limit
[chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris1
[chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris2
[chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris3
[chris@echidna xfs]$ du -sh *
proj-dir2用户警告warnquota 命令用于对超出配额的用户发出邮件警告。当组超出配额时,就会发邮件给 /etc/quotagrpadmins 中组的指定用户。邮件格式由文件 /etc/warnquota.conf 控制。文件 /etc/quotatab 用于映射名称,例如 /dev/sda7 映射为用户更容易理解的描述,如 “Shared EXT3 filesystem”。通常 warnquota 作为一个 cron 工作定期运行。查看用户手册页面,了解更多 cron 和 warnquota 的信息。Linux 上的配额介绍就到此为止。
参考资料 使用
查找更多 developerWorks 文章,根据 2009 年 4 月的目标帮助您学习 LPIC-1 认证。在
网站,查找 Linux Professional Institute's Linux 系统管理认证三个级别的详细目标、任务清单、以及示例问题。尤其,请查看它们 2009 年 4 月目标的
和 。经常查看 LPIC Program 网站获得最新的目标。检查 developerWorks 上完整的 ,了解 Linux 功能,以及根据 2009 年 4 月之前的较早的 LPI 考试目标的系统管理员认证准备。 能够帮助您回答有关配额的问题。 包含各种有用的文档,特别是它的 HOWTOs。 在
寻找为 Linux 开发人员(包括 )准备的更多参考资料,查阅我们 。 在 developerWorks 上查阅所有
和 。 ,获取最新的 IBM 产品,工具以及 IT 行业趋势的资讯。随时关注 developerWorks 和。 观看 ,包括面向初学者的产品安装和设置演示,以及为经验丰富的开发人员提供的高级功能。:下载产品试用版,在线试用产品,在云环境下试用产品,或者在
中花费几个小时来学习如何高效实现面向服务架构。。欢迎加入 。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=LinuxArticleID=605022ArticleTitle=学习 Linux,101: 管理磁盘配额publish-date=

我要回帖

更多关于 aquota 默认访问权限 的文章

 

随机推荐