linux 针对目录空间配额,linux磁盘配额quota

Linux是一个多用户多任务的操作系统,在使用中可能会有几个人对服务器有操作,几个用户共同使用一个共享磁盘的情况,因为我们的硬盘是有限的,我们需要对用户的空间进行限制。这里使用磁盘配额,可以很方便的对用户的空间进行额度限制。

1:加入一块硬盘,分出一个主分区:

[root@localhost ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0xa03faa82.

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)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-2610, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):

Using default value 2610

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 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: 0xa03faa82

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        2610    20964793+  83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

2.格式化分区并挂载[root@localhost ~]# mkfs.ext4 /dev/sdb1[root@localhost ~]# mkdir /data   ##创建一个用户共享使用的目录

[root@localhost ~]# mount /dev/sdb1 /data/   ##将分区挂载到共享目录

[root@localhost ~]# mount    ##查看挂载情况

/dev/mapper/VolGroup-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /data type ext4 (rw)

写入到开机挂载里面[root@localhost ~]# vi /etc/fstab

[root@localhost ~]# tail -1 /etc/fstab

/dev/sdb1               /data                   ext4    defaults        0 0

3.重新挂载使文件目录支持磁盘配额:[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1[root@localhost ~]# mount

/dev/mapper/VolGroup-lv_root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)   ##再次查看分区挂载可以看到支持+磁盘配额

同样使它开机挂载支持磁盘配额:[root@localhost ~]# vi /etc/fstab

[root@localhost ~]# tail -1 /etc/fstab

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

3。下载磁盘配额软件:[root@localhost ~]# yum -y install quota

4.生成磁盘配额的数据库文件:[root@localhost ~]# quotacheck -ugvc /data/

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 shutdown.

quotacheck: Scanning /dev/sdb1 [/data] done

quotacheck: Cannot stat old user quota file /data/aquota.user: 没有那个文件或目录. Usage will not be substracted.

quotacheck: Cannot stat old group quota file /data/aquota.group: 没有那个文件或目录. Usage will not be substracted.

quotacheck: Cannot stat old user quota file /data/aquota.user: 没有那个文件或目录. Usage will not be substracted.

quotacheck: Cannot stat old group quota file /data/aquota.group: 没有那个文件或目录. Usage will not be substracted.

quotacheck: Checked 2 directories and 0 files

quotacheck: Old file not found.

quotacheck: Old file not found.

查看生成的磁盘配置数据库文件[root@localhost ~]# ls /data/

aquota.group  aquota.user  lost+found

5.新建需要限制的用户和组:[root@localhost ~]# useradd u01   ##新建用户

[root@localhost ~]# useradd u02

[root@localhost ~]# echo "123123" |passwd --stdin u01

更改用户 u01 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[root@localhost ~]# echo "123123" |passwd --stdin u02

更改用户 u02 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[root@localhost ~]# groupadd g01    ##新建组

[root@localhost ~]# usermod -g g01 u01   ##将用户加入组

[root@localhost ~]# usermod -g g01 u02

[root@localhost ~]# id u01   ##确认用户信息

uid=500(u01) gid=502(g01) 组=502(g01)

[root@localhost ~]# id u02

uid=501(u02) gid=502(g01) 组=502(g01)

6.对用户进行额度配置:

setauota   -u 用户 或(-g 组)  大小软限制 大小硬限制  数量软限制  数量硬限制  对哪个目录

##大小限制的单位是kb,软限制是当达到这个限制时,再创建文件或导入数据,会出现提示信息,不过还可以再往里面新建。当到达硬限制时,就真的无法创建了。[root@localhost ~]# setquota -u u01 10000 15000 10 15 /data/

7.开启磁盘配额:    重启系统也可以[root@localhost ~]# quotaon -a

给所有人可写入权限即可,要在其他用户新建文件测试[root@localhost ~]# chmod 777 /data/[root@localhost ~]# su - u01   ##切换到u01

[u01@localhost ~]$ touch /data/{1..20}.mp3     ##新建20个文件

sdb1: warning, user file quota exceeded.     ##这个到达软限制,有提醒

sdb1: write failed, user file limit reached.     ##这个到达硬限制,提示写入错误

