加载中...

磁盘限额


磁盘限额用来限制磁盘空间大小和/或用户(或用户组)可用的文件数。The quotas are allocated on a per-file system basis and are enforced by the kernel.

Linux 设置

Quota 工具包通常已安装,其包含一些命令行工具。
在 fstab 中激活用户配额并重新挂载分区。如果分区正在使用,关闭所有使用的文件,或者重启系统。添加 usrquota 到 fstab 的挂载类型中,举个例子:

  1. /dev/sda2     /home    reiserfs     rw,acl,user_xattr,usrquota 1 1
  2. # mount -o remount /home
  3. # mount                              # 检查 usrquota 已经激活,否则重启

用 quotacheck 初始化 quota.user 文件。

  1. # quotacheck -vum /home
  2. # chmod 644 /home/aquota.user        # 让用户检查自己的配额

用脚本(e.g. SuSE 的 /etc/init.d/quotad)或 quotaon 来启用限额:

  1. quotaon -vu /home

检查配额启用情况:

  1. quota -v

FreeBSD 设置

Quota 工具是 FreeBSD 基本系统的一部分,然而内核需要 quota 选项。如果不存在,新增它并重新编译内核。

  1. options QUOTA

与 Linux 一样,添加限额到 fstab 选项(是 userquota,而不是 usrquota)中:

  1. /dev/ad0s1d    /home    ufs     rw,noatime,userquota    2  2
  2. # mount /home                        # 重新挂载分区

在 /etc/rc.conf 中启用磁盘限额并开启 quota 服务。

  1. # grep quotas /etc/rc.conf
  2. enable_quotas="YES"                  # 在启动时打开限额(或者 "NO")
  3. check_quotas="YES"                   # 在启动时检查限额(或者 "NO")
  4. # /etc/rc.d/quota start

分配限额

磁盘限额默认并不限制(设置为0)。用 edquota 来对单用户进行限制。一个 quota 也可给许多用户复用。虽然 quota 实现之间的文件结构不同,但其原理是相同的:限制节点(inodes)数量以及使用者可以取用的磁盘区块数量。Only change the values of soft and hard. 如果未指定,默认区块大小为 1k。使用 edquota -t 设置 grace 时间。举个例子:

  1. # edquota -u colin

Linux

  1. Disk quotas for user colin (uid 1007):
  2.   Filesystem         blocks       soft       hard     inodes     soft     hard
  3.   /dev/sda8            108       1000       2000          1        0        0

FreeBSD

  1. Quotas for user colin:
  2. /home: kbytes in use: 504184, limits (soft = 700000, hard = 800000)
  3.    inodes in use: 1792, limits (soft = 0, hard = 0)

给许多用户分配限额

命令 edquota -p 用来复用一个 quota 给其他用户。举个例子,复用所指用户的限额给所有用户:

  1. # edquota -p refuser `awk -F: $3 > 499 {print $1}' /etc/passwd`
  2. # edquota -p refuser user1 user2     # 复用给 2 个用户

检查

用户只需输入 quota (文件 quota.user 必须可读) 来可以检查他们的限额。Root 可以查看所有用户的限额。

  1. # quota -u colin                     # 查看用户的限额
  2. # repquota /home                     # 所有用户在这个分区上的限额情况

还没有评论.