在CentOS上为SFTP用户设置配额,可以使用quota工具来实现。以下是详细的步骤:
首先,确保你的系统上已经安装了quota包。如果没有安装,可以使用以下命令进行安装:
sudo yum install quota
编辑/etc/fstab文件,为需要设置配额的分区添加usrquota和grpquota选项。例如,如果你要对/home分区设置配额,编辑/etc/fstab文件:
sudo vi /etc/fstab
找到类似以下的行:
/dev/sda1 /home ext4 defaults 1 2
修改为:
/dev/sda1 /home ext4 defaults,usrquota,grpquota 1 2
保存并退出编辑器。
然后,重新挂载分区以应用更改:
sudo mount -o remount /home
使用quotacheck命令初始化quota数据库:
sudo quotacheck -cum /home
启动quota服务并设置为开机自启:
sudo systemctl start quotaon
sudo systemctl enable quotaon
使用edquota命令为用户设置配额。例如,为用户username设置软限制和硬限制:
sudo edquota -u username
在打开的编辑器中,你可以设置以下参数:
soft:软限制(用户可以使用的最大空间)hard:硬限制(用户可以使用的最大空间,超过此限制将无法写入)inodes:软限制(用户可以创建的最大文件数)inodes hard:硬限制(用户可以创建的最大文件数)例如:
Disk quotas for user username (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 10485760 5242880 67108864 1000 2000
保存并退出编辑器。
使用quota命令查看用户的配额信息:
quota -u username
确保你的SFTP配置允许使用quota。编辑/etc/ssh/sshd_config文件:
sudo vi /etc/ssh/sshd_config
确保有以下配置:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
然后,重启SSH服务以应用更改:
sudo systemctl restart sshd
创建一个SFTP用户组,并将需要使用SFTP的用户添加到该组:
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
确保用户的shell设置为/sbin/nologin或/bin/false,以防止用户通过SSH登录:
sudo usermod -s /sbin/nologin username
使用SFTP客户端连接到服务器,并尝试上传文件以测试配额是否生效。
通过以上步骤,你可以在CentOS上为SFTP用户设置配额。