在Ubuntu上设置FTP服务器的磁盘配额,可以确保用户不会超出其分配的存储空间。以下是详细步骤:
首先,确保你已经安装了FTP服务器软件和磁盘配额工具。
sudo apt update
sudo apt install vsftpd quota
编辑VSFTPD配置文件以启用配额支持。
sudo nano /etc/vsftpd.conf
找到并修改以下行:
# 启用配额
quota_enable=YES
# 指定配额文件的位置
quota_file=/var/spool/vsftpd/quota.user
# 指定配额日志文件的位置
quota_logfile=/var/log/vsftpd/quota.log
保存并退出编辑器。
编辑/etc/fstab
文件以启用配额支持。
sudo nano /etc/fstab
找到你的FTP用户的主目录所在的文件系统行,并在选项中添加usrquota,grpquota
。例如:
/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
保存并退出编辑器。
重新挂载文件系统以应用配额设置。
sudo mount -o remount /home
初始化配额数据库。
sudo quotacheck -cum /home
启动配额服务并设置为开机自启。
sudo quotaon -vug /home
sudo systemctl enable quotaon
为特定用户设置配额。例如,为用户ftpuser
设置100MB的软限制和120MB的硬限制。
sudo edquota -u ftpuser
在打开的编辑器中,设置以下内容:
Disk quotas for user ftpuser (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 10485760 10485760 12582912 0 0
保存并退出编辑器。
验证配额设置是否生效。
sudo quota -u ftpuser
你应该会看到类似以下的输出:
Disk quotas for user ftpuser (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 10485760 10485760 12582912 0 0
最后,重启VSFTPD服务以应用所有更改。
sudo systemctl restart vsftpd
现在,你的Ubuntu FTP服务器已经配置了磁盘配额,用户将无法超出其分配的存储空间。