热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用quota对Vsftpd做磁盘配额

利用quota对Vsftpd做磁盘配额1增加一块2G的硬盘打开VMware点击VM---settings—add—HardDisk—---Createanewvirtualdisk

利用quota对Vsftpd做磁盘配额

1 增加一块2G的硬盘

打开VMware点击VM---settings—add—Hard Disk—---Create a new virtual disk—SCSI—disk size(GB)2.0----重启虚拟机系统

2 验证硬盘:

[root@viong ~]# fdisk -l       

#已增加了2G的/dev/sdb
Disk /dev/sdb: 2147 MB, 2147483648 bytes  -----------à说明已经生效了
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

3 先把/dev/sdb划分为一个扩展分区,再新建一个逻辑分区,格式化为ext3分区,然后设置为重启自动加载。 

[root@viong ~]# fdisk /dev/sdb
#对/dev/sdb进行分区
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won‘t be recoverable. 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n  #增加一个分区
Command action
e   extended
p   primary partition (1-4)
#e增加扩展分区
Partition number (1-4): 1
First cylinder (1-261, default 1): 回车
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-261, default 261): 回车
Using default value 261
Command (m for help): w   #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@viong ~]# fdisk /dev/sdb
Command (m for help): n
Command action
l   logical (5 or over)
p   primary partition (1-4)
#l增加逻辑分区
First cylinder (1-261, default 1): 回车
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-261, default 261): 回车
Using default value 261
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

4 验证/dev/sdb的分区情况

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         261     2096451    5  Extended
/dev/sdb5               1         261     2096419+  83  Linux

5 格式化 /dev/sdb5

[root@viong ~]# mkfs.ext3 /dev/sdb5  格式化sdb5
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
262144 inodes, 524104 blocks
26205 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6 创建一个目录来挂载sdb5 

[root@viong ~]# mkdir /mnt/ftp 
[root@viong ~]# mount /dev/sdb5 /mnt/ftp/
挂载sdb5到/mnt/ftp/
[root@viong ~]# vi /etc/fstab  
添加最后一条信息,来达到重启自动挂载上去
/dev/sdb5    /mnt/ftp         ext3 defaults          0 0

7 #mount -a  最后重启系统看有没有被自动挂载上

8 创建一个ftp用户做测试

[root@red-hat-5 ~]# useradd -d /mnt/ftp/hom -s /sbin/nologin hom
[root@red-hat-5 ~]# passwd hom
Changing password for user hom.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@red-hat-5 ~]# ll /mnt/ftp/
总计 20
drwx------ 2 hom  hom   4096 01-10 17:15 hom
drwx------ 2 root root 16384 01-10 16:53 lost+found
[root@red-hat-5 ~]# service vsftpd start
为 vsftpd 启动 vsftpd:[确定]

9 为ftp用户做磁盘配额

刚才创建的hom用户是在/dev/sdb5分区中,那么如果我们要对hom用户进行磁盘限额,那我们需要修改/etc/fstab中根分区的记录,将/dev/sdb5分区的第4个字段改成defaults,usrquota,如下:

/dev/sdb5    /mnt/ftp   ext3   defaults,usrquota          0 0

为了不然系统重启才生效,利用一下命令直接生效

# mount -o remount /dev/sdb5

10 对一个组进行磁配额,那我们需要增加参数grpquota,如下:

/dev/sdb5   /mnt/ftp    ext3    defaults,usrquota, grpquota      0  0


11 生成每个启动了配额的文件系统的当前磁盘用量表

root@viong /]# quotacheck -avug 
quotacheck: Scanning /dev/sdb5 [/mnt/ftp] quotacheck: Cannot stat old user quota file: 没有那个文件或目录
quotacheck: Old group file not found. Usage will not be substracted.
done
quotacheck: Checked 4 directories and 6 files
quotacheck: Old file not found.

注释:

-a   :扫瞄所有在 /etc/mtab 里头已经 mount 的具有 quota 支持的磁盘 

-u  :扫瞄使用者的档案与目录 

-v  :显示扫瞄过程 

