FTP服务器怎么设置磁盘配额(进阶教程)

公司里经常要共享文件,很多人用FTP服务器来传资料。时间一长,有些同事上传一堆视频、大文件,占满了硬盘,结果别人连文档都存不进去。这时候就得给FTP用户设个磁盘配额,一人一块地,谁也不能乱占。

先确认系统支持配额功能

大多数Linux系统的FTP服务基于vsftpd或ProFTPD,而磁盘配额主要靠操作系统的quota功能来控制。首先要确保你的服务器文件系统开启了user quota支持。比如你的FTP用户是独立的系统账户,就可以通过以下步骤开启:

编辑 /etc/fstab 文件,找到对应分区(通常是根分区或/home),在挂载选项里加上 usrquota,例如:

/dev/sda1  /  ext4  defaults,usrquota  0  1

保存后重启系统,或者重新挂载分区并运行 quotacheck -cum / 来生成配额文件。

启用和初始化磁盘配额

运行下面命令开启配额:

quotaon /

然后给某个用户设置最大空间限制。比如你想让ftpuser最多只能用500MB空间:

edquota -u ftpuser

这个命令会打开编辑器,找到 blocks 那一行,修改软限制(soft)和硬限制(hard)为 512000(单位是KB,500×1024=512000)。保存退出就行。

配合FTP服务生效

只要用户的系统配额设好了,不管他通过FTP还是本地登录,超出限制就无法再写入文件。vsftpd本身不直接管理配额,但依赖系统层面的限制,所以用户上传到一半失败,很可能就是触碰了磁盘配额。

查看当前使用情况

随时可以查某人用了多少空间:

quota -u ftpuser

输出会显示当前使用的块数和限制值,一眼就能看出有没有超。

有次我们团队做项目,临时开了几个FTP账号给外包人员传图,每人限500MB。结果有人想偷懒,把整个备份库塞进来,系统直接拒绝,提醒“磁盘配额 exceeded”,反而帮我们避开了数据混乱的问题。

其实设配额不难,关键是在问题发生前动手。尤其多人共用服务器时,提前规划好每个人的空间,比出事后再清理省心得多。