5 шагов по настройке дисковой квоты для пользователей и групп в UNIX / Linux

В Linux вы можете настроить дисковую квоту одним из следующих способов:

  • Распределение квоты базового диска файловой системы
  • Распределение дисковых квот на основе пользователей или групп


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

  • Жесткий лимит – например, если вы укажете 2ГБ в качестве жесткого лимита, пользователь не сможет создавать новые файлы после 2ГБ
  • Мягкое ограничение – например, если вы указали 1 ГБ в качестве мягкого ограничения, пользователь получит предупреждение «Превышена квота диска», как только они достигнут 1 ГБ. Но они по-прежнему смогут создавать новые файлы, пока не достигнут жесткого предела
  • Льготный период – например, если вы укажете 10 дней в качестве льготного периода, после того, как пользователь достигнет своего жесткого ограничения, ему будет предоставлено еще 10 дней для создания новых файлов. В этот период они должны попытаться вернуться к пределу квоты.

1. Включите проверку квоты в файловой системе

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

Измените /etc/fstab и добавьте ключевые слова usrquota и grpquota в соответствующую файловую систему, которую вы хотите отслеживать.

В следующем примере показано, что в файловой системе /home включена проверка квот для пользователей и групп.

# cat /etc/fstab
LABEL=/home    /home   ext2   defaults,usrquota,grpquota  1 2

Перезагрузите сервер после вышеуказанного изменения.

2. Начальная проверка квот в файловой системе Linux с использованием quotacheck

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

# quotacheck -avug
quotacheck: Scanning /dev/sda3 [/home] done
quotacheck: Checked 5182 directories and 31566 files
quotacheck: Old file not found.
quotacheck: Old file not found.

В приведенной выше команде:

  • a: Проверьте все файловые системы с квотами
  • v: подробный режим
  • u: проверить квоту диска пользователя
  • g: проверить квоту на групповой диск

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

# ls -l /home/

-rw-------    1 root     root        11264 Jun 21 14:49 aquota.user
-rw-------    1 root     root        11264 Jun 21 14:49 aquota.group

3. Назначьте дисковую квоту пользователю с помощью команды edquota

Используйте команду edquota, как показано ниже, для редактирования информации о квоте для конкретного пользователя.

Например, чтобы изменить дисковую квоту для пользователя ‘RSA’, используйте команду edquota, которая откроет мягкие, жесткие ограничения в редакторе, как показано ниже.

# edquota RSA

Disk quotas for user ramesh (uid 500):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/sda3           1419352          0          0       1686        0        0

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

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

4. Сообщите об использовании дисковой квоты для пользователей и групп, используя repquota

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

# repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  566488       0       0           5401     0     0
nobody    --    1448       0       0             30     0     0
RSA       -- 1419352       0       0           1686     0     0
john      --   26604       0       0            172     0     0

5. Добавьте quotacheck  в ежедневную работу cron

Добавьте quotacheck в ежедневную работу cron. Создайте файл quotacheck, как показано ниже в каталоге /etc/cron.daily, который будет запускать команду quotacheck каждый день. Это отправит вывод команды quotacheck на корневой адрес электронной почты.

# cat /etc/cron.daily/quotacheck
quotacheck -avug