-g  :扫瞄群组使用的档案与目录 

-m :强制进行 quotacheck 


12 设置限额容量

[root@viong /]# edquota -u hom   (设置限额容量)

为用户hom设置磁盘配额

系统会自动用

VI文本打开配额文件,如下:

Disk quotas for user hom (uid 501):
Filesystem   blocks    soft      hard     inodes     soft     hard
/dev/sdb5    16      0         1024      4       0        0


这里为了做测试,我把硬块限度为1024kb


注释:

Filesystem是启用了配额的文件系统的名称

blocks显示了用户当前使用的块数,单位为KB

soft用来设置用户在该文件系统上的软块限度.使用者在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下

hard用来设置用户在该文件系统上的硬块限度,绝对不能超过的容量

inodes显示了用户当前使用的i节点数量。

最后两列用来设置用户在该文件系统上的软硬i节点限度.不同的是软限可以在一段时期内被超过。 soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对使用者的警示作用!这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。

如果以上值中的任何一个被设置为 0,那个限度就不会被设置。

注释:

-u  :编辑 user 的 quota 

-g  :编辑 group 的 quota 

-t  :编辑宽限时间(就是超过 quota 值后,还能使用硬盘的宽限期限) 

-p  :copy 模板(以建立好的使用者或群组)到另一个使用者(或群组) 


13 打开磁盘配额监控进程

root@viong /]# quotaon  -avu

  u是用户g是组,这里我没设置g参数

/dev/sdb5 [/mnt/ftp]: user quotas turned on

注释:

-a  :全部的 quota 设定都启动(会自动去寻找 /etc/mtab 的设定) 

-u  :使用者的 quota 启动 

-g  :群组的 quota 设定启动 

-v  :显示讯息  


14 要校验用户的配额是否被设置

[root@viong /]# quota -uvs hom
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sdb5   16       0    1024               4       0       0

  

注释:

-g  :显示 group 群组 

-u  :显示 user 

-v  :显示 quota 的值 

-s  :选择 inod 或 硬盘空间来显示 


15 设置过渡期(grace period),只针对软限制而言

[root@viong /]# edquota –t 
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/sdb5                7days                  7days

16 查看用户配额

*** Report for user quotas on device /dev/sdb5
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    35880    0       0             5     0     0      
hom       --    16      0      1024            4     0     0

  


注释:

-a   列出在/etc/fstab文件里,有加入quota设置的分区的使用状况与用户和群组

-g   列出所有群组的磁盘空间限制

-u   列出所有用户的磁盘空间限制

-v   显示该用户或群组的所有空间限制



17 测试用户配额是否生效


下面利用FlashXP做测试,上传一首故乡原风景.mp3,传输到1M就失败了.说明生效了


[root@viong /]# quotaoff  -vug /dev/sdb5

关闭/mnt/ftp分区的磁盘限额

/dev/sdb5 [/mnt/ftp]: user quotas turned off


注释:

-a  :全部的 quota 设定都关闭(会自动去寻找 /etc/mtab 的设定)


最后并删除/etc/fstab中设置配额的部分



总结:在对用户进行磁盘限额时,需要掌握以下几点原则:

A.由于对用户进行文件数量的限制不是很实用,所以通常进行磁盘配额只限制用户占用的磁盘容量。

B.为用户设置的软限制和硬限制的数值都不应该小于用户已占用的磁盘容量或文件数量,否则可能造成用户无法正常登录和使用系统。 

C.设置的硬限制数量应该大于软限制数量,否则没有实际的意义

D././boot/./proc./mnt/cdrom 等不要使用配额

E.quota 实际在运作的时候,是针对整个分区进行限制的,例如:如果你的 /dev/sdb5 是挂载在/mnt/ftp底下,那么在 /mnt/ftp底下的所有目录都会受到限制!


本文出自 “天道酬勤” 博客,请务必保留此出处http://luzhi1024.blog.51cto.com/8845546/1651702

利用quota对Vsftpd做磁盘配额


推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
处女同乡会同乡情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有