磁盘配额

一、前言

   磁盘配额就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。设置磁盘配额后,可以对每一个用户的磁盘使用情况进行跟踪和控制,通过监测可以标识出超过配额报警阈值和配额限制的用户,从而采取相应的措施。磁盘配额管理功能的提供,使得管理员可以方便合理地为用户分配存储资源,可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行避免由于磁盘空间使用的失控可能造成的系统崩溃,提高了系统的安全性。

二、环境

系统 CentOS6.4 32位

简单案例:

两个普通用户user1和user2

限制空间最大容量20M,当超出10M时发出警告,当超出20M时,拒绝写入。

限制文件个数最大5个,当超出3个时发出警告,当超出5个时,拒绝创建。

三、配置

1.分区,格式化,挂载(用户配额)

# fdisk -l              //分区
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# fdisk /dev/sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +1G
Command (m for help): p
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  83  Linux
Command (m for help): w
# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  83  Linux
# mkfs -t ext4 /dev/sdb1       //格式化
# mkdir /mnt/sdb1
# vim /etc/fstab               //挂载
/dev/sdb1    /mnt/sdb1     ext4    defaults,usrquota   0 0
# mount -a
# mount
/dev/sdb1 on /mnt/sdb1 type ext4 (rw,usrquota)


2.添加用户

# useradd user1
# useradd user2
# ll -d /mnt/sdb1
drwxr-xr-x. 3 root root 4096 Mar 17 23:08 /mnt/sdb1
# chmod o+wt /mnt/sdb1        //t:sticky权限
# su - user1
$ cd /mnt/sdb1/
$ ll
drwx------. 2 root root 16384 Mar 17 23:08 lost+found
$ dd if=/dev/zero of=f1.user1 bs=1M count=1   //创建数据文件
$ ll -h
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ exit
# su - user2
$ cd /mnt/sdb1/
$ dd if=/dev/zero of=f1.user2 bs=1M count=1
$ ll -h
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ rm f1.user1                 //只能修改自己的文件
rm: remove write-protected regular file `f1.user1'? y
rm: cannot remove `f1.user1': Operation not permitted
$ exit


3.配置用户限额文件

# setenforce 0        //关闭SELinux及防火墙
# quotacheck -augvc   //参数解释在后面
quotacheck: Your kernel probably supports journaled quota but you are not using it.
quotacheck: Scanning /dev/sdb1 [/mnt/sdb1] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Old group file not found. Usage will not be substracted.
quotacheck: Checked 2 directories and 2 files
quotacheck: Old file not found.
# ll /mnt/sdb1/
-rw-------. 1 root  root     7168 Mar 17 23:25 aquota.user
-rw-rw-r--. 1 user1 user1 1048576 Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1048576 Mar 17 23:21 f1.user2
drwx------. 2 root  root    16384 Mar 17 23:08 lost+found
# edquota -u user1     //编辑user1的配置文件

wKiom1Mn852hvuCAAADVcjQydG8617.jpg

# edquota -p user1 user2     //将user1的配置文件拷贝给user2
# edquota -u user2


四.测试

# su - user1
$ cd /mnt/sdb1/
$ ll -h
total 2.1M
-rw-------. 1 root  root  7.0K Mar 17 23:31 aquota.user
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ dd if=/dev/zero of=f2.user1 bs=1M count=12
sdb1: warning, user block quota exceeded.
$ ll -h
-rw-------. 1 root  root  7.0K Mar 17 23:31 aquota.user
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
-rw-rw-r--. 1 user1 user1  12M Mar 17 23:35 f2.user1
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ dd if=/dev/zero of=f3.user1 bs=1M count=10
sdb1: write failed, user block limit reached.
dd: writing `f3.user1': Disk quota exceeded
$ ll -h
-rw-------. 1 root  root  7.0K Mar 17 23:31 aquota.user
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
-rw-rw-r--. 1 user1 user1  12M Mar 17 23:36 f2.user1
-rw-rw-r--. 1 user1 user1 6.6M Mar 17 23:36 f3.user1
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ dd if=/dev/zero of=f4.user1 bs=1M count=10
sdb1: warning, user file quota exceeded.
dd: writing `f4.user1': Disk quota exceeded
$ ll -h
-rw-------. 1 root  root  7.0K Mar 17 23:31 aquota.user
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
-rw-rw-r--. 1 user1 user1  12M Mar 17 23:36 f2.user1
-rw-rw-r--. 1 user1 user1 6.6M Mar 17 23:36 f3.user1
-rw-rw-r--. 1 user1 user1    0 Mar 17 23:37 f4.user1
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ dd if=/dev/zero of=f5.user1 bs=1M count=10
dd: writing `f5.user1': Disk quota exceeded
$ dd if=/dev/zero of=f6.user1 bs=1M count=10
sdb1: write failed, user file limit reached.
dd: opening `f6.user1': Disk quota exceeded
$ ll -h
-rw-------. 1 root  root  7.0K Mar 17 23:31 aquota.user
-rw-rw-r--. 1 user1 user1 1.0M Mar 17 23:19 f1.user1
-rw-rw-r--. 1 user2 user2 1.0M Mar 17 23:21 f1.user2
-rw-rw-r--. 1 user1 user1  12M Mar 17 23:36 f2.user1
-rw-rw-r--. 1 user1 user1 6.6M Mar 17 23:36 f3.user1
-rw-rw-r--. 1 user1 user1    0 Mar 17 23:37 f4.user1
-rw-rw-r--. 1 user1 user1    0 Mar 17 23:38 f5.user1
drwx------. 2 root  root   16K Mar 17 23:08 lost+found
$ quota
Disk quotas for user user1 (uid 500):
Filesystem  blocks  quota   limit   grace   files   quota  limit  grace
/dev/sdb1   20000*  10000   20000   6days     5*      3      5    6days
$ exit
# quota user1
Disk quotas for user user1 (uid 500):
Filesystem  blocks   quota   limit  grace  files  quota  limit grace
/dev/sdb1   20000*  10000   20000   6days    5*     3      5   6days
# repquota -augv
*** Report for user quotas on device /dev/sdb1
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   
user1     ++   20000   10000   20000  6days       5     3     5  6days
user2     --    1024   10000   20000              1     3     5   
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000

五.常用参数

-c:创建磁盘配额数据库文件

-v:查看创建的过程

-u:创建用户的磁盘配额数据库文件

-g:创建用户组的磁盘配额数据库文件

-a:创建所有磁盘的配额数据库文件,使用此参数的时候,后面就不用接设备了

-m:把以前的磁盘配额信息清除,在对/分区创建的时候,必需用此参数


你可能感兴趣的:(primary,number,action,Minimum,Physical)