Установка дисковых квот для пользователей FreeBSD

Дисковая квота – возможность операционной системы ограничивать используемое дисковое простанство для пользователей и групп. По умолчанию поддержки квот нет в ядре, поэтому ее нужно включить в ядро:

options QUOTA

Откомпилируем и установим новое ядро, об этом написано выше. Далее необходимо добавить в /etc/rc.conf следующую строчку:

enable_quotas=”YES”

При загрузке системы целостность квот проверяется программой quotacheck(8). Она проверяет “точное соответствие данным в базе данных квот данным в файловой системе”, это может замедлять загрузку. Проверку эту можно отключить – в /etc/rc.conf прописать:

check_quotas=”NO”

Для включения пользовательских и групповых квот на уровне файловой системы редактируем /etc/fstab. В нем выбираем раздел для подключения квот и добавляем к четвертому полю через запятую userquota и groupquota для квотирования пользователей и групп соответственно.

/dev/da0s1f /usr ufs rw,userquota,groupquota 1 2

Здесь пятое поле означает “частоту” создания файла дампа, шестое – указывает порядок проверки файловых систем программой fsk. После перезагрузки в разделе, на которые были установлены квоты автоматически создаются файлы quota.user и quota.group (в данном случае в /usr). Проверяем работают ли квоты:

#quota -v
 Disk quotas for user root (uid 0):
 Filesystem usage quota limit grace files quota limit grace
 /usr 4648274 0 0 544215 0 0

Отсюда видно, что квоты включены. Теперь используем программу edquota(8). Можно ограничивать размещение ресурсов по объему дискового пространства (квотирование блоков), по количеству файлов (квотирование inode) и их комбинации. Ограничения бывают жесткие и мягкие. Жесткое ограничение не может быть превышено, в отличии от мягкого. Мягкие ограничения могут быть превышены в течении определенного периода времени, который по умолчанию равен неделе. Если мягкое ограничение превышено в течении этого периода, то мягкое ограничение становится жестким. Если пользователь вернется обратно к меньшей отметке, чем мягкое ограничение, то период отсрочки будет сброшен.

Далее устанавлием квоты с помощью edquota(8):

# edquota -u ftp
 Quotas for user ftp:
 /usr: kbytes in use: 0, limits (soft = 0, hard = 0)
 inodes in use: 0, limits (soft = 0, hard = 0)

В первой строке – ограничение по блокам, значения в килобайтах: soft – мягкое, hard – жесткое ограниение. Вторая строка – ограничение inode (количество фалов). Ставим, что нам надо, выходим из редактора и смотрим свои квоты:

# quota -v
 Disk quotas for user ftp (uid 1071):
 Filesystem usage quota limit grace files quota limit grace
 /usr 9984 0 10000 1 0 0

Filesysstem – раздел, на котором установлена квота;
usage – размер, занятый данными пользователя;
quota – мягкое ограгичение (в данном случае 0);
limit – жесткое ограничение (в данном случае 10000 кб);
grase – при превышении мягкого лимита – количество дней, оставшихся до возвращения к отметке мягкого лимита;
files – количество файлов пользователя;
следующие поля quota, limit и grase относятся к ограничению на количество файлов.

Источник информации:
1. http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/quotas.html

© mick, 2007.