Для поддержки ограничений, прежде всего, нужно настроить ядро. Для этого необходимо включить quota support в меню Filesystem при конфигурировании ядра, а потом перекомпилировать ядро. С этой целью нужно перейти в каталог /usr/src/linux и выполнить команду make menuconfig, a затем ввести следующую последовательность команд:
make dep; make bzImage; make modules; make modules_install
Последние две нужно вводить в случае, если вы хотите перекомпилировать модули. Не забудьте ввести команду lilo (см. рис. 3.4) (перед этим нужно немного подправить файл /etc/lilo.conf, если вы этого не сделали раньше — см. гл. 18). Более подробно о конфигурировании ядра вы можете прочитать в гл. 18.
Звездочкой на рис. 3.4 отмечен раздел, загружаемый по умолчанию. Перед перекомпилированием ядра я настоятельно рекомендую прочитать п. 4.11 «Использование LILO» и гл. 18. Если при загрузке ядра на экране монитора вы увидите сообщение
Рис. З.4. Запись загрузчика LILO
Теперь нужно определить, использование какой файловой системы вы хотите ограничить. Обычно это /home (домашние каталоги пользователей), /usr (пользователи имеют право записывать информацию в этот каталог) и, возможно, /var.
Для этого отредактируйте файл /etc/fstab следующим образом:
/dev/hda1 / ext2 defaults
/dev/hda4 /home ext2 defaults,usrquota
/dev/hda5 /usr ext2 defaults,usrquota,grpquota
none /proc proc defaults
Параметр usrquota означает ограничение пространства для пользователей на данном устройстве, a grpquota — для групп. Если вы пишите usrquota (grpquota) без знака «=», то подразумевается, что файлы ограничений находятся в корневом каталоге каждой файловой системы, для которой используются ограничения на дисковое пространство. Обычно эти файлы называются quota.user и quota.group для квот пользователей и групп соответственно. Однако вы сами можете указать какие файлы следует использовать для определения квот, например, usrquota= /quotas/user.quota. Старайтесь не указывать слишком длинный путь.
Периодически необходимо проверять содержащиеся в файле ограничения на целостность действительного числа блоков и файлов, выделенных для пользователя. Для этого используется команда quotacheck. Ее можно выполнять даже на смонтированных файловых системах, а также на файловых системах, на которых не используются квоты. Для проверки файловой системы на число блоков, которые используются пользователем, выполните команду:
# quotacheck –avug
В основном данную проверку нужно выполнять при некорректной перезагрузке. При этом вы можете включить эту команду в один из rc-сценариев и выполнять ее так же, как и fsck.
Для того, чтобы включить систему ограничений при загрузке операционной системы, добавьте команду quotaon –avug в сценарии загрузки системы.
Рис. 3.5. Результат выполнения команды quotacheck –avug
Только root имеет право использовать команды, связанные с квотированием. Команда quota, как уже было выше отмечено, используется для проверки используемых ограничений любого пользователя, а команда repquota — для проверки используемого пространства и ограничений для всех пользователей на данной файловой системе. При выполнении команды quotacheck –avug будут автоматически изменены файлы квот, а также будет изменена таблица ядра. Файлы квот имеют размер 2 Мб, даже если ни один из пользователей не использует квот.
Для того, чтобы получить информацию об ограничениях, наложенных на пользователя (группу), используется команда repquota –ua (см.рис. 3.6).
Рис. З.6. Результат выполнения команды repquota –ua
3.6.1. Определение ограничений
Для определения (задания) ограничений используется команда edquota. Ограничение дискового пространства пользователя производится командой edquota с параметром –u (см. рис. 3.7), а определение квот для группы — с параметром –g. После выполнения этой команды будет запущен редактор, который указан в переменной окружения $EDITOR, для редактирования квот. Редактировать надо только число, которое следует за словом hard или soft.
Рис. З.7. Результат выполнения команды edquota –u den
#edquota -u den
Перед выполнением этой команды выполните две следующие команды:
quotacheck –u
Например:
quotacheck –u /mnt/ext2 quotaon –u /mnt/ext2