读书+实践笔记
磁盘配额
作用是限制普通用户使用的磁盘空间和创建文件的个数,不至于因为个别人的浪费空间而影响所有人的使用。
需要内核的支持
注意: 只有ext2/ext3文件系统目前被支持
需要安装一个quota的软件包。
1.查看quota系统是否已经安装
[root@localhost home]# rpm -qa|grep quota //rpm -qa 表示查找所有的软件包。|grep quota只浏览quota这个软件的安装情况。
quota-3.13-1.2.3.2.el5 //说明系统已经安装了quota。
mount -o usrquota grpquota /dev/hda1 /mnt/one
使用usrquota,grpquota选项挂载一个分区,激活内核的支持。这样就可以限制某一个挂载点的用户使做配额只能正对一个分区来做,而不能针对一个目录来做。
[root@localhost ~]# mount -o usrquota,grpquota /dev/hda1 /mnt/one
[root@localhost ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/dev/hda1 on /mnt/one type ext3 (rw,usrquota,grpquota) //看到了刚才的配额信息。
[root@localhost ~]#
其实,可以用这样的方法对/home 分区进行配额分配,使得每个用户合理的使用家目录。只需要对/home重新卸载后,再重新挂载上,也是可以的。
当然,也可以对/根目录进行配额,但是这样的话,就要 重新卸载根目录,那么系统就会损坏,不能运行,可以 用如下方法:
mount -o remount userquota,grepquota / //这样对根目录进行重新挂载
2 .下面就要进入单用户模式了,因为你在为用户配额磁盘,如果用用户在线,就比较麻烦了。所以可以用单用户。
init 1 //切换到单用户去操作,就可以避免了。但是我们现在在实验环节,没有其他的用户,就不用进入单用户模式了。
3.quotacheck命令 //检查并且创建磁盘配额的数据库文件,因为我们要用这个数据库文件来限制某个用户的使用
quotacheck -cvug //-c 是创建这个数据库文件 -v 看一下这个创建过程 -u 为用户创建配额 -g 为组创建配额
quotacheck -cvug /dev/hda1 //为/dev/hda1 分配配额
quotacheck -cvuga //-cvuga 只要挂载的分区有userquota,grepquota两个选项的门就 全部分配配额,就不需要一个一个的配了。
4.
[root@localhost ~]# quotacheck -cvuga //因为只有/dev/hda1分配了,所以只会对它了。回车
quotacheck: Scanning /dev/hda1 [/mnt/one] 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
done //配额成功
quotacheck: Checked 3 directories and 2 files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@localhost ~]# cd /mnt/one //然后进入这个挂载点
[root@localhost one]# ll //发现多了两个文件,这两个就是配额的数据库文件
total 26
-rw------- 1 root root 6144 Oct 29 22:50 aquota.group
-rw------- 1 root root 6144 Oct 29 22:50 aquota.user
drwx------ 2 root root 12288 Oct 27 16:21 lost+found
5.quotaon -a //激活所有的quota,分配后必须激活才能用。
quotaon /dev/hda1 就只激活/dev/hda1的配额。
6.激活quota后进行编辑用户的quota文件
edquota -u yangyi //为“杨义”这个用户分配配额。回车后。
1 Disk quotas for user yangyi (uid 501):
2 Filesystem blocks soft hard inodes soft hard
3 /dev/hda1 0 0 0 0 0 0
回车后出现上面编辑界面。 块大小[字节] 软限制 硬限制 文件个数 软限制 硬限制
软限制:是系统可以操作的个数并提示在7天之内必须删到软限制之内。
硬限制:是几个就是几个,不能超过。
那么我就按下面的做:
1 Disk quotas for user yangyi (uid 501):
2 Filesystem blocks soft hard inodes soft hard
3 /dev/hda1 0 3000 4000 0 5 7
表示文件大小不能3000k,硬大小不能超过4000k,文件大小为5个,不能超过7个。
保存退出。
注意:那么现在yangyi用户就对/dev/hda1/挂载的目录/mnt/one下的文件就有了配额功能,但是由于这个文件[相当于这块分区]是公用的,所以必须要在此分区[目录]下新建一个专属于yangyi的文件夹,然后把这个文件夹的用户和组权全部给予给yangyi用户:
[root@localhost one]# cd /mnt/one //先进入已经配额的分区
[root@localhost one]# mkdir yangyi //新建一个专属于yangyi用户的文件夹
[root@localhost one]# chown yangyi.yangyi yangyi //由于系统新建文件夹的话 默认都是root的,计时限 制了配额,由于其他的普通的用户根本就没权限去写文件,也就无从限制起。所以就要授权给yangyi用户了,是将yangyi这个文件夹的权利,献给yangyi主的yangyi用户。【可以看11.文件权限管理】
[root@localhost one]# ll
total 30
-rw------- 1 root root 7168 Oct 29 23:24 aquota.group
-rw------- 1 root root 7168 Oct 29 23:20 aquota.user
drwx------ 2 root root 12288 Oct 27 16:21 lost+found
drwxr-xr-x 2 yangyi yangyi 1024 Oct 29 23:21 yangyi //可以看到权限已经给yangyi用户了。
[root@localhost one]# //那么yangyi用户在/mnt/one/yangyi 目录下就可以写操作了。而且写的文件大小就受限制了。
[root@localhost one]# su - yangyi //切换到yangyi用户
[root@localhost one]# quota //当前用户就可以查看自己的配额限制情况。
Disk quotas for user yangyi (uid 501):
Filesystem blocks quota limit grace files quota limit grace //刚才限定的
/dev/hda1 2 3000 4000 1 5 7
7. root用户想要查看所有的quota配额情况
[root@localhost one]# repquota -a //查看所有配额情况
*** Report for user quotas on device /dev/hda1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 4912 0 0 4 0 0
yangyi -- 2 3000 4000 1 5 7
edquota -t 修改过期的时间,但是只影响以后的用户,对当前的用户无效。
quotaoff /mnt/one 。就会取消这个目录下的所有配额情况、
因为机子一重启,那么所有的挂载信息就没有了,所以想要系统保存quota ,则要
[root@localhost ~]# vi /etc/fstab //系统设置挂载
1 /dev/VolGroup00/LogVol00 / ext3 defaults 1 1
2 LABEL=/boot /boot ext3 defaults 1 2
3 tmpfs /dev/shm tmpfs defaults 0 0
4 devpts /dev/pts devpts gid=5,mode=620 0 0
5 sysfs /sys sysfs defaults 0 0
6 proc /proc proc defaults 0 0
7 /dev/VolGroup00/LogVol01 swap swap defaults 0 0
8 # Beginning of the block added by the VMware software
9 .host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
10 # End of the block added by the VMware software
只要在下面新加上一行就可以了
挂载的设备 挂载点 文件类型 保存quota信息 是否自检 自检顺序
11 /dev/hda1 /mnt/one ext3 rw,usrquota,grpquota 0 0
加上这一条保存。那么下次开机就会自动挂载了。