Аннотация |
Введение: This document is copylefted by Albert M.C. Tam (bertie@scn.org). Permission to use, copy, distribute this document for non-commerical purposes is hereby granted, provided that the author's / editor's name and this notice appear in all copies and/or supporting documents; that this document is not modified. Надеюсь, что этот документ будет вам полезен, но БЕЗО ВСЯКИХ ГАРАНТИЙ, явных и не явных. Даже если в тексте присутствует убеждение в точности представленной информации, авторы/редакторы/сопроводители не несут НИКАКОЙ ОТВЕТСТВЕННОСТИ за ошибки или повреждения, полученными в результате ее использования. Этот документ описывает настройку квот для файловой системы Linux, определение квот для пользователей и групп, а также использование различных команд, связанных с квотированием. Предполагается, что у пользователя есть ядро 2.x (RedHat 4.1). Пользователям же старых ядер, чтобы использовать квотирование, необходимо обновить ядро. Если вы найдете ошибки или заметите пропущенную информацию, можете спокойно послать письмо с комментариями по адресу bertie@scn.org. Я оценю это. |
Квотирование позволяет ограничить два аспекта использования диска: количество файлов, которыми владеет пользователь или группа пользователей; и количество блоков диска, которые может использовать пользователь или группа пользователей. Квотирование определяется, как для каждого пользователя, так и для каждой файловой системы. Если у вас несколько разделов, то квоты нужно определить для каждого раздела, в котором пользователь намеревается создавать файлы.
Я слышал, что поддержка квотирования встроена в ядро, начиная с версии 1.3.8x, и теперь это часть ядра 2.0.x. Если ваша система не поддерживает квотирование, я настоятельно рекомендую обновить ядро.
В настоящее время, квотирование работает только на файловой системе ext2.
В зависимости от дистрибутива, у вас может быть, а может и не быть установлено программное обеспечение для поддержки квотирования. В этом случае, вы можете загрузить исходные тексты с
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz. |
Перенастройте свое ядро и добавьте туда поддержку квотирования.:
Quota support (CONFIG_QUOTA) [n] y |
Программное обеспечение для квотирования находится по адресу
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz |
Далее приводится пример:
# Проверка квот и затем включение квотирования. if [ -x /usr/sbin/quotacheck ] then echo "Checking quotas. This may take some time." echo "Проверка квот. Подождите минуту..." /usr/sbin/quotacheck -avug echo " Ok." fi if [ -x /usr/sbin/quotaon ] then echo "Turning on quota." echo "Включаем квоты." /usr/sbin/quotaon -avug fi |
Золотое правило: всегда включайте квотирование после того, как файловые системы перечисленные в /etc/fstab, установлены, иначе квотирование не будет работать. Я рекомендую включать квотирование в конце скрипта загрузки системы, или, если хотите, сразу после установки файловых систем.
Разделы, на которых не включено квотирование, выглядят следующим образом:
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1 |
Для включения поддержки квотирования, напишите "usrquota" в четвертом поле, где написано "defaults" (для выяснения подробностей прочтите руководство к fstab).
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1 |
Замените "usrquota" на "grpquota", если вам нужна поддержка квотирования групп пользователей в файловой системе.
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,grpquota 1 1 |
Если вам нужна поддержка квотирования пользователей и их групп в файловой системе, то:
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1 |
Доступ к файлам записи квот quota.user и quota.group должен иметь только пользователь с правами root
Зайдите как пользователь root. Зайдите в корневой каталог и создайте файлы quota.user и quota.group:
touch /partition/quota.user touch /partition/quota.group chmod 600 /partition/quota.user chmod 600 /partition/quota.group |
Теперь перезагрузите систему.
Запомните, что теперь для установления квотирования на каталоги вам потребуется произвести шаги 4, 5, и 6.
Эта операция выполняется, при помощи команды edqouta (man edquota).
Перед этим я обычно запускаю команду qoutacheck с параметрами -avug, чтобы файловая система точно знала, что и кем используется. Впрочем, это не обязательный шаг, а просто привычка.
Например. У меня в системе есть пользователь bob. Команда "edqouta -u bob" запускает текстовый редактор (определенный в переменной окружения $EDITOR) для редактирования квот пользователя bob для каждого раздела, на котором включено квотирование:
Quotas for user bob: /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) inodes in use: 356, limits (soft = 1000, hard = 1500) |
"blocks in use" это общее количество блоков (килобайт), используемых пользователем на этом разделе.
"inodes in use" это общее количество файлов, принадлежащих пользователю.
В моей системе есть группа games. "edquota -g games", снова запускает текстовый редактор для редактирования квот группы games:
Quotas for group games: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000) |
Для быстрой установки квот, скажем для 100 пользователей, на те же значения, что и для пользователя bob, я должен определить ему квоты, а затем запустить:
edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd` |
если вы используете оболочку csh и идентификаторы пользователей (UID), то последние начинаются с 500.
В добавок к edqouta вы еще должны ознакомиться с тремя понятиями: мягкие ограничения, жесткие ограничения и льготный период.
Мягкие ограничения определяют максимальный объем диска для пользователя на каждом разделе. В комбинации со льготным периодом, они определяют границу, после которой пользователь начинает получать предупреждения.
Жесткие ограничения работают только тогда, когда установлен льготный период. Они определяют абсолютный лимит использования диска, который пользователь не может превысить.
Льготный период (grace period) - это количество времени после превышения мягких ограничений, в течении которого пользователю позволено использовать дисковое пространство, если оно не превышает жесткий лимит. Он определяется в секундах (seconds), минутах (minutes), часах (hours), днях (days), неделях (weeks) или месяцах (months). Проверить его можно при помощи команды "edquota -t":
Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda2: block grace period: 0 days, file grace period: 0 days |
Можете изменить число дней на любое разумное значение. Лично я использую 7 дней (или 1 неделю).
Quotacheck используется для сканирования дискового пространства и обновления файла "quota.user". Я рекомендую запускать его во время загрузки системы или периодически через cron (скажем, каждую неделю).
Repquota выводит общий отчет по квотированию файловой системы. Пример:
# repquota -a Block limits File limits User used soft hard grace used soft hard grace root -- 175419 0 0 14679 0 0 bin -- 18000 0 0 735 0 0 uucp -- 729 0 0 23 0 0 man -- 57 0 0 10 0 0 user1 -- 13046 15360 19200 806 1500 2250 user2 -- 2838 5120 6400 377 1000 1500 |
Quotaon используется для включения подсчета квот; quotaoff для выключения. На самом деле, оба файла похожи между собой и запускаются во время запуска, и выключения системы соответственно.
Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.
Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <linux-howto@metalab.unc.edu> или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>