Чтение онлайн

ЖАНРЫ

Linux: Полное руководство

Аллен Питер В.

Шрифт:
Назначение и активация квот

Теперь нужно определить, использование какой файловой системы вы хотите ограничить. Обычно это

/home
(домашние каталоги пользователей),
/usr
(пользователи имеют право записывать информацию в этот каталог) и, возможно,
/var
. Чтобы включить квотирование файловой системы, отредактируйте файл
/etc/fstab
, добавив ключ usrquota (и/или grpquota для групп) в поле, содержащее слово defaults

/dev/hda1 / ext2 defaults

/dev/hda4 /home ext3 defaults,usrquota=/путь/к/файлу/квот

/dev/hda5 /usr ext3 defaults,usrquota,grpquota

Если

путь к файлу квот не указан, то используется файл в корневом каталоге квотируемой файловой системы. В версии 2 (ядро 2.6) он называется
aquota.user
(
aquota.group
для групп), в версии 1 —
quota.user
и
quota.group
.

Периодически необходимо проверять файлы ограничений и само дисковое пространство, выделенное пользователям, на целостность, особенно после аварийного завершения работы системы. Для этого используется команда quotacheck. Не рекомендуется применять ее к используемой в данный момент, а поэтому подверженной изменениям, файловой системе: сама программа пытается перемонтировать проверяемую файловую систему в режиме «только чтение», но на занятой ФС это невозможно. Рекомендуется также на время проверки отключать квотирование.

Если программа quotacheck не находит файлов ограничений, то создает их.

Для проверки файловых систем на число блоков, которые используются пользователем или группой, выполните команду:

# quotacheck -avug

Ключ – а требует проверки всех смонтированных файловых систем (если его не указывать, то нужно задать точку монтирования), ключ – v требует подробного отчета о работе команды, ключи – ug требуют проверки квот как для пользователей, так и для групп.

Команда

quota <имя> | <имя_группы>
позволяет просмотреть ограничения дискового пространства, наложенные системным администратором на данного пользователя или группу, а команда repquota — сводку ограничений и фактически занятого дискового пространства для всех пользователей данной файловой системы (с ключом – а — всех файловых систем).

Только суперпользователь может просматривать квоты других пользователей. Обычный пользователь может просматривать только свои квоты и квоты группы, к которой он принадлежит.

Рис. 7.3. Результат выполнения команды quotacheck -avug

Рис. 7.4. Результат выполнения команды repquota -um

Для задания ограничении предназначена команда edquota. Файлы ограничений при этом должны уже существовать. Создайте их и включите режим подсчета квот командами:

# quotacheck -u <точка_монтирования> # для групп нужно

# выполнить то же

# quotaon -u <точка_монтирования> # самое с ключом -g

Команда edquota -u <имя> создает временный текстовый файл, представляющий собой выдержку из двоичного файла квот, запускает ASCII- редактор, указанный в переменной окружения $EDITOR (по умолчанию это редактор vi), в котором вы можете отредактировать ограничения для данного пользователя, и записывает сохраненный текстовый файл обратно в файл квот.

Текущие показатели занятого дискового пространства приводятся только для справки, редактировать нужно только число, которое следует за словом

hard
или
soft
(рис. 7.5). Значение «0» указывает на отсутствие ограничений.

Рис. 7.5. Результат выполнения команды edquota -u den

Чтобы изменить период отсрочки, пользуйтесь ключом

– t
:

# edquota -t

Time units may be: days, hours, minutes, or seconds

Grace period before enforcing soft limits for users:

/dev/hda4: block grace period: 50 minutes,

file grace period: 50 minutes

В старой версии формата квот существовало значение периода отсрочки по умолчанию, вкомпилированное в ядро. В версии 2 значения по умолчанию нет, и период отсрочки для каждой файловой системы нужно указывать явно.

В большинстве случаев у вас есть несколько пользователей, на которых нужно наложить одинаковые ограничения. Самым быстрым способом редактирования ограничений в этом случае будет использование прототипа. С помощью команды:

# edquota -u <пользователь_который_станет_прототипом>

можно определить ограничения прототипа, а затем с помощью команды:

# edqouta -p <прототип> <пользователь>

создать квоты для всех оставшихся пользователей, применив к ним ограничения прототипа.

Для активации/деактивации подсчета квот на файловой системе, для которой заказано квотирование, предназначены команды quotaon и quotaoff. Команду quotaon нужно включить в сценарий загрузки системы, как и команду quotacheck:

# Смонтированы все файловые системы из /etc/fstab

# Проверка и активация квот

echo "Checking quotas. This may take some time."

/usr/sbin/quotacheck -avug

echo " Done."

echo "Turning on quota."

/usr/sbin/quotaon -avugfi

7.4. Подключение и конфигурирование аппаратных устройств

7.4.1. Ядро и поддержка устройств

Ядро ОС Linux может быть собрано как монолитное или модульное. Монолитное ядро — это один большой файл, в который включены сразу все возможности, заложенные в данную версию ядра. Оно без всяких изменений находится в оперативной памяти от запуска до остановки системы.

В модульном же варианте сборки в ядро включают только самый необходимый код, обеспечивающий загрузку системы. Все возможности, которые могут быть вынесены в отдельный файл (модуль), туда и выносятся, чтобы при необходимости динамически подключать их к ядру и отключать без перезагрузки компьютера. В результате ядро получается небольшим, быстрым и гибким.

Раньше, в первых версиях ядра Linux, механизм работы с модулями не был предусмотрен, и ядра тех времен содержали в себе код драйверов для всех поддерживаемых устройств. Такое решение нельзя было назвать рациональным: невозможно предусмотреть, какие устройства будут установлены у конечного пользователя, даже если включить в состав ядра драйверы всех известных устройств. Кроме того, даже если нужное устройство (скажем, звуковая плата Yamaha) ядром распознается, то драйверы остальных устройств того же назначения будут впустую занимать оперативную память. Поэтому, начиная с версии 2.0, ядро Linux поддерживает модульную организацию и из дистрибутива, основанного на ядре 2.x, ставится в модульном виде.

Поделиться с друзьями: