Назад | Оглавление | Вперед |
Глава 13 Программы обеспечения безопасности (Управление и ограничения) - КвотыВ этой главеLinux GnuPG Команды Установка поддержки квот на вашей Linux системе. Создание ядра с поддержкой квот Модификация файла "/etc/fstab" Создание файлов "quota.user" и "quota.group" Назначение квот для Пользователей и групп Команды |
Квота - это административная утилита для мониторинга и ограничения использования дискового пространства пользователями и группами на каждой файловой системе. Существует две возможных способа ограничений использования дисков. Первый, это число inode-ов (число файлов), которым может владеть пользователь или группа. Второй, число дисковых блоков (суммарное пространство в килобайтах), которое может выделяться в использование пользователю или группе. При помощи квот, системный администратор принуждает пользователя не расходовать неограниченный объем дискового пространства. Эта программа оперирует отдельно каждым пользователем и каждой файловой системой, поэтому для каждой файловой системы нужно определять квоты отдельно.
Первое, что вам необходимо сделать, это создать ядро с поддержкой квот. В ядре 2.2.14 надо удостовериться, что вы ответили "Y" на вопрос:
FilesystemsЗАМЕЧАНИЕ. Если при компиляции ядра вы руководствовались соответствующей главой из этой книги, то поддержка квот у вас включена.
Файл "/etc/fstab" содержит информацию обо всех файловых системах, инсталлированных на вашем Linux сервере. Квоты должны быть включены в нем, чтобы их можно было использовать. Так как квоты должны быть определены для каждой файловой системы независимо и каждая файловая система описывается в файле "/etc/fstab" в отдельной строке, то квота должна быть установлена для каждой строки, где вы хотите включить их поддержку. Используя прорамму квота, в зависимости от ваших нужд, вы можете включить квоты только для групп, пользователей или и тех и других одновременно. Для всех нижеприведенных примеров, мы используем каталог "/home", размещенный на разделе "/dev/sda6".
Возможность 1.Для включения квот для пользователей на определенной файловой системы, отредактируйте ваш "/etc/fstab" файл (vi /etc/fstab) и добавьте опцию "usrquota" в четвертое поле после слова "defaults" или любой другой опции.
Например:
/dev/sda6 /home ext2 defaults 1 2 (как пример: слово "defaults")Должен читаться:
/dev/sda6 /home ext2 defaults,usrquota 1 2Возможность 2.
Для включения квот для групп на определенной файловой системы, отредактируйте ваш "/etc/fstab" файл (vi /etc/fstab) и добавьте опцию "grpquota" в четвертое поле после слова "defaults" или любой другой опции.
Например:
/dev/sda6 /home ext2 defaults 1 2 (как пример: слово "defaults")Должен читаться:
/dev/sda6 /home ext2 defaults,grpquota 1 2Для включения квот для пользователей и групп на определенной файловой системы, отредактируйте ваш "/etc/fstab" файл (vi /etc/fstab) и добавьте опции "usrquota, grpquota" в четвертое поле после слова "defaults" или любой другой опции.
Например:
/dev/sda6 /home ext2 defaults 1 2 (как пример: слово "defaults")Должен читаться:
/dev/sda6 /home ext2 defaults,usrquota,grpquota 1 2После модификации файла "/tc/fstab", чтобы квоты начали действовать, в корневой каталог файловой системы (например, "/home") помещается файл "quota.user", если вы хотите использовать пользовательские квоты, или "quota.group", для групповых квот, или и тот и другой для комбинированных квот. Владельцем обоих файлов является "root".
Шаг 1.
Для создания файлов "quota.user" и/или "quota.group", как "root" перейдите в корневой каталог раздела, где вы хотите активизировать квоты (например, /home), создайте "quota.user" и/или "quota.group", для этого выполните следующие команды:
[root@deep /]# touch /home/quota.userКоманда "touch" будет создавать новые пустые файлы в каталоге "home" с именами "quota.user" и "quota.group". Команда "chmod" будет устанавливать права доступа к этим файлам в чтение-запись только для root.
ЗАМЕЧАНИЕ. Оба файла "quota.user" и "quota.group", должны принадлежать root, с правами чтение-запись только для владельца.
Шаг 2Сейчас мы должны инициализировать файлы "quota.user" и "quota.group" в корневом каталоге файловой системы, чтобы не получать сообщений об ошибках о квотах во время перезагрузки сервера.
Для инициализации файлов "quota.user" и/или "quota.group", используйте следующие команды:
[root@deep /]# edquota -u wahibВышеприведенные команды необходимы только для инициализации файлов "quota.user" и/или "quota.group"; команда edquota (-u) будет редактировать квоты для пользователя "wahib" и (-g) будет редактировать квоты для группы. Заметим, что вы должны редактировать существующие в вашей системе UID/GID, чтобы инициализация файлов прошла успешно.
Шаг 3После того как вы закончили устанавливать необходимые опции в файле "/etc/fstab", создали и инициализировали файлы "quota.users" и/или "quota.group", вы должны перезагрузить систему, чтобы внесенные изменения в файлы "/etc/fstab", "quota.user" и/или "quota.group" вступили в силу. Для перезагрузки системы используйте следующую команду:
[root@deep /]# rebootПосле того, как система перезагрузилась, вы можете назначить квоты пользователям и группам пользователей. Это операция осуществляется при помощи команды "edquota". edquota (8).
Программа edquota.Edquota - это редактор квот, который создает временный файл с текущими дисковыми квотами, используемый пользователем "root" для их установки для пользователей и групп пользователей. Нижеприведенный пример покажет как установить квоты для пользователя и группы пользователей.
Установка квоты для пользователя.Предположим, для примера, что у вас есть пользователь с именем "wahib". Следующая команда вызывает редактор (vi), чтобы изменить и установить квоты для пользователя "wahib" на каждый раздел, где включены квоты:
Шаг 1Для редактирования и можификации квот для пользователя "wahib" используйте следующую команду:
[root@deep /]# edquota -u wahibПосле выполнения этой команды, вы увидите на экране строки связанные с пользователем "wahib". "blocks in use:" отображает общее число блоков (в килобайтах) расходуемых пользователем на разделе. "inodes in use:" отображает общее число файлов, которое имеет пользователь на разделе. Эти параметры ("blocks in use, and inodes in use") контролируются и устанавливаются автоматически системой и вы не можете установить или изменить их.
Шаг 2Назначим 5MB квоту для пользователя "wahib", изменив следующие параметры в редакторе vi:
Quotas for user wahib:Должна читаться:
Quotas for user wahib:"soft limit" (soft =) определяет максимальное количество дискового
пространства, которое пользователь может иметь.
"hard limit" (hard =) определяет абсолютное ограничение использования
пользоватлем дискового пространства. Пользователь не может превзойти его.
Следует заметить, что "hard limit" работает только когда установлен параметр
"grace period".
Параметр "grace period" позволяет вам установить время, прежде чем значение soft limit будет приведено в жизнь на файловой системе с включенными квотами. Например этот параметр может быть использован для предупреждения ваших пользователей о новой политике, которая установит дисковую квоту в 5MB на их домашний каталог через 7 дней. Вы можете установить это значение в 0 дней (по умолчанию) для любого отрезка времени. Чтобы изменить это требуется два следующих шага (в моем примере я принимаю 7 дней).
Шаг 1Редактируем значение по умолчанию параметра период любезности (grace period), используя следующую команду:
[root@deep /]# edquota -tМодифицируем период любезности (grace period) до 7 дней. Измените или установите следующие параметры в редакторе vi:
Time units may be: days, hours, minutes, or secondsДолжно читаться:
Time units may be: days, hours, minutes, or secondsЗамечание. Команда "edquota -t" редактирует параметр soft time limits для каждой файловой системы с включенными квотами.
Назначение квот для отдельных группПредположим, например, что у вас есть группа с именем "webusers". Следующая команда вызовет редактор vi для редактирования квот для группы "webusers" на каждой файловой системе, где квоты разрешены.:
[root@deep /]# edquota -g webusersПроцедура такая же как и при назначении квот для пользователей; как описано выше, вы должны модифицировать параметр "soft =" и записать изменения.
Назначение квот для групп пользователей с теми же значениямиПрограмма edquota имеет специальную опцию (-p), которая назначает квоты для групп пользователей с некоторым значением назначенным при инициализации пользователя. Допустим, вы хотите назначить пользователям UID-ы которых начинаются с 500 то же значение, что и для пользователя "wahib". Сперва, мы редактируем квоты для пользователя "wahib", а затем выполняем следующую команду:
[root@deep /]# edquota -p wahib `awk -F: '$3 > 499 {print $1}' /etc/passwd`Программа edquota будет дуплицировать квоты, которые установлены для пользователя "wahib", на всех пользователей с UID больше 499 из файла "/etc/passwd"
Чтобы получить больше информации, читайте следующие страницы руководства:
$ man edquota (8) - редактирование пользовательских квот
$ man quota (1) - вывод информации об использовании диска и ограничениях
$ man quotacheck (8) - сканирование файловой системы о использовании диска
$ man quotactl (2) - манипулирование дисковыми квотами
$ man quotaon, quotaoff (8) - включение или выключение квот на файловой системе
$ man repquota (8) - суммирование квот на файловой системе
$ man rquota (3) - осуществление квот на удаленной машине
Ниже приведены команды из тех, что мы часто используем в регулярной работе, но из существует много больше. Читайте страницы руководства (man) для получения большей информации.
QuotaQuota выводит информацию об использовании диска и ограничениях на файловой системе.
Для получения информации об использовании диска и ограничениях пользователя wahib используйте команду:
[root@deep /]# quota -u wahib
Disk quotas for user wahib (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda6 6001* 6000 0 none 7 0 0
Для получения информации о групповых квотах группы, членом которой является пользователь используйте команду:
[root@deep /]# quota -g wahib
Disk quotas for group wahib (gid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda6 5995* 5000 0 none 1 0 0
ЗАМЕЧАНИЕ. Если групповые квоты не установлены для заданного
пользователя, вы получите следующее сообщение:
Disk quotas for group wahib (gid 501): none
Repquota создает полную информацию об использовании дискового пространства и квотах на заданной файловой системе. Также она печатает для каждого пользователя текущее количество файлов и объем используемого дискового пространства (в килобайтах).
Здесь приведен пример информации полученной от команды repquota:
[root@deep /]# repquota -a
Block limits File limits
User used soft hard grace used soft hard grace
Roo -- 21 0 0 4 0 0
Named -- 6 0 0 5 0 0
Admin -- 388657 0 0 21 21 0 0
Wahib -- 6001 0 0 7 0 0
Block limits File limits
User used soft hard grace used soft hard grace
root -- 21 0 0 4 0 0
named -- 6 0 0 5 0 0
admin -- 388657 0 0 2121 0 0
wahib -- 6001 6000 0 none 7 0 0
Назад | Оглавление | Вперед |