在Ubuntu上设置FTP服务器的磁盘配额可以帮助你控制用户对文件系统的使用,防止某个用户或组占用过多的磁盘空间。以下是设置磁盘配额的步骤:
首先,确保你已经安装了quota包。你可以使用以下命令来安装它:
sudo apt update
sudo apt install quota
/etc/fstab 文件为了使配额在系统启动时自动启用,你需要编辑 /etc/fstab 文件。找到你的文件系统条目,并添加 usrquota 和/或 grpquota 选项。
例如,如果你的文件系统是 /dev/sda1,你可以这样编辑:
sudo nano /etc/fstab
找到类似以下的行:
/dev/sda1 / ext4 defaults 0 1
修改为:
/dev/sda1 / ext4 defaults,usrquota,grpquota 0 1
保存并退出编辑器。
为了使更改生效,你需要重新挂载文件系统:
sudo mount -o remount /
使用以下命令启用用户和组的配额:
sudo quotacheck -cum /
-c 选项表示创建配额文件。-u 选项表示为用户启用配额。-m 选项表示为组启用配额。启动配额服务以使配额生效:
sudo quotaon -ug /
-u 选项表示为用户启用配额。-g 选项表示为组启用配额。你可以使用 edquota 命令来配置用户的配额限制。例如,为用户 username 设置配额:
sudo edquota -u username
这将打开一个文本编辑器,你可以在其中设置软限制和硬限制。例如:
Disk quotas for user username (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 10240 5120 61440 100 120
blocks 表示磁盘块数。inodes 表示文件数。保存并退出编辑器。
你可以使用以下命令来验证配额设置:
quota -u username
这将显示用户 username 的配额信息。
确保你的FTP服务器(如vsftpd)配置正确,并且允许配额功能。对于vsftpd,你可能需要编辑 /etc/vsftpd.conf 文件并确保以下行存在:
quota_enable=YES
quota_file=/var/spool/vsftpd/quota.user
然后重启vsftpd服务:
sudo systemctl restart vsftpd
通过以上步骤,你应该能够在Ubuntu上成功设置FTP服务器的磁盘配额。