Квоты на уровне директории [SOLVED]

Добрый день всем.
Интересует следующее: возможно ли квотировать пространство, занимаемое файлами на диске не на уровне пользователя/группы, а на уровне директории.

Грубо говоря, на сервере есть публичная директория, открытая на запись по ftp, необходимо, чтобы ее объем был ограничен сверху величиной в 1 Gb. На ftp используются только виртуальные пользователи, работающие с системой под учетной записью ftp, следовательно, описанный во многих источниках сети способ квотирования "per user" мне не подходит.

Кто знает какие-либо средства для обеспечения требуемой функциональности?

P.S. Можно наверное исхитриться с помощью манипуляций с локальными пользователями и группами, но хотелось бы более осмысленного, без трюков, решения проблемы.

P.P.S. В венде есть http://mdforum.dynu.com/article669.html

Найдено на

Найдено на opennet.ru:

Цитата:
Зарезервированное слово "usrquota" ,в поле опций, включает ограничение
дискового пространства (quotas) для пользователей (userquota) на
данном устройстве. Зарезервированное слово "grpquota" включает
ограничение дискового пространства для групп (groupquota) на данном
устройстве. Во то время когда вы используете опции "usrquota" и
"grpquota" без '=' , то ваши файлы ограничений (quotafile) будут
находится в корневом каталоге каждой файловой системы , в которой
используются ограничения на дисковое пространство. Файл называемый
"quota.user" будет использоваться для ограничений пользователей , а
файл "quota.group" будет использоваться для ограничений групп. Однако
вы сами можете определить ваши файлы ограничений. Например строка
"usrquota=/usr/adm/quotasrc.user" установит файл ограничений для
пользователей в каталоге /usr/adm , который будет называться
"quotarc.user". Однако будьте внимательны , и отслеживайте длину
строки в файле /etc/fstab (смотрите ее определение в файле mntent.h)

А на счет трюков. ИМХО, квота на каталог, без привязки к юзеру/группе и есть "трюк", не хочешь чтобы он занимал больше 5 гигов - так дай под него раздел на 5 гигов. Хочешь менять ограничения динамически - сделай это на LVM2 или EVMS.

...

Цитата для чего была приведена? Выделенный кусок ведь указывает, что можно переносить файл настроек, а не выделять место для определенной директории. Я это прочел уже все до того, как писать вопрос в форум, самой первой статьей.

LVM это здорово конечно, спору нет. Только система у меня живая и пока играться с LVM - опыта недостаточно. Озадачусь.

Насчет трюков. Есть задача. Есть решение. И то, что оно достаточно логично реализовано в так ненавидимой здесь большинством оси, и не реализовано в любимом никсе, не делает это решение трюком.

А вот моей изобретательности хватило пока на то, чтобы изобрести следующее: создать фиктивную группу ftp_dummy, дать на нее квоты и по cron'у запускать скрипт, который рекурсивно будет всему содержимому папки делать рекурсивный chgrp.

...костыли, мдя.

_________________
// Если бы Уильям Шекспир был программистом, знаменитую фразу "То be or not to be" он написал бы так: 2b | ! 2b

Ну стандартно

Ну особо квотами не занимался, бо пока не зачем. На каталог говоришь? Надуваем файл на 5 гигофф, размечаем в ем фс и монтируем в каталог через луп. Собсно на все про все одна запись в фстаб.

ЗЫ
ИМХО надо копать фс что умеет квоты на каталог.

Re: ...

Wolverine написал(а):
Насчет трюков. Есть задача. Есть решение. И то, что оно достаточно логично реализовано в так ненавидимой здесь большинством оси, и не реализовано в любимом никсе, не делает это решение трюком.

А теперь расскажи мне, как должны квоты считаться для hardlink'ов. Квотирование дискового пространства будет эффективным в пределах одного дискового раздела, а все остальное от лукавого...

Гы.

Анонимный пользователь ftp-сервера не может создавать хардлинки. Я не зря сказал, про "задачу и решение".
_________________
// Если бы Уильям Шекспир был программистом, знаменитую фразу "То be or not to be" он написал бы так: 2b | ! 2b

А я говорил об

А я говорил об общем случае. Речь не о том что там у тебя с ftp, а о том почему нет квот только на одну директорию. Я еще раз повторюсь, не хочешь трюков - выноси эту директорию. В файл, на отдельное блочное устройство - решать тебе.

Есть вариант

Есть вариант поиграться с ftp. Правда для этого имхо нужно нечто посложнее нежели vsftpd (к примеру proftpd). Делаем каталог для анонимов. Соответсвенно все файлы, которые прислали анонимно складываются в этот каталог. Умный эфтипишник ставит овнера и группу для файлов от анонима вполне определенным образом (прописывается в конфигах). К примеру он может запросто менять овнера на юзера по имени ftp. Теперь накладываем квоту на юзера ftp. Собсно и все.

Всем спасибо.

Сабж всем кто высказался.

Задача решена с помощью файла, на котором создана файловая система, подмонтированного с помощью mount -o loop

_________________
// Если бы Уильям Шекспир был программистом, знаменитую фразу "То be or not to be" он написал бы так: 2b | ! 2b

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".