Введение
Файловая система (ФС) HFS+ на OS X поддерживает кватирование пользователей и групп по ID на уровне томов. Соответствующие файлы .quota.user и .quota.group располагаются в корневом каталоге. В каждом из них содержится заголовок, идущая следом хэш-таблица с определением лимитов, а так же потребляемые значения на ID пользователя или группы.
Включаем дисковые квоты
Для того, чтобы включить поддержку квотирования в корневом каталоге необходимо создать файл .quota.ops.user или .quota.ops.group.
- Получаем в терминале root-привилегии:
sudo su
- Создаем пустой файл опций:
touch /.quota.ops.user
- После этого станет возможно запустить команду:
repquoata -a
и поименно оценить текущее потребление диска пользователями. Если команда не запускается, наберите:
checkquota -a
Чтобы отфильтровать служебных пользователей, можно воспользоваться grep'ом:
repquota -a|grep -v -E "^_"
- Включаем квотирование командой quotaon (выключить обратно можно при помощи quotaoff):
quotaon /
Параметр указывает на точку монтированная файловой системы. В данном примере на компьютере только один корневой раздел. В случае, если необходимо установить квоты на несколько томов, повторите команду для каждой из примонтированных ФС.
С этого момента дисковые квоты включены и настает пора заняться настройкой правил лимитирования.
Устанавливаем лимиты потребления
Квоты настроены, установим лимиты потребления нашим пользователям. Настройку квот произведем на примере пользователя «blondie». Отредактировать пользовательские квоты можно при помощи команды edquota. Полное описание опций можно отыскать в man edquota, мы же воспользуемся ключом -u (user):
edquota -u blondie
Для правки откроется редактор vi (a вставить; ESC, :wq, ENTER сохранить и выйти). В нашем примере результат выглядит так:
Quotas for user blondie: /: 1K blocks in use: 85963652, limits (soft = 0, hard = 0) inodes in use: 35294, limits (soft = 0, hard = 0)
Можно установить как «hard», так и «soft» лимиты. «Hard» лимит обойти нельзя. Как только пользователь достигает границы лимита, он получает сообщение о недоступности дискового пространства. «Soft» лимит можно обойти на время. Пользователям разрешается превысить свой «soft» лимит на период отсрочки (grace period). Как только это время подходит к концу «soft» лимит замещается на «hard». Для смены периода отсрочки можно воспользоваться командой edquota -t. По умолчанию в OS X данный период равен одной неделе.
Зададим нашему пользователю 100G (hard) и 30G (soft) лимиты на дисковое пространство без ограничений на количество файлов:
Quotas for user blondie: /: 1K blocks in use: 85963652, limits (soft = 31457280, hard = 104857600) inodes in use: 35294, limits (soft = 0, hard = 0)
Хозяйке на заметку
Иноды (inodes) это файлы в файловой системе. Каждый файл получает свой инод (в т.ч. символические и жесткие ссылки).
Уловки
Установленный лимит на количество используемых файлов легко обходится с помощью дисковых образов (DMG). Образ диска занимает на файловой системе всего один инод, не важно сколько файлов он содержит или до какогоразмера вырастает. Лимит на файлы м.б. полезен для служебных пользователей, чтобы какой-нибудь демон не забил случайно файловую систему логами или дампами ядра.
Полезные ссылки
Автор: foboss