Такая ситуэйшн: есть квоты на /home/%username% и все прекрасно работает, юзверь не может забить весь диск своими данными.
Но эта квота не отрабатывает на MySQL базы которые хранятся в /var/lib/mysql. Соответственно пользователь может гигабайтной базой подложить свинью серверу.
Как можно решить эту проблему? Как, допустим, посчитать место занимаемое пользовательскими базами? Или Как их можно перенести в /home/%username%?
P.S.
/home/%username% — chroot со своим окружением.
Не факт что панацея, но что пришло в голову — положить файлы базы в /home/%username% и сделать симлинки на них в /var/lib/mysql
НО стоит призадуматься что произойдет с файломи БД когда они упрутся в квоту и система не даст больше записывать. Это может произойти довольно быстро, т.к. при удалении строк данные по умолчанию НЕ удаляются.
В статье www.cyberciti.biz/tips/linux-unix-setting-up-mysql-database-quotas.html описывается практически то, что предложил cat_crash выше, я правда боюсь, что когда база упрется в квоту — она может поламаться… Так же там в статье есть ссылки на другие решения этой проблемы. Самый простой вариант — по крону вызывается скрипт, который считает сколько места занимают базы пользователя и если объем превышает порог — забирает у пользователя права на CREATE и INSERT для его базы, когда объем упадет ниже порога — права возвращаются.