Proftpd. Настройка квот
После настройки Proftpd проверяем, что модуль квот активирован в modules.conf
LoadModule mod_quotatab.c
И добавляем такой блок в proftpd.conf
<IfModule mod_quotatab.c> QuotaEngine on QuotaLog /var/log/proftpd/quota.log QuotaDisplayUnits Mb QuotaOptions ScanOnLogin QuotaShowQuotas on QuotaLimitTable file:/etc/proftpd/quota/ftpquota.limittab QuotaTallyTable file:/etc/proftpd/quota/ftpquota.tallytab </IfModule>
Создаём базы для лимитов и даём права
# cd /etc/proftpd/quota # ftpquota --create-table --type=limit # ftpquota --create-table --type=tally # chown proftpd.nogroup ftpquota*
Добавляем квоту в 10 мегабайт для пользователя ftpuser, рестартим сервер и проверяем
# ftpquota --add-record --type=limit --quota-type=user --name=ftpuser --bytes-upload=10 --units=Mb
В proftpd.log
2019-09-17 11:27:12,519 ds01 proftpd[27732] 195.201.243.70 (5.187.65.81[5.187.65.81]): notice: user ftpuser: aborting transfer: Disk quota exceeded
В quota.log
2019-09-17 11:27:12,510 mod_quotatab/1.3.1[27732]: quotatab write(): limit exceeded, returning Disk quota exceeded 2019-09-17 11:27:12,519 mod_quotatab/1.3.1[27732]: STOR: quota reached: used 10.00 of 10.00 upload Mb 2019-09-17 11:27:12,521 mod_quotatab/1.3.1[27732]: STOR: quota reached: '1559912015.15913.wav' removed
Прокатило. Заливка файла остановилась.
Текущие квоты можно посмотреть так
# ftpquota --show-records --type=limit ------------------------------------------- Name: ftpuser Quota Type: User Per Session: False Limit Type: Hard Uploaded bytes: 10485760.00 Downloaded bytes: unlimited Transferred bytes: unlimited Uploaded files: unlimited Downloaded files: unlimited Transferred files: unlimited