Управление квотами astra linux

Настройка дисковых квот в Linux

Пошагово разберем процесс установки ограничений на использование дискового пространства в системах Linux. Какой дистрибутив — не важно. Процесс немного различается для файловых систем XFS и EXT4/остальных — мы разберем оба варианта.

Установка пакета quota

Установка пакета для управления квотами выполняется из репозитория.

а) для систем на базе RPM (Red Hat, CentOS):

yum install quota

б) для систем на базе deb (Debian, Ubuntu):

apt-get install quota

Настройка раздела

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

  1. Для XFS — uquota (для пользователей) и/или gquota (для групп).
  2. Для ext и других — usrquota (для пользователей)и/или grpquota (для групп).

И так, чтобы добавить нужные опции для включения квотирования, откроем файл fstab:

Находим настройку для монтирования раздела, на который необходимо установить квоту и добавим нужные опции:

/dev/sda / ext4 defaults ,usrquota,grpquota 0 0
/dev/sdb /var xfs defaults ,uquota,gquota 0 0

* в данном примере мы добавили опции usrquota и grpquota для устройства /dev/sda, примонтированного в качестве корневого раздела / с файловой системой ext. А также опции uquota и gquota для устройства /dev/sdb (монтируется в /var с файловой системой xfs). Если необходимо включить квоту только для пользователей или групп, оставляем соответствующие опции.
* существуют и другие опции, например, jqfmt нужна для указания формата квоты при использовании журналирования. Подробнее описано в таблице Опции системы квот в файле /etc/fstab сайта IBM.

Перемонтируем наши разделы:

mount -o remount /

mount -o remount /var

Проверим, что нужные нам разделы теперь смонтированы с опциями квотирования:

mount | grep quota

Мы увидим, примерно, следующее:

/dev/sda on / type ext4 (rw,relatime, quota,usrquota,grpquota ,data=ordered)
/dev/sdb on /var type xfs (rw,relatime,attr2,inode64, usrquota,grpquota )

Квоты включены для разделов.

Корневая директория (/) + XFS

При попытке включить квоту для корневой директории XFS с помощью файла fstab, результат будет нулевым — в опциях монтирования мы будем наблюдать noquota, например:

/dev/sda on / type xfs (rw,relatime,attr2,inode64, noquota )

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

Находим строку GRUB_CMDLINE_LINUX и дописываем в нее rootflags=uquota,gquota — в моем случае получилось так:

.
GRUB_CMDLINE_LINUX=»crashkernel=auto rd.lvm.lv=vg/root rd.lvm.lv=vg/swap rhgb quiet floppy.allowed_drive_mask=0 rootflags=uquota,gquota »
.

На всякий случай, сохраним конфигурационный файл загрузчика:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

. и применим настройки grub:

grub2-mkconfig -o /boot/grub2/grub.cfg

После перезагрузки мы должны наблюдать такую картину:

mount | grep quota

/dev/mapper/vg-root on / type xfs (rw,relatime,attr2,inode64, usrquota,grpquota )

Квоты включены для корневого раздела с файловой системой XFS.

Включение квот

И так, мы разрешили квоты для разделов. Теперь включаем квоты. Процессы для XFS и остальных файловых систем немного различаются. Мы рассмотрим оба варианта. Так как в нашем примере есть разделы для XFS и Ext, то мы выполним все варианты настроек.

Читайте также:  Inaccessible boot device windows 10 не включается

После монтирования раздела с файловой системой XFS автоматически включается квотирование (если была задана соответствующая опция). Проверить состояние можно, войдя в режим экспертного управления квотами:

. и выполнив команду для получения статуса:

Ext и другие

Выполним проверку наличия служебных файлов aquota.user и aquota.group — если их нет, команда их создаст автоматически:

. при наличии разделов с включенной квотой на XFS мы можем увидеть:

quotacheck: Skipping /dev/sdb [/var]

* это нам говорит о том, что команда quotacheck пропускаем раздел с xfs.

Включаем квоту для разделов:

Установка квот

Пришло время задать квоты. Они устанавливаются с помощью команды edquota.

Квоты пользователей

Для пользователя, вводим команду:

edquota -u dmosk

* где dmosk — имя пользователя, для которого будет задана квота.

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

