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

Для использования данной возможности в ядре должна быть включена поддержка квот. Проверить это можно так:

$ gzip -cd /proc/config.gz | grep QUOTA

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

CONFIG_QUOTA=y

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

# pacman -Ss quota

Если нет, устанавливаем:

# pacman -S quota-tools

Теперь нужно сделать несколько нехитрых действий.

Добавить в /etc/fstab запись о поддержке квот на необходимую точку монтирования. В примере это /home.

/dev/sda3 /home ext4 deafults, usrquota, grpquota 0 1

Для того, чтобы изменения вступили в силу:

# mount -o remount /home

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

# quotacheck -cug /home
  • c - создать файлы квот для всех файловых систем, где они включены
  • u - проверка квот пользователей
  • g - проверка квот групп

После этого будут созданы файлы quota.user и quota.group, где будет храниться информация о квотах.

Создание таблицы использования диска:

# quotacheck -avug
  • a - проверка всех смонтированных систем, где включены квоты
  • v - подробный вывод информации
  • u - проверка квот пользователей
  • g - проверка квот групп

Назначение квот пользователям и/или группам

Ограничим личное пространство пользователя user1:

# edquota user1

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

  • blocks - количество блоков, используемых пользователем в данный момент
  • soft - мягкое ограничение на количество блоков
  • hard - жёсткое ограничение
  • inodes - количество индексных дескрипторов, используемых пользователем, далее мягкое и жёсткое ограничение на них.

Отдадим пользователю, например, 100 MB. Тогда в строке hard нужно задать цифру 100000.

Для сохранения изменений:

# quotaoff /home
# quotacheck -avug
# quotaon -a

Для указания квоты какой-либо группе:

# edquota -g users

Далее по аналогии. Вы можете не задавать квоты каждому пользователю, а просто задать той группе, в которую он входит. Эффект будет одинаковым.

Отключение и включение квот производится командами quotaoff -vaug и quotaon -vaug соответственно. Для просмотра статистики используйте команду repquota -a. ⤧  Следующая запись Пользователи и группы в Archlinux