Как установить квоты файловой системы (диска) в Ubuntu?

Как установить квоты файловой системы (диска) в Ubuntu?

Системы хранения данных

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

Файловые системы, которые поддерживают систему квот: xfs, ext2, ext4 и ext3. Назначение квот зависит от файловой системы и каждого пользователя. Эта статья содержит все, что вам нужно знать о работе с квотами файловой системой в многопользовательской среде Ubuntu 18.04.

 

 

Что вам нужно?

Данная статья написана с использованием системы Ubuntu 18.04 и пользователем (sedicomm), у которого есть права sudo. Представленные здесь идеи могут работать на любых дистрибутивах Linux, если Вы используете правильную технику реализации.

 

 

Шаг 1: Установка квот в Ubuntu

Чтобы у вас появилась возможность использовать квоты, установите инструмент командной строки quota с помощью команды apt, но перед этим вам необходимо обновить пакеты программного обеспечения системы с помощью следующей функции:

 sudo apt update 

 

 

Теперь используйте следующую команду для установки пакета квот в Ubuntu, представленную ниже:

 $ sudo apt install quota 

 

Install-Quota-in-Ubuntu

 

 

Нажмите Y, а затем ENTER, чтобы начать процесс установки.

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

 $ quota --version 

 

Check-Quota-Version-in-Ubuntu

 

 

Шаг 2: Установка модуля для ядра quota 

В стандартной установке Ubuntu могут отсутствовать модули ядра, поддерживающие использование квот. Вы должны убедиться в этом с помощью инструмента find и убедиться, что два модуля quota_v1 и quota _v2 находятся в каталоге /lib/modules:

$ find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

 

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

Check-Quota-Kernel-Modules

 

 

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

$ sudo apt install linux-image-extra-virtual

 

Install-Quota-Kernel-Modules

 

 

Вы получите модули, необходимые для реализации квоты.

 

 

Шаг 3: Обновление параметров монтирования файловой системы

Чтобы квоты были активными в конкретной системе, они должны быть смонтированы с соответствующими параметрами. Вы можете сделать это, обновив запись файловой системы, найденную в файле /etc/fstab:

 $ sudo nano /etc/fstab 

 

 

Вы должны быть готовы отредактировать файл соответствующим образом. Разница между файлом fstab и декстопным файлом заключается в том, как «/» (корневая файловая система) представляет все пространство на диске. Замените строку «/«, которая указывает на корневую систему, на строки представленные ниже:

LABEL=cloudimg-rootfs / ext4 usrquota,grpquota 0 0 

 

 

Строки будут изменены, чтобы обеспечить доступ к userquota и grpquota. Вы можете оставить ту квоту, которая не является частью окончательной конфигурации. Если у fstab было несколько опций, добавьте новые опции в конце строки. Добавляйте новые элементы через запятую, но без пробелов между ними.

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

$ sudo mount -o remount /

 

 

ПРИМЕЧАНИЕ: убедитесь, что между опциями в /etc/fstab нет пробелов, чтобы избежать таких ошибок:

mount: /etc/fstab: parse error

 

 

Проверка использования новых опций при монтировании файловой системы в файле /proc/mounts осуществляется через grep. Команда показывает запись корневой файловой системы в файле:

$ sudo cat /proc/mounts | grep ' / '

 

 

Check-Root-Filesystem-Entry-in-Fstab

 

 

Шаг 4: Включение дисковых квот в Ubuntu

Сначала вы должны запустить команду quotacheck:

$ sudo quotacheck -ugm /

 

 

Команда создает два файла: quota user и quota group, в которых содержится информация об ограничении и использовании файловой системы. Эти файлы должны присутствовать перед началом использования квот.

 

 

Определение параметров:

  • -u  символизирует созданный пользователем файл квоты.
  • -g —  указывает, что будет создан файл квоты на основе группы.
  • -m — отключает перемонтирование файловой системы как доступное только для чтения, и в то же время дает точные результаты в среде, где пользователь продолжает сохранять файлы. Опция m не является обязательной во время настройки.

 

 

Если нет необходимости включать использование квот на основе пользователя или группы, нет и необходимости запускать опцию проверки квот. Подтвердите это, выведите корневой каталог с помощью команды ls:

$ ls /

 

Пример вывода

aquota.group bin dev home initrd.img.old lib64 media opt root sbin srv tmp var vmlinuz.old
aquota.user boot etc initrd.img lib lost+found mnt proc run snap sys usr vmlinuz

 

 

Если не включить параметры u и g в команду quotacheck, соответствующие файлы будут отсутствовать.

Теперь мы готовы включить квоту в корневой файловой системе «/» с помощью следующей команды:

$ sudo quotaon -v /

 

 

Шаг 5. Настройка квот для одного пользователя

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

 

 

Использование edquota

Команды edquota редактирует квоты, например, мы можем редактировать квоту, принадлежащую пользователю sedicomm, используя следующую функцию:

