centos

如何在CentOS上为SFTP用户设置配额

小樊
47
2025-10-05 00:46:18
栏目: 智能运维

在CentOS上为SFTP用户设置配额,可以使用quota工具来实现。以下是详细的步骤:

1. 安装quota包

首先,确保你的系统上已经安装了quota包。如果没有安装,可以使用以下命令进行安装:

sudo yum install quota

2. 启用quota

编辑/etc/fstab文件,为需要设置配额的分区添加usrquotagrpquota选项。例如,如果你要对/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

3. 初始化quota数据库

使用quotacheck命令初始化quota数据库:

sudo quotacheck -cum /home

4. 启动quota服务

启动quota服务并设置为开机自启:

sudo systemctl start quotaon
sudo systemctl enable quotaon

5. 设置用户配额

使用edquota命令为用户设置配额。例如,为用户username设置软限制和硬限制:

sudo edquota -u username

在打开的编辑器中,你可以设置以下参数:

例如:

Disk quotas for user username (uid 1001):
  Filesystem blocks soft hard inodes soft hard
/dev/sda1       10485760  5242880  67108864     1000    2000

保存并退出编辑器。

6. 验证配额设置

使用quota命令查看用户的配额信息:

quota -u username

7. 配置SFTP用户

确保你的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

8. 创建SFTP用户组并添加用户

创建一个SFTP用户组,并将需要使用SFTP的用户添加到该组:

sudo groupadd sftpusers
sudo usermod -aG sftpusers username

确保用户的shell设置为/sbin/nologin/bin/false,以防止用户通过SSH登录:

sudo usermod -s /sbin/nologin username

9. 测试SFTP配额

使用SFTP客户端连接到服务器,并尝试上传文件以测试配额是否生效。

通过以上步骤,你可以在CentOS上为SFTP用户设置配额。

0
看了该问题的人还看了