L i n u x P a r k при поддержке ВебКлуба |
Назад | Оглавление | Вперед |
Глава 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
Назад | Оглавление | Вперед |