Ubuntu FTP服务器存储空间分配指南(以vsftpd为例)
分配FTP服务器存储空间的核心是通过磁盘配额限制用户/组的存储容量,避免单个用户占用过多空间。以下是详细操作步骤:
首先安装vsftpd(FTP服务器)和quota(磁盘配额工具):
sudo apt update
sudo apt install vsftpd quota
编辑/etc/fstab文件,为FTP用户主目录所在的分区添加usrquota(用户配额)和grpquota(组配额)选项。
例如,若FTP主目录为/home,对应分区为/dev/sda1,则修改如下:
/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
保存后重新挂载文件系统以应用更改:
sudo mount -o remount /home
使用quotacheck命令扫描文件系统,生成配额数据库(包含用户/组的磁盘使用记录):
sudo quotacheck -cum /home
参数说明:-c(创建新配额文件)、-u(启用用户配额)、-m(强制检查,即使文件系统已挂载)。
开启配额监控功能,使系统开始跟踪用户/组的磁盘使用:
sudo quotaon -vug /home
参数说明:-v(显示详细信息)、-u(启用用户配额)、-g(启用组配额)。
若需开机自启,运行:
sudo systemctl enable quotaon
编辑vsftpd主配置文件/etc/vsftpd.conf,添加或修改以下参数:
quota_enable=YES # 启用配额支持
quota_file=/var/spool/vsftpd/quota.user # 用户配额文件路径
quota_group_file=/var/spool/vsftpd/quota.group # 组配额文件路径
保存后重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
使用edquota命令为用户或组分配软限制(soft,警告阈值,超后可继续使用但会触发警告)和硬限制(hard,绝对上限,超后无法再写入)。
sudo edquota -u ftpuser
在打开的编辑器中,修改以下内容(单位:1KB=1024字节,100MB=104857600 bytes):
Disk quotas for user ftpuser (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 0 104857600 125829120 0 0 0
blocks:当前已用磁盘块数(无需修改);soft/hard:软/硬限制的磁盘块数。sudo edquota -g ftpgroup
操作逻辑与用户配额一致。
使用quota命令查看用户/组的配额使用情况:
sudo quota -u ftpuser # 查看用户配额
sudo quota -g ftpgroup # 查看组配额
输出示例:
Disk quotas for user ftpuser (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 0 104857600 125829120 0 0 0
blocks:当前已用磁盘空间(KB);soft/hard:软/硬限制(KB)。xfsprogs包(sudo apt install xfsprogs),并在/etc/fstab中添加usrquota,grpquota选项,重新挂载后使用xfs_quota命令管理配额。repquota命令(如sudo repquota /home)查看所有用户的配额使用报告,便于监控。