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

Квоты в vsftpd?

Я пытался настроить дисковые квоты пользователя для 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

  • Создайте файл размером 50 МБ, например.

dd if = / dev / zero of = / usr / loop_device / ld1 bs = 1024 count = 50000

  • Создайте на нем файловую систему

mkfs.ext4 / usr / loop_device / ld1

  • Создайте каталог для пользователя ftp

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.