Я пытался настроить дисковые квоты пользователя для vsftpd.
Я настроил квоты для виртуальных пользователей ftp, используя пакет «quota» в debian (вы знаете, отредактировав / etc / fstab и все такое). Интернет сказал мне, что это единственное решение с vsftpd.
Проблема в следующем: когда файл загружается на ftp-сервер, его владельцем является ftp: nogroup, поэтому квота не применяется к моему пользователю, например, bob: bob.
Я также пытался использовать ftp: bob для целевой папки и использовать групповую квоту для bob group, но у меня не получилось
Я сразу перешел к FAQ и не нашел этого :) У вас есть какое-нибудь решение этой проблемы с квотами?
Ура, Мехди
Вот шаги, которые вы должны предпринять, чтобы это настроить:
VSFTPd
Создайте файл /etc/vsftd.conf
#nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
guest_enable=NO
write_enable=yes
#If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot()
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Затем создайте свой список chroot, чтобы пользователи не могли просматривать за пределами своего домашнего каталога.
#nano /etc/vsftpd.chroot_list
someusernamehere
SSH
Теперь, поскольку у этого пользователя есть реальная учетная запись в системе (дисковые квоты не работают для виртуальных пользователей), вам следует обновить SSH, если он работает. Добавьте следующее в нижней строке и убедитесь, что указанного выше пользователя нет в списке (т.е. перечислите только тех пользователей, которым вы хотите получить доступ к серверу через SSH):
#nano /etc/ssh/sshd_config
AllowUsers username1 username2
Подготовка точек монтирования
Теперь будет устанавливать и включать квоты
Это показывает, как это сделать для каждого пользователя и для каждой группы. Кстати, поддержка квот включена, так как файловые системы смонтированы, поэтому вам нужно будет перезагрузить сервер, когда вы выполните следующие шаги. Пожалуйста, не делайте этого на удаленном компьютере, если вы точно не знаете, что делаете.
Выполните следующие действия как root или используйте sudo:
#nano /etc/fstab
В вашем файле fstab должно быть следующее (usrquota или grpquota). Вот несколько примеров в зависимости от того, как вы установили свой сервер ubuntu:
/dev/hda1 /home ext2 defaults,usrquota 1 1
или
# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home ext4 defaults,usrquota 0 2
или
# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home ext4 defaults,usrquota,grpquota 0 2
Вы можете перемонтировать, перезагрузившись или используя следующий пример:
#mount -o remount,usrquota /home
Проверьте свои крепления:
#mount | grep quota
Загрузите модуль ядра квоты:
#modprobe quota_v2 echo 'quota_v2' >> /etc/modules
Настройка квот
Установите пакет квот.
#apt-get install quota quotatool
Создайте следующие файлы, если они еще не существуют. В этих файлах хранятся лимиты вашей квоты:
#touch /home/aquota.user
#touch /home/aquota.group
#chmod 600 /home/aquota.user /home/aquota.group
включить quatacheck без перезагрузки:
# quotacheck -vagum
Если ваше ядро поддерживает журналируемую квоту, но вы ее не используете, вы, вероятно, получите ошибку. Используйте эту команду в этом случае:
# quotacheck -fvagum
Установите ограничения для пользователя:
#quotatool -u someusername -bq 100M -l '200 Mb' /home
Первое значение - мягкий предел, второе - жесткое ограничение. Обратите внимание, что если пользователь пытается загрузить текстовый файл размером 100 МБ, а его мягкий предел уже превышает 20 МБ, его текстовый файл будет усечен на 20 МБ, чтобы он оставался ниже жесткого ограничения в 200 МБ.
Проверить квоты:
#repquota /home
Если вы когда-нибудь захотите удалить квоту для пользователя, просто установите его жесткие и мягкие ограничения на «0».
Я знаю, что это много, но этого должно хватить! Я прогнал этот процесс с нуля, прежде чем опубликовать его, чтобы убедиться.
Патрик сделал хорошее руководство. Я бы добавил 2 вещи.
1.) quotatool не является обязательным 2.) Если у вас нет собственного физического раздела для ftp-папок, вы можете использовать циклические файлы. Я сделал это, и это действительно хорошо работает
mkdir / usr / loop_device
dd if = / dev / zero of = / usr / loop_device / ld1 bs = 1024 count = 50000
mkfs.ext4 / usr / loop_device / ld1
mkdir / home_ftp
смонтировать устройство Loop it
добавьте следующую запись в / etc / fstab
/ usr / loop_device / ld1 / home_ftp / ext4 rw, цикл, usrquota, grpquota 0 0
Я записал это здесь со скриншотами:
http://infofreund.de/user_quotas_vsftpd_en/
Пока Крис
Квоты работают только с пользователями системы. Итак, вам нужно настроить vsftp для использования системных пользователей, вы не можете использовать виртуальных пользователей.
редактировать :
Вот быстрая и грязная конфигурация, которая работает:
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
anon_mkdir_write_enable=yes
guest_enable=NO
anon_world_readable_only=no
anon_upload_enable=yes
write_enable=yes
chroot_local_user=no
anon_other_write_enable=yes
Затем используйте "quotacheck" для установки квот. Не забудьте добавить параметр "userquota" в свой fstab.