Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 22
Текст из файла (страница 22)
Дляэтого необходимо включить quota support в меню Filesystem при конфигурировании ядра, а потом перекомпилировать ядро. С этой целью нужноперейти в каталог / u s r / s r c / l i n u x и выполнить команду make menuconfig, aзатем ввести следующую последовательность команд:make dep; make bzlmage; make modules; make modules_installПоследние две нужно вводить в случае, если вы хотите перекомпилировать модули. Не забудьте ввести команду Шо (см.
рис. 3.4) (перед этимнужно немного подправить файл / e t c / l i l o . c o n f , если вы этого не сделали раньше -- см. гл. 18). Более подробно о конфигурировании ядра выможете прочитать в гл. 18.Звездочкой на рис. 3.4 отмечен раздел, загружаемый по умолчанию.Перед перекомпилированием ядра я настоятельно рекомендую прочитать86Учетные записи пользователейп. 4.11 «Использование LILO» иCrootSdhsilabs uin_c3» liloгл. 18. Если приWded linux »ed my_linuxзагрузке ядра наffd linux-nonfb_64Mfldded failsafeэкране монитораed windowsed floppyвы увидите сообCrootSdhsilabs win_c]e |щение Turning onuser and groupquotas for localfilesystems, этозначит, что.
вашеядро уже поддерживает квоты.Теперь нужноопределить, исIfrSпользование какой файловой си-,Рис. З.4. Запись загрузчика LILOстемы вы хотитеограничить. Обычно это /home (домашние каталоги пользователей), /usr (пользователи имеют право записывать информацию в этот каталог) и, возможно, /var.Для этого отредактируйте файл /etc/ f stab следующим образом:/dev/hdal/ext2defaultsЮ>/dev/hda4/dev/hda5none/home/usr/procext2ext2procdefaults,usrquotad e f a u l t s , usrquota,grpquotadefaultsПараметр usrquota означает ограничение пространства для пользователей наданном устройстве, a grpquota — для групп. Если вы пишите usrquota (grpquota)без знака «=», то подразумевается, что файлы ограничений находятся в корневомкаталоге каждой файловой системы, для которой используются ограничения надисковое пространство.
Обычно эти файлы называются quota.user и quota.groupдля квот пользователей и групп соответственно. Однако вы сами можете указатькакие файлы следует использовать для определения квот, например, usrquota=/quotas/user.quota. Старайтесь не указывать слишком длинный путь.Периодически необходимо проверять содержащиеся в файле ограниченияна целостность действительного числа блоков и файлов, выделенных для пользователя. Для этого используется команда quotacheck. Ее можно выполнять дажена смонтированных файловых системах, а также на файловых системах, накоторых не используются квоты. Для проверки файловой системы на числоблоков, которые используются пользователем, выполните команду:# quotacheck -avugВ основном данную проверку нужно выполнять при некорректной перезагрузке.
При этом вы можете включить эту команду в один из гс-сценариеви выполнять ее так же, как и fsck.Для того, чтобы включить систему ограничений при загрузке операционной системы, добавьте команду quotaon -avug в сценарии загрузки системы.87Учетные записи пользователейТолько rootимеет право ис[root@dhsilabs /root]** quotacheck -avugпользовать коScanning /dev/hda5 1/1 doneChecked 6730 directories and 109842 filesманды, связанныеUsing quotafile /quota.userUpdating in-core user quotasс квотированием.Jsing quotafile /quota.groupUpdating in-core group quotasКоманда quota,Scanning /dev/hda8 C/mnt/ext2] doneChecked 7 directories and 11 filesкак уже былоUsing quotafile /mnt/ext2/quota.userJpdating in-core user quotasвыше отмечено,[rootSdhsilabs /root]* Iиспользуется дляпроверки используемых ограничений любого пользователя, а команда repquota для проверки используемого пространства и ограРис.
3.5. Результат выполнения команды quotacheck-avugничений для всехпользователей на данной файловой системе. При выполнении командыquotacheck -avug будут автоматически изменены файлы квот, а также будетизменена таблица ядра. Файлы квот имеют размер 2 Мб, даже если ни одиниз пользователей не использует квот.Для того, чтобы получить информацию об ограничениях, наложенных напользователя (группу), используется команда repquota -ua (см.
рис. 3.6).Croot@dhsilabs /root]** repquota -uaBlock limitsUserusedsofthardroot— 168287600bin34800daemon80000276IPnews5600uucp000ftp00named400apache2400xfs1200htdig618400mysql03160postfix0060195442800den—10732000synthetic —8080010000624001001Userroot72—used439980den4trootSdhsilabs /root]**used113629File limitssoft hard0439212144215332570172013737011Block limitssofthardused00000File limitssoft hard161Рис. З.6. Результат выполнения команды repquota -ua880000gracegraceУчетные записи пользователей3.6.1. Определение ограниченийДля определения (задания) ограничений используется команда edquota.Ограничение дискового пространства пользователя производится командойedquota с параметром -и (см.
рис. 3.7), а определение квот для группы — спараметром -g. После выполнения этой команды будет запущен редактор,который указан в переменной окружения $EDITOR, для редактирования квот.Редактировать надо только число, которое следует за словом hard или soft.Quotas for/dev/hda5:inodes/deu/hdaS:inodesuser den:blocks in use: 107320, limits (soft = 0, hard = 0)in use: 1720, limits (soft = |, hard = 0)blocks in use: 4, limits (soft = 0, hard = 0)in use: 1, limits (soft = 0, hard = 0)Vtmp/EdP.aaGSNQc" 5U 237CРис.
З.7. Результат выполнения команды edquota -u den# edquota -u denПеред выполнением этой команды выполните две следующие команды:quotacheck -u <filesystem>quotaon -u <filesystem>Например:quotacheck -u /mnt/ext2quotaon -u / m n t / e x t 2Данные команды необходимы для создания файлов q u o t a . u s e r иquota.group. В противном случае при редактировании ограничений пользователей (групп) вы получите сообщение о том, что данные файлы не существуют.Для каждой файловой системы, на которую наложены квоты, вы увидите две строки.
Слово soft означает, что на данную файловую систему наложено «мягкое» ограничение, а слово hard — «жесткое». При этом пользователь имеет некоторый интервал времени, по истечении которого «мягкое»ограничение перейдет в «жесткое». Данный интервал можно изменить спомощью команды edquota -t:# edquota -t89Учетные записи пользователейTime units may be: days, hours, minutes, or secondsGrace period before enforcing soft limits for users:/dev/hda4: block grace period: 50 minutes, file grace period: 50 minutes«Жесткое» ограничение является максимальным значением, которое может иметь пользователь или группа на данной файловой системе.Строка / d e v / h d a 4 : blocks in use: 1024, limits ( s o f t = 1,hard = 0) определяет количество блоков, которое может быть выделенодля пользователей или группы.
Напомню, что обычно размер блока в Linuxсоставляет 1024 байт. В данном случае ограничение равно 1 Мб.Строка inodes in use: 94, limits ( s o f t = 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 предоставляет информацию об ограничениях, наложенныхна указанную группу.Параметр -и предоставляет информацию об ограничениях, наложенныхна указанного пользователя.
Этот параметр используется по умолчанию ианалогичен запуску программы quota без параметров.Например, просмотр ограничения для пользователя user выглядит следующим образом:Disk quotas for user user (uid 1 0 0 2 } :Filesystem blocks quota limit grace f i l e s quota limit grace/dev/hdb31024*10none94ОО90Учетные записи пользователейПользователь user, ограничен так же, как и его прототип — пользователь den.Если ограничения для данного пользователя не заданы, вы увидитепримерно такое сообщение:Disk quotas for user root (uid 0 ) : noneТолько суперпользователь может просматривать квоты других пользователей. Обычный пользователь может просматривать только свои квоты иквоты группы, к которой он принадлежит.3.6.2.