Настройка пользовательских квот на Ubuntu 12.04 Server

Posted by

В данной заметке я разберу, как настроить квоту на « Serverдля пользователей и групп пользователей. Назначение квот — обозначение предопределенного пространства между всеми пользователями имеющими доступ к системе. Утилита «” возвращает отчет о квотах на файловых системах описанных в файле /etc/mtab.

Для данной заметки я задействую пакет входящий в репозитарии «Ubuntu 12.04 Server” – «quota”.

  • quota — implementation of the disk quota system

Установим данный пакет в нашу систему:

ekzorchik@srv-monitor:~$ sudo apt-get install quota

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

ekzorchik@srv-monitor:~$ sudo nano /etc/mtab

, нужно после значения «errors=remount-ro”, дописать либо «”, либо «grpquota” или оба значения разделенных символом запятая «,» между другими значениями, к примеру это выглядит вот так:

UUID=9749ff8c-8061-4d0a-8d55-d30003c6a96e / ext4 errors=remount-ro,usrquota,grpquota 0

Сохраняем внесенные изменения и выходим.

 

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

ekzorchik@srv-monitor:~$ sudo mount -o remount /

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

ekzorchik@srv-monitor:~$ sudo reboot

 

После перезагрузки нужно проверить наличие в корневой директории «/» наличие файлов «aquota.user» и «aquota.group». Файлы будут.

ekzorchik@srv-monitor:~$ ls -l / | grep aquota.*

-rw——- 1 root root 7168 Aug 5 05:09 aquota.group

-rw——- 1 root root 7168 Aug 5 05:09 aquota.user

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

ekzorchik@srv-monitor:~$ sudo useradd alektest -b /home -m -U -s /bin/bash

ekzorchik@srv-monitor:~$ sudo passwd alektest (Aa1234567)

ekzorchik@srv-monitor:~$ sudo edquota -u alektest

(я оформил в табличку содержимое дисковой квоты на текущий момент для пользователя alektest)

Для справки:

  • Blocks : Место, используемое пользователем в блоках длиной 1kB. (Пример есть и наглядно показываем, что за сообщение будет у пользователя привысевшего ограничение)
  • inodes : Число используемых пользователем файлов (Пример есть и наглядно показывает, что за сообщение будет у пользователя)
    • Soft Limit : Максимальное количество блоков/файлов, которое

пользователь может иметь на данном разделе. Если используется период

отсрочки (grace period), то вместо жесткого ограничения, пользователь

нарушивший данные требования, получит лишь сообщение об этом. Значение

0 отключает данную опцию.

    • Hard Limit : Максимальное количество блоков/файлов, которое

пользователь может иметь на данном разделе даже с установленным

периодом отсрочки. Это жесткое ограничение, которое пользователь не

может превысить.

Filesystem

blocks

soft

hard

inodes

soft

hard

/dev/disk/by-uuid/9749ff8c-8061-4d0a-8d55-d30003c6a96e

16

0

0

4

0

0

Изменяем значение «hard = 0» на «hard = 51200» (50Мб * 1024 = получаемое значение в килобайтах = «51200», ниже полученные значения, представленные в таблице для наглядного понимания:

Filesystem

blocks

soft

hard

inodes

soft

hard

/dev/disk/by-uuid/9749ff8c-8061-4d0a-8d55-d30003c6a96e

16

0

51200

4

0

0

Сохраняем внесенные изменения. Этим мы ограничили пользователя местом в «50» Мегабайт.

Перезапускаем службу:

ekzorchik@srv-monitor:~$ sudo service quota restart

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

ekzorchik@srv-monitor:~$ sudo edquota –t

по умолчанию период равен семи дням (7days)

Filesystem

Block grace period

Inode grace period

/dev/disk/by-uuid/9749ff8c-8061-4d0a-8d55-d30003c6a96e

7days

7days

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

ekzorchik@srv-monitor:~$ sudo repquota -u /

отчет по пользователям, и какие на них накладываются политики квот

Далее просканируем значения для квот:

ekzorchik@srv-monitor:~$ sudo quotacheck -mavugf

quotacheck: Scanning /dev/disk/by-uuid/9749ff8c-8061-4d0a-8d55-d30003c6a96e [/] done

quotacheck: Checked 10206 directories and 67042 files

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

ekzorchik@srv-monitor:~$ sudo nano /etc/cron.daily/quotacheck

quotacheck –mavugf

Сохраняем внесенные изменения и выходим.

 

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

ekzorchik@srv-monitor:~$ su – alektest

 

Создадим файл размером, к примеру 100Мб:

alektest@srv-monitor:~$ dd if=/dev/zero of=test1 bs=100M count=1

dd: writing `test1′: Disk quota exceeded

1+0 records in

0+0 records out

0 bytes (0 B) copied, 0.0892609 s, 0.0 kB/s

Итого размер полученного файла, не 100Мб, а всего лишь половина в 50Мб:

alektest@srv-monitor:~$ dir -hl

total 50M

-rw-rw-r— 1 alektest alektest 50M Aug 9 03:22 test1

потому, как действует ограничения накладываемые квотой.

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

ekzorchik@srv-monitor:~$ sudo edquota -u alektest

в значение inodes (hard) – ставим число 10. (т.е. жесткое ограничение на создание 10 файлов или каталогов).

На заметку: учитываются также и скрытые файлы имеющие в основание символ точка (к примеру .node, .example).

Проверяем:

ekzorchik@srv-monitor:~$ su — alektest

Password:

alektest@srv-monitor:~$ touch 1

alektest@srv-monitor:~$ touch 2

touch: cannot touch `2′: Disk quota exceeded – ограничение срабатывает

Подсчитать количество файлов и каталог:

alektest@srv-monitor:~$ find /home/alektest/ -maxdepth 1 -type f | wc -l

10

Вот собственно и все что можно сказать по этапам настройки квот для разграничения доступа к серверу на базе «Ubuntu 12.04 Server». Они отрабатывают. Поэтому следите за обновления на моем блоге и Вы конечно же узнаете дальнейшее развитие данной темы. Квоты очень полезный инструмент на вооружение не только у системного администратора, но и продвинутого пользователя. Того самого который переводит своих родных и близких на такую удобную среду, как «Ubuntu 12.04». Результат достигнут, с уважением ekzorchik.

Leave a Reply

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

семь − 6 =