Назад | Перейти на главную страницу

Настройте квоты дискового пространства в соответствии с динамическим сервером в Linux

В настоящее время я настраиваю машину, которая включает в себя множество учетных записей пользователей, поступающих из динамического бэкэнда (базы данных MySQL). Я успешно настроил систему так, чтобы она использовала этот бэкэнд для всех операций, связанных с учетной записью (аутентификация, сеанс, управление паролями, ...), но теперь я хотел бы установить квоты для всех этих пользователей.

Что касается квот в Linux, я обычно использую файлы квот:

  1. Активировать квоты для данной файловой системы.
  2. Создать aquota.user файл в корне FS и перемонтируйте.
  3. Использовать quotacheck, quotaon, quotaoff и edquota все настроить.

Проблема в том, что эти файлы квот статичны, в то время как многие из моих пользователей UNIX динамически хранятся в моей базе данных. Это означает, что когда пользователь добавляется через этот бэкэнд, мне нужны квоты (также хранящиеся в базе данных), которые будут применены к нему немедленно. Поскольку новые пользователи могут быть добавлены в любой момент, мне действительно не хочется каждый раз подключаться к серверу, чтобы самостоятельно редактировать информацию о квотах для нового пользователя ...

Есть ли способ хранить информацию о квотах в динамическом сервере, как и другую информацию, связанную с учетной записью? Или есть более «общий / типичный» способ достижения таких результатов, о котором я не думал?

(Немного предыстории) Эти пользователи, хранящиеся в базе данных MySQL, имеют свой собственный домашний каталог и могут получить к нему доступ через FTP. Все, что они там хранят, становится доступным через веб-сервер (общий хостинг), и хотя можно использовать сценарии PHP, они работают с идентификатором своего владельца (suPHP). Дело в том, что файл квот PureFTPd (.ftpquota) также принадлежит подключающемуся пользователю: хотя удалить этот файл через FTP по-прежнему невозможно, это можно сделать с помощью сценария PHP, работающего с аналогичными привилегиями. Поэтому я ищу более «надежный» способ принудительного применения квот, то есть не через FTP-сервер, который можно обманом заставить предоставить больше дискового пространства, чем было изначально предоставлено.

Здесь используется Linux Debian Wheezy с PureFTPd в качестве FTP-сервера и Apache в качестве веб-сервера. Учетные записи хранятся в базе данных MySQL и связаны с системой через libnss-mysql (получение информации об учетной записи) и pam-mysql (управление аккаунтом). Все в доме пользователя принадлежит этому пользователю и, следовательно, может быть изменено этим пользователем.