配额在vsftpd?

我试图configurationvsftpd的用户磁盘配额

我使用debian上的“quota”包来configurationftp虚拟用户的配额(通过编辑/ etc / fstab和所有东西)。 互联网告诉我,这是vsftpd唯一的解决scheme。

问题是:当一个file upload到ftp服务器时,它的拥有者是ftp:nogroup,所以配额不适用于我的用户,例如bob:bob。

我也尝试chown ftp:bob目标文件夹,并使用bob组的组配额,但我没有工作

所以我直接去了常见问题,没有find这个:)你有这个配额问题的任何解决scheme?

干杯,迈赫迪

以下是您应该设置的步骤:

VSFTPD

创build/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 

接下来创build你的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 

build立你的配额

安assembly额包。

 #apt-get install quota quotatool 

如果它们不存在,请创build以下文件。 这些文件存储您的配额限制:

 #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 

第一个值是软限制,第二个是硬限制。 请注意,如果用户试图加载一个100Mb的文本文件,并且它们已经超过了他们的软限制20Mb,他们的文本文件将被截断20Mb,以保持在200Mb硬限制之下。

检查配额:

 #repquota /home 

如果您希望删除用户的配额,只需将硬限制和软限制设置为“0”即可。

我知道这很多,但应该这样做! 在发布之前,我从零开始经历了这个过程。

帕特里克做了一个很好的指导。 我会加2件事。

1.)quotatool不是强制性的2.)如果你没有为你自己的物理分区的ftp文件夹,你可以使用循环文件。 我这样做,它真的很好

mkdir / usr / loop_device

  • 创build一个50MB的文件fe

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

  • 在其上创build一个文件系统

mkfs.ext4 / usr / loop_device / ld1

  • 为ftp用户创build一个目录

mkdir / home_ftp

  • 挂载Loopdevice吧

  • 将以下条目添加到/ etc / fstab中

/ usr / loop_device / ld1 / home_ftp / ext4 rw,loop,usrquota,grpquota 0 0

我在这里截图:

http://infofreund.de/user_quotas_vsftpd_en/

克里斯

配额只与系统用户一起工作。 所以你需要configurationvsftp来使用系统用户,你不能使用虚拟用户。

编辑

这是一个快速和肮脏的configuration工作:

 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。