Денис Колисниченко - Linux-сервер своими руками Страница 24
Денис Колисниченко - Linux-сервер своими руками читать онлайн бесплатно
Для этого отредактируйте файл /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 <filesystem> quotaon –u <filesystem>
Например:
quotacheck –u /mnt/ext2 quotaon –u /mnt/ext2
Данные команды необходимы для создания файлов quota.user и quota.group. В противном случае при редактировании ограничений пользователей (групп) вы получите сообщение о том, что данные файлы не существуют. Для каждой файловой системы, на которую наложены квоты, вы увидите две строки. Слово soft означает, что на данную файловую систему наложено «мягкое» ограничение, а слово hard — «жесткое». При этом пользователь имеет некоторый интервал времени, по истечении которого «мягкое» ограничение перейдет в «жесткое». Данный интервал можно изменить с помощью команды edquota –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
«Жесткое» ограничение является максимальным значением, которое может иметь пользователь или группа на данной файловой системе.
Строка /dev/hda4: blocks in use: 1024, limits (soft = 1, hard = 0) определяет количество блоков, которое может быть выделено для пользователей или группы. Напомню, что обычно размер блока в Linux составляет 1024 байт. В данном случае ограничение равно 1 Мб.
Строка inodes in use: 94, limits (soft = 0, hard = 0) сообщает какое число inode (файлов, устройств, поименованных каналов (pipes)) может быть выделено для данного пользователя или группы.
В большинстве случаев у вас есть группа пользователей, которая должна иметь одинаковые ограничения. Самым быстрым способом редактирования ограничений в этом случае является использование прототипа. С помощью команды:
# edquota –u <пользователь/группа_который(ая)_станет_прототипом>
можно определить ограничения прототипа, а затем с помощью команды:
# edqouta –p <прототип> пользователь
создать квоты для всех оставшихся пользователей, применив к ним ограничения прототипа. При этом вам не нужно редактировать ограничения отдельно для каждого пользователя/группы. Например, вам нужно добавить пользователя user, который будет использовать такие же ограничения, что и пользователь den. Делается это следующим образом:
# edquota –p den user
Команда quota используется для проверки ограничений дискового пространства пользователей и групп и применяется со следующими параметрами:
quota [-guqv]
quota [-qv] –u <имя_пользователя>
quota [-qv] –g <имя_группы>
Параметр –v используется для вывода информации о файловых системах, которые не имеют активных ограничений, а также о файловых системах, на которых квоты уже активны, но не занят еще ни один блок.
Параметр –q используется для получения сведений о файловых системах, на которых превышено значение «мягкого» ограничения.
Параметр –g предоставляет информацию об ограничениях, наложенных на указанную группу.
Параметр –u предоставляет информацию об ограничениях, наложенных на указанного пользователя. Этот параметр используется по умолчанию и аналогичен запуску программы quota без параметров.
Например, просмотр ограничения для пользователя user выглядит следующим образом:
Disk quotas for user user (uid 1002) :
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb3 1024* 1 0 none 94 0 0
Пользователь user, ограничен так же, как и его прототип — пользователь den.
Если ограничения для данного пользователя не заданы, вы увидите примерно такое сообщение: Disk quotas for user root (uid 0) : none
Только суперпользователь может просматривать квоты других пользователей. Обычный пользователь может просматривать только свои квоты и квоты группы, к которой он принадлежит.
3.6.2. Запрет квоты для пользователя или группы
Иногда не нужно ограничивать какого-то отдельного пользователя — и в самом деле, не будете же вы ограничивать самого себя? Тогда для этого вам нужно использовать программу edquota и установить значения soft и hard равными 0. После этого данный пользователь или группа сможет использовать дисковое пространство без ограничений.
3.6.3. Использование программы linuxconf для определения квот
Очень удобно редактировать ограничения с помощью linuxconf. Для этого запустите linuxconf и выберите в меню Filesystems→Set quotas default (см. рис. 3.8).
Рис. З.8. Редактирование квот программой linuxconf
Здесь можно указать ограничения, которые будут использованы по умолчанию для пользователей или групп. При этом можно также указать интервал времени (grace period), по истечении которого «мягкое» ограничение перейдет в «жесткое». Ограничения можно задать отдельно и для конкретного пользователя. Для этого выберите в меню программы User accounts→User accountsи укажите пользователя, для которого вы хотите задать ограничения (см. рис. 3.9).
Рис. 3.9. Определение квот для пользователя
По умолчанию используется значение Default, то есть для этого пользователя будут использованы такие же ограничения, как и для всех остальных. Значение No limit — без ограничения. Ограничения можно задавать отдельно и для разных файловых систем.
Для квотирования сетевой файловой системы (NFS) нужно установить quota на сервере, а на клиенте она не нужна. Клиент получит сведения об ограничениях с помощью rquotad, который должен быть установлен и запущен на сервере. Вам не нужно устанавливать флаги usrquota или grpquota для монтирования NFS-дисков. Вместо этого установите quota на своем файловом сервере и запустите на нем из rc-файла сервер rpc.rquotad.
3.7. Сценарий создания пользователей
В качестве завершения этой главы приведу обещанный мною сценарий добавления новых пользователей (см. листинг 3.2). Данный сценарий нужно поместить в каталог /sbin и сделать этот файл исполнимым:
Жалоба
Напишите нам, и мы в срочном порядке примем меры.