Я знаю два способи:
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