Disk quotas for user dmosk (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda 20 0 10M 8 0 0
/dev/sdb 0 0 20M 0 0 0

  • Filesystem — дисковое устройство, для которого устанавливается квота.
  • blocks — текущее количество используемых пользователем блоков.
  • первый soft — мягкая квота на объем данных (при ее превышении отправляется уведомление по почте, а после периода отсрочки, который по умолчанию составляет 7 дней, мягкая квота становится жесткой).
  • первый hard — жесткая квота на объем данных (при ее превышении дальнейшая запись будет запрещена).
  • inodes — текущее количество файлов, используемых пользователем.
  • второй soft — мягкая квота на количество файлов (при ее превышении отправляется уведомление по почте).
  • второй hard — жесткая квота на количество файлов (при ее превышении дальнейшая запись будет запрещена).

* в данном примере мы задали жесткую квоту для пользователя dmosk в 10 Мб на /dev/sda (корневой раздел) и 20 Мб на /dev/sdb (/var).

Квоты для групп

Для группы, задаем квоту так:

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

Disk quotas for group mail (gid 12):
Filesystem blocks soft hard inodes soft hard
/dev/sda 0 0 30M 6 0 0
/dev/sdb 0 0 40M 0 0 0

* в данном примере мы зададим квоту для группы в 30 Мб на /dev/sda (корневой раздел) и 40 Мб на /dev/sdb (/var).

Копирование квот

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

edquota -p dmosk ivanov

* в данном примере мы скопируем настройку квотирования, которая применяется к dmosk на другого пользователя ivanov.

Настройка периода отсрочки

Как было упомянуто выше, мягкие ссылки являются мягкими только в течение периода отсрочки. Данный период по умолчанию равен 7 дням. Его можно задать командой edquota с ключом -t:

В открывшемся окне задаем новые значения:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/mapper/vg-root 8days 9days
/dev/sdb 8days 9days

* в данном примере мы задали 8 дней для квот на дисковое пространство и 9 дней — на количество файлов.

Просмотр и проверка квот

Ограничения настроены. Проверим.

Отчет по квотам

Чтобы посмотреть отчет об используемом пространстве и установленных квотах, вводим команду:

* для отчета корневого раздела только по пользовательским (u) квотам в режиме удобного чтения (s).

* для отчета по разделу /var для групп.

Мы увидим что-то на подобие:

*** Report for user quotas on device /dev/sda
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
———————————————————————-
root — 2862M 0K 0K 115k 0 0
polkitd — 0K 0K 0K 2 0 0
tss — 8K 0K 0K 2 0 0
postfix — 4K 0K 0K 38 0 0
chrony — 4K 0K 0K 3 0 0
dmosk — 20K 0K 10240K 8 0 0
rpc — 0K 0K 0K 2 0 0
ntp — 4K 0K 0K 3 0 0
.

Читайте также:  При запуске системе windows не удается проверить цифровую подпись этого файла

* как видим, это отчет по использованию раздела /. Мы видим, каким пользователем сколько занято дискового пространства и видим, что для нашего пользователя dmosk установлена квота в 10 Мб (10240 Кб).

Проверка

И так, мы настроили для пользователя dmosk ограничение на использование дискового пространства. Попробуем превысить данный лимит. Заходим в консоль под нужным пользователем:

dd if=/dev/zero of=/tmp/tmp_dmosk_file bs=1024000 count=100

* команда должна создать файл на 100 Мб в каталоге tmp.

Однако, система вернет сообщение:

dd: ошибка записи «/tmp/tmp_dmosk_file»: Превышена дисковая квота
11+0 записей получено
10+0 записей отправлено
скопировано 10240000 байт (10 MB), 0,223768 c, 45,8 MB/c

Другие квоты

Иногда, необходимо установить квоту в рамках определенной программы или каталога.

Однако, квоты так не работают и нет возможности задать их для определенного каталога или программы. Но это не означает, что выхода нет.

Квота на директорию

Чаще всего, нет необходимости задавать квоту на всю систему — нужно только ограничение размера директории. В данной ситуации нам нужно примонтировать диск к нужной директории и задать квоту на примонтированный раздел.

Квоты в samba

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

Также в файловом сервере samba есть возможность настройки квотирования на уровне программного обеспечения. В конфигурационном файле при настройке шары добавим:

[share]
.
vfs objects = default_quota
default_quota:uid = 1022
default_quota:uid nolimit = no
.

* в данном примере мы задаем квоту на каталог share. Данная квота должна быть такой же, как у системного пользователя с uid 1022. Таким образом, системные квоты должны быть настроены.

Для samba есть также параметр max disk size, который не является ограничением, а просто показывает для других программ максимальный объем доступного пространства.

Квоты в vsftpd

Настраивая vsftpd, мы также должны позаботиться о том, чтобы каталоги с FTP были на разделах с установленными квотами. Другими словами — вопрос также решается с применением пакета quota.

Источник

MNorin.com

Блог про Linux, Bash и другие информационные технологии

Linux: управление квотами дискового пространства

В случаях использования большим количеством пользователей одной системы достаточно часто возникает вопрос, как же организовать в Linux управление квотами. Квота — это ограничение на объем дискового пространства, который может использовать пользователь или группа пользователей. Такая потребность может возникнуть, например, при организации файлового хранилища организации или при организации shared-хостинга. В операционных системах на базе ядра Linux такие ограничения реализуются достаточно просто.

Управление квотами дискового пространства осуществляется под пользователем root. Существуют два вида квот: мягкие (soft quota) и жесткие (hard quota).

Мягкая квота определяет максимальный объем дискового пространства, разрешенный квотой. При превышении квоты пользователь получает сообщение о том, что квота превышена.

Жесткая квота определяет абсолютный максимальный объем дискового пространства, который пользователь не может превышать. Пользователю не разрешено будет занять больше дискового пространства, чем определено жесткой квотой.

Читайте также:  Windows has had an unexpected shutdown

Установка пакета

Перед началом работы с квотами нужно установить пакет quota

Настройка файловых систем на работу с квотами

Для файловой системы, для которой мы хотим включить управление квотами, нужно указать опции монтирования usrquota и grpquota для поддержки пользовательских и групповых квот соответственно. Эти параметры нужно указать в файле /etc/fstab, например, так:

После указания опций надо перемонтировать файловую систему:

После этого в корне файловой системы нужно создать файлы aquota.user и aquota.group. Это файлы базы данных квот. Создать их можно следующей командой:

-c, —create-files Создать базу данных
-u, —user Проверить квоты для пользователей
-g, —group Проверить квоты для групп
-v, —verbose Выводить подробную информацию
-a, —all Проверить все не-NFS файловые системы

После этого можно включить квоты

У этой команды тоже есть опции командной строки, вот некоторые из них:

-a, —all Включить квоты для всех файловых систем
-f, —off Выключить квоты
-u, —user Работать с пользовательскими квотами
-g, —group Работать с групповыми квотами
-p, —print-state Вывести информацию о квотах
-v, —verbose Выводить подробную информацию о работе

После включения квот можно приступать к их настройке.

Управление квотами

Настройка лимитов квот (непосредственное управление квотами) производится при помощи команды edquota. Формат команды:

Несколько опций команды edquota:

-u, —user Редактировать пользовательские квоты
-g, —group Редактировать групповые квоты
-r, —remote Редактировать квоты на удаленной системе
-f, —file-system= Редактировать квоты только на указанной файловой системе
-t, —edit-period Редактировать временные лимиты для мягких квот, которые указываются в единицах времени — минутах, секундах, и так далее

После редактирования квот может потребоваться перезапустить сервис quota

Теперь давайте создадим пользователя и настроим для него квоты

Пользователь создан. Добавим для него следующие ограничения: пусть он не может использовать больше 1 мегабайта и может создать только 3 файла на файловой системе, смонтированной в /mnt/storage.

В редакторе вы увидите следующее:

Выставим следующие значения для квот по пространству: soft — 768, hard — 1024, по inodes: soft — 2, hard — 3.

И выйдем с сохранением. Теперь посмотрим, сохранились ли квоты. Залогинимся под пользователем user1 и перейдем в директорию /mnt/storage. Попробуем создать файл большого размера:

Как видите, квота пользователя исчерпана. Посмотрим, что у нас есть на дисковой системе:

Как видите, размер файла 1 мегабайт. Теперь надо проверить, работает ли ограничение на количество файлов. Удалим file.dat и попробуем создать четыре файла.

Файл file4 мы не смогли создать, потому что сработало ограничение на количество файлов. Смотрим, какие файлы у нас есть:

Как видите, управление квотами работает.

Просмотреть установленные квоты можно при помощи команды quota. Вот несколько опций:

-u, —user Вывод информации для пользователя
-g, —group Вывод информации для группы
-v, —verbose Вывод подробной информации
-s, —human-readable Вывод информации в удобном для чтения человеком виде
-l, —local-only Выводить информацию только по локальным файловым системам, то есть не выводить информацию о сетевых файловых системах

Давайте посмотрим информацию для пользователя user1:

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

Также можно воспользоваться командой repquota для просмотра квот, которые в данный момент присутствуют в системе.

У команды repquota также есть дополнительные опции командной строки.

Источник

Оцените статью