$ sudo edquota -u sedicomm

 

 

Использование параметра -u указывает, что квота принадлежит пользователю. Если вам нужно отредактировать квоту принадлежащую группе, используйте параметр -g. Команда откроет файл, используя выбранный вами текстовый редактор:

Check-User-Quota-on-Disk

 

 

Выходные данные перечисляют имя пользователя, uid, файловую систему с активными квотами, использование блоков и inodes. Квоты на основе inode ограничивают количество файлов и каталогов, которые могут создавать пользователи, независимо от размера, который они используют на диске. Большинство администраторов предпочитают block-based quota, которая контролирует пространство диска.

 

 

ПРИМЕЧАНИЕ: использование блоков не показывает, как они могут меняться в зависимости от различных факторов. В рамках контекстных квот в Ubuntu можно предположить, что один блок равен одному килобайту дискового пространства.

 

 

Используя приведенную выше командную строку, пользователь будет использовать 2032 блока, что эквивалентно 2032КБ места в /dev/sda1. Значение 0 отключает soft и hard ограничения.

Каждый набор квот позволяет устанавливать soft и hard лимит. Пользователь, превышающий soft ограничение, может превысить свою квоту, но ему не запрещено использовать больше блоков или инодов. В таком случае у пользователя есть семь дней, чтобы освободить свое soft лимитное пространство. Если этого не сделать, то затрудняется процес сохранения или создания файлов.

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

Мы можем обновить блочную квоту sedicomm, чтобы иметь soft ограничение в 100МБ и hard ограничение в 110МБ:

Set-User-Quota-Limit - Как установить квоты файловой системы (диска) в Ubuntu?

 

 

После редактирования, закройте файл и проверьте параметры ограничения квоты для нового пользователя с помощью команды quota:

$ sudo quota -vs sedicomm

 

Check-User-Quota-Limit

 

 

ПРИМЕЧАНИЕ: Предоставляя пользователям возможность анализировать свои квоты, без вызова команды sudo, необходимо настроить для них доступ к чтению файлов квот на этапе создания. Один из простых способов сделать это — создать группу пользователей с доступом к ней, чтобы вы могли самостоятельно добавлять пользователей.

 

 

Использование setquota

setquota обновляет информацию о квоте с помощью одной команды без какой-либо интерактивной настройки. Команда требует имя пользователя и установку как soft, так и hard ограничений, которые будут использовать блоки и inode. Вам также нужно будет указать файловую систему, которую будет использовать квота:

$ sudo setquota -u tecmint 200M 220M 0 0 /

 

Команда удваивает ограничения квот на основе блоков до 200 мегабайт и 220 мегабайт. Два «0 0» указывают на то, что hard и soft пределы не установлены. Это необходимо, даже если нет необходимости устанавливать квоты на основе индексов.

Используйте команду quota, чтобы проверить ваш прогресс:

$ sudo quota -vs tecmint

 

Verify-User-Quota-Limit

 

 

Шаг 6. Создание отчётов по квотам

Отчёт о квотах должен указывать использование всех пользователей. Для этого используется команда repquota:

$ sudo repquota -s /

 

Generate-Quota-Reports - Как установить квоты файловой системы (диска) в Ubuntu?

 

Вывод выше представляет собой отчет о корневой файловой системе «/«. -S инструктирует repquota для получения результатов в удобном для чтения формате.

Время отсрочки блокировки, по умолчанию, составляет 7 дней. Столбец отсрочки уведомляет пользователя о количестве дней до отказа в доступе к диску ресурса.

 

Шаг 7: Установка льготных периодов конфигурации

Льготный период — это время, когда пользователь получает разрешение на работу по умолчанию.

$ sudo setquota -t 864000 864000 /

 

Команда указывает блок и inode, что бы иметь льготный период из 864000 секунд, что эквивалентно 10 дням. Эта настройка повлияет на всех пользователей, поэтому значения должны быть установлены даже тогда, когда блоки и inode не будут использоваться. Значение времени задаётся в секундах.

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

$ sudo repquota -s /

 

 

Распространенные сообщения об ошибках

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

 

 

Вышеуказанная ошибка встречается часто, если вы пытаетесь включить квоты с помощью команды qoutaon перед попыткой проверить состояние квоты с помощью команды quotacheck:

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

 

 

Эта ошибка говорит администратору, что ядро ​​не поддерживается или у вас на компьютере установлена неправильная версия (у нас есть quota_v1 и quota_v2). В Ubuntu такие ошибки распространены на облачном виртуальном сервере.

Исправьте ошибку, установив пакет Linux-image-extra-virtual с помощью команды apt:

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

 

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

 

 

Выводы

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

 

В статье также рассматриваются распространенные ошибки и способы их устранения с помощью пакета extra или проверки версии ядра в вашей системе.

 

 

Спасибо за уделенное время на прочтение статьи!

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

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Системы хранения данных

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню