Обмеження розміру расшаренной папки

Я знаю два способи:

1) Використовувати пакет Quota. За допомогою цього пакета можна задати квоту на дисковий простір на розділі, для користувача і для групи користувачів. Мінус: задати окремі квоти на Директорії, розташовані на одному розділі можна (або я поки не знаю як).

2) Створити файл необхідного розміру, відформатувати його, і змонтувати в розшарений папку. Тим самим отримуємо каталог обмеженого розміру. Мінус: якщо це каталог для декількох користувачів користувачів, то один користувач може зайняти весь простір, призначене для групи.

Позбутися від цих мінусів можна комбінуючи ці два способи. Алгоритм дій такий:

1) Створюємо файли для груп

2) Форматуємо їх

3) Монтуємо файли у відповідні папки

4) Включаємо квоти для користувачів на створених файлах-розділах використовуючи Quota

Тим самим на одному розділі можна створити кілька каталогів різного фіксованого обсягу і на кожен каталог задати різні квоти для користувачів.

Створимо два каталогу, наприклад: для документів і "смітник" для решти непотребу.

Даємо права на папки (наприклад 770 - повний доступ власнику і групі, іншим доступу немає):

Створюємо папку, де будуть зберігатися "відформатовані файли-розділи":

В даному прикладі створюємо файл, який містить 10485760 блоків розміром по 1024байт = 10ГБ для документів (при необхідності розмір змінюємо на потрібний змінюючи count):

sudo dd if = / dev / zero of = / home / fs / doc.fs bs = 1024 count = 10485760

І для решти наприклад 20ГБ:

sudo dd if = / dev / zero of = / home / fs / other.fs bs = 1024 count = 20971520

Даємо права на створені файли:

Міняємо групу, якій належать файли. Припустимо що користувачі, яким потрібен доступ в створювані Директорії, входять в групу "smbusers", тоді:

sudo chgrp smbusers /home/fs/other.fs

Форматуємо файли в ext3:

Монтуємо в створені нами папки:

sudo mount -t ext3 -o loop /home/fs/doc.fs / home / doc

sudo mount -t ext3 -o loop /home/fs/other.fs / home / other

для автоматичного монтування при завантаженні в / etc / fstab додаємо:

/home/fs/doc.fs / home / doc auto auto, loop 0 0

/home/fs/other.fs / home / other auto auto, loop 0 0

Тепер нам треба встановити квоти для юзверей на дисковий простір. Ставимо пакет quota:

Редагуємо файл / etc / fstab, додаємо "usrquota" в розділ, на який встановлюємо обмеження для користувачів:

/home/fs/doc.fs / home / doc auto auto, loop, usrquota 0 0

/home/fs/other.fs / home / other auto auto, loop, usrquota 0 0

За замовчуванням файли квот зберігаються в кореневому каталозі файлової системи в файлах з іменами aquota.user і aquota.group відповідно для призначених для користувача і групових квот.

Цією командою створимо файли:

Якщо буде лаятися - пробуємо запускати з ключем -m або -f.

Наприклад поставимо обмеження: за обсягом - 1000 Мбайт, за кількістю - 1000 файлів. Додаючи 10% запасу на жорсткі межі для розділу doc. І в 2 рази більше для other:

Disk quotas for user petrov_ia (uid 1005):

Filesystem blocks soft hard inodes soft hard

/ Dev / loop0 7 1024000 1126400 4 1000 1100

Розмір вказується не в КБ, це число блоків. Але при створенні файлу за допомогою команди dd ми вказували розмір блоку bs = 1024, тому в даному випадку розмір 1 блоку = 1 КБ.

Параметри blocks і inodes змінювати безглуздо, вони ставляться автоматично.

Параметр "grace period" дозволяє вам встановити час, перш ніж значення soft limit буде приведено в життя на файлову систему з включеними квотами:

Grace period before enforcing soft limits for users:

Filesystem Block grace period Inode grace period