touch: 无法创建"/data/16.mp3": 超出磁盘限额

touch: 无法创建"/data/17.mp3": 超出磁盘限额

touch: 无法创建"/data/18.mp3": 超出磁盘限额

touch: 无法创建"/data/19.mp3": 超出磁盘限额

touch: 无法创建"/data/20.mp3": 超出磁盘限额

最后查看目录,发现创建了15个文件,这个15是硬限制的设置[u01@localhost ~]$ ls /data/

10.mp3  12.mp3  14.mp3  1.mp3  3.mp3  5.mp3  7.mp3  9.mp3         aquota.user

11.mp3  13.mp3  15.mp3  2.mp3  4.mp3  6.mp3  8.mp3  aquota.group  lost+found

[u01@localhost ~]$ exit

logout

给组配置额度:[root@localhost ~]# setquota -g g01 15000 20000 15 20 /data/

切换到u02测试:[root@localhost ~]# su - u02

[u02@localhost ~]$ touch /data/{1..10}.txt

sdb1: write failed, group file limit reached.

touch: 无法创建"/data/6.txt": 超出磁盘限额

touch: 无法创建"/data/7.txt": 超出磁盘限额

touch: 无法创建"/data/8.txt": 超出磁盘限额

touch: 无法创建"/data/9.txt": 超出磁盘限额

touch: 无法创建"/data/10.txt": 超出磁盘限额

发现只创建了5个文件,就不能再创建了。因为刚才对组进行了限制20个数量的硬限制,而u01、u02都在g01组里面,u01的15个文件已经存在了,所以u02只能创建五个了。[u02@localhost ~]$ ls /data/

10.mp3  12.mp3  14.mp3  1.mp3  2.mp3  3.mp3  4.mp3  5.mp3  6.mp3  8.mp3  aquota.group  lost+found

11.mp3  13.mp3  15.mp3  1.txt  2.txt  3.txt  4.txt  5.txt  7.mp3  9.mp3  aquota.user

[u02@localhost ~]$ exit

logout

[root@localhost ~]#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

label居中_表格固定列宽时如何居中?

列宽固定居中的设置的时候,我们通常使用 p{宽度} 来指定固定的列宽,这时单元格会自动换行,换行之后是左对齐的,如何获得居中对齐呢?\begin{tabular}{|p{54pt}l|p{71pt}c|p{71pt}c|}\hline Method& Train set&T…

linux比较两个文件命令cmp,Linux系统中使用cmp和comm命令来比较两个文件

cmpcmp 命令:比较任意两个类型的文件,且吧结果输出到标准输出,默认文件相同不输出,不同的文件输出差异必要参数-c 显示不同的信息-l 列出所有的不同信息-s 错误信息不提示选择参数-i 指定字符数目-v 显示版本信息--help 显示帮助信…

truncate python是删除文件内容吗_Python 文件 truncate() 方法

概述Python 文件 truncate() 方法用于截断文件并返回截断的字节长度。指定长度的话,就从文件的开头开始截断指定长度,其余内容删除;不指定长度的话,就从文件开头开始截断到当前位置,其余内容删除。语法truncate() 方法…

python 内推_[宜配屋]听图阁

本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下[编程题] 洗牌时间限制:1秒空间限制:32768K洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌&#x…

linux根目录cat退出,Linux展示cat帮助信息并退出

Linux显示cat帮助信息并退出Linux显示cat帮助信息并退出youhaidongyouhaidong-ThinkPad-Edge-E545:~$ cat --help用法:cat [选项]... [文件]...将[文件]或标准输入组合输出到标准输出。-A, --show-all 等于-vET-b, --number-nonblank 对非空输出行编号-e 等于-vE-E,…

linux 编译字符设备驱动错误,linux字符设备驱动框架及编写流程

流程:init{}exit{}申请设备号 (动态注册/静态注册) 创建一个字符设备 cdev_alloc初始化字符设备 cdev_init设备号和字符设备关联 cdev_add销毁字符设备 cdev_del解注册设备号 unregister_chrdev_region1 设备号设备号分为主设备号和次设备号主设备号表示一类设备次设…

