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 ~]#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值