В настоящее время я настраиваю машину, которая включает в себя множество учетных записей пользователей, поступающих из динамического бэкэнда (базы данных MySQL). Я успешно настроил систему так, чтобы она использовала этот бэкэнд для всех операций, связанных с учетной записью (аутентификация, сеанс, управление паролями, ...), но теперь я хотел бы установить квоты для всех этих пользователей.
Что касается квот в Linux, я обычно использую файлы квот:
aquota.user
файл в корне FS и перемонтируйте.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
(управление аккаунтом). Все в доме пользователя принадлежит этому пользователю и, следовательно, может быть изменено этим пользователем.