重新下载python以前下的包还用重新安装吗_强制“pip”在切换到其他Python二进制文件后重新编译以前安装的包(numpy)...

这个问题是关于我的特殊问题(我找到了一个解决方法,所以它不是一个紧迫的问题)的问题,也是关于我正在使用的一般过程的问题。设置(工作部分):我在我的Ubuntu 14.04上本地安装了Python 2.7.9,还有一个运行它的virtualenv。一切都与…

github新建仓库推送代码教学

之前一直用gitee,准备转到github。因为一步一步尝试。如果是新手或许文章会有帮助 点击 new 创建 拉代码 Idea 打开 复制一个 pom 文件作为 maven 管理 提交代码 不出意外的出意外,报错 点击authorize JetBrains 失败 分析问题 本质就是没有…

Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵

为更新而更新,为保持更新状态而更新。给学生讲解用gpiozero库控制八段管和8x8共阳极LED点阵。已经讲解了单个LED的控制,RGB彩色灯珠的控制,在讲解八段管就很容易理解,多个八段管的讲解稍微麻烦一点,然后LED点阵为了便于…

linux管理外部工具,linux – 除了iptables之外的数据包管理工具?

我正在寻找可以根据一组规则改变网络数据包的有效内容的linux实用程序.理想情况下,我会使用iptables和netfilter内核模块,但它们不支持通用的有效负载调整:iptables会改变各种头域(地址,端口,TOS等),并且可以匹配数据包中的任意字节,但是它显然无法改变数据包内的任…

一个公网ip多少钱_一个丛书书号多少钱

点击上方“蓝字”,发现更多精彩。联系我们,有惊喜!!本站点提供:学术出书、自费出书,出版指南攻略、编审润色书稿等服务。如需了解详情,请加责编微信:xueshuzhishi出版出书&#xff0…

嵌入式linux镜像,使用Openembedded定制嵌入式Linux镜像

关键词:ARM,Linux,Openembedded作者:ByToradex秦海摘要:嵌入式设备采用Embedded Linux操作系统进行开发已经越来越成为主流,但是如何将开发完成的Linux uboot/kernel配置,以及应用程序整合到Embedded Linux镜像中以便在…

pythonhtml生成word_python如何实现word批量转HTML

今天我们说一下使用python将word内容转换成html文件。下面一起来看一下。准备工作使用python类库PyDocX,安装方法(使用pip进行安装),命令如下:类库介绍python-docx是用于创建和更新Microsoft Word(.docx)文件的Python库。它可以针对word做很多…

linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...

不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,接下来是小编为大家收集的Linux安装GBK/GB2312程序显示乱码的五种解决方法,希望能帮到大家。Linux…

关于python序列类型的通用操作符_Python—语法基础(3) 序列类型及操作

序列类型:一维元素向量,元素类型可以不同,通过下标访问序列的特定元素,字符串类型、元组类型、列表类型属于序列类型序列类型通用操作符:x in s         如果x是序列s的元素,返回True,否…

linux 设备驱动总结,linux设备驱动归纳总结(三):3面向对象思想和lseek

linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现一、结构体structfile和struct inode在之前写的函数,全部是定义了一些零散的全局变量。有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便。接…

idea junit 测试看不到控制台报错信息_高手都这么给 Spring MVC 做单元测试!

本章节主要讲解以下两部分内容:1、Mock 测试简介2、测试用例演示一、Mock 测试简介1、什么是 mock 测试在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个「虚拟的对象」来创建以便测试的测试方法,就是 「mock 测试」在…

windows查询每个线程占用的内存_C#多线程

一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所…

linux 录屏软件 按键,linux下常用的截图、录屏工具

linux下常用的截图、录屏工具(2010-01-05 10:47:21)由于和老公一起做一个百度俱乐部的小项目,在编写测试文档时要使用截图、录屏的小工具,于是展开搜索什么工具比较好使。录屏:在linux下常用的录屏工具有5种,可以baidu或者google下…

python x_PythonX

而且你的onTouch里面逻辑也有问题,正确写法:public FloatingView (Context context){super(context);mContext context.getApplicationContext();LayoutInflater mLayoutInflater LayoutInflater.from(context);mView mLayoutInflater.inflate(R.layo…