在SFTP配置中设置用户配额,通常需结合文件系统配额工具与SSH配置,以下是基于不同系统的操作要点:
一、准备工作
-
安装配额工具
- CentOS:
sudo yum install xfsprogs(针对XFS文件系统)或sudo yum install quota(针对EXT4文件系统)。 - Ubuntu:
sudo apt-get install quota。
- CentOS:
-
检查文件系统支持
运行命令sudo tune2fs -l /dev/sdXY | grep "Default mount options:",确认输出中包含usrquota和/或grpquota选项(sdXY替换为实际分区,如/dev/sda1)。
二、设置用户配额
1. 配置文件系统挂载选项
- 编辑
/etc/fstab,在对应分区挂载选项中添加usrquota,grpquota(以XFS为例):
/dev/sda1 /home xfs defaults,usrquota,grpquota 0 0
保存后执行sudo mount -o remount /home重新挂载。
2. 初始化配额数据库
- 执行命令:
sudo quotacheck -cum /home(-c创建数据库,-u为用户启用,-m为组启用)。
3. 启用配额
- 运行:
sudo quotaon -vug /home(-v显示详情,-u为用户启用,-g为组启用)。
4. 为用户设置具体配额
- 使用
edquota命令编辑用户配额(以用户UID为例):
sudo edquota -u 1001(1001替换为SFTP用户的UID,可通过id命令查看)
在编辑器中设置软限制(soft)和硬限制(hard),单位为KB(如102400为100MB):Disk quotas for user 1001: Filesystem blocks soft hard inodes soft hard /dev/sda1 102400 1048576 1258291 1280 512 1024保存后退出。
三、验证与维护
- 查看配额使用情况:
sudo repquota -a。 - 若需修改配额,重复
edquota步骤即可。
注意事项
- 配额仅对用户通过SFTP访问的文件生效,需确保用户主目录权限正确(如
chown root:root /home/sftpuser)。 - 若使用
chroot限制用户目录(如ChrootDirectory /sftp/%u),需确保配额目录为用户的根目录或其子目录。