Дисковые квоты

Дисковые квоты позволяют ограничить дисковое пространство или количество файлов использкемых пользователем ( или членом группы ). Квоты распределяются на уровне файловой системы и поддерживаются ядром.

Дисковые квоты в Linux

Пакет quota tools, как правило нуждается в установке, он содержит утилиты командной строки.
Сначала нужно активировать дисковые квоты в файле fstab и перемонтировать раздел. Если раздел заблокирован открытыми файлами, нужно перезагрузить систему и добавить опцию монтирования usrquota в файл fstab.

/dev/sda2     /home    reiserfs     rw,acl,user_xattr,usrquota 1 1
# mount -o remount /home
# mount                              # Проверьте, активна-ли usrquota, иначе перезагрузитесь.

Инициализация файла quota.user с помощью quotacheck.

# quotacheck -vum /home
# chmod 644 /home/aquota.user        # Позволить пользователю просматривать свои квоты.

Активировать квоты с помощью скрипта (например: /etc/init.d/quotad в SuSE) или quotaon:

quotaon -vu /home

Проверить активацию:

quota -v

Дисковые квоты FreeBSD

Инстркменты дисковых квот в операционной системе FreeBSD являются частью базовой системы, однако в ядро должно быть включено option quota. Если это не так, добавте необходимую опцию и перекомпилируйте ядро.

options QUOTA

Как и в Linux, нужно добавить в fstab соответствующую опцию userquota:

/dev/ad0s1d    /home    ufs     rw,noatime,userquota    2  2
# mount /home                        # Перемонтировать раздел

Включение квот в файле в /etc/rc.conf.

# grep quotas /etc/rc.conf
enable_quotas="YES"                  # Активировать дисковые квоты при запуске системы (или NO).
check_quotas="YES"                   # Проверять квоты при старте (или NO).
# /etc/rc.d/quota start

Ограничения квот

По-умолчанию, дисковые квоты не накладывают никаких ограничений (установлены в 0). Установить необходимые лимиты для пользовательских квот можно с помощью программы edquota. Так-же лимиты можно дублировать на других пользователей. Размер блока по-умочанию, 1 kб. Время действия можно установить с помощью edquota -t. Например:

# edquota -u colin
Linux
Disk quotas for user colin (uid 1007):
  Filesystem         blocks       soft       hard     inodes     soft     hard
  /dev/sda8            108       1000       2000          1        0        0
FreeBSD
Quotas for user colin:
/home: kbytes in use: 504184, limits (soft = 700000, hard = 800000)
   inodes in use: 1792, limits (soft = 0, hard = 0)
Изменение дисковых квот для нескольких пользователей

Команда edquota -p используется для дублирования квот на других пользователей. Например:

# edquota -p refuser `awk -F: '$3 > 499 {print $1}' /etc/passwd`
# edquota -p refuser user1 user2     # Дублируем на 2 пользователей
Проверка квот

Пользователи могут проверить свои квоты командой quota (файл quota.user должен быть доступен для чтения). Пользователь root может проверять любые квоты.

# quota -u colin                     # Проверить квоты пользователя.
# repquota /home                     # Полный отчет по разделу для всех пользователей.