在 CentOS 上设置 SFTP 文件夹权限,需要考虑以下几个方面:
- 用户和用户组:首先,你需要创建一个用户和相应的用户组,用于管理 SFTP 访问。例如,创建一个名为
sftpuser
的用户和名为sftpusers
的用户组。
# 创建用户 useradd sftpuser # 创建用户组 groupadd sftpusers
- 配置 SFTP:接下来,你需要安装并配置 OpenSSH 服务器以支持 SFTP。在 CentOS 上,可以使用以下命令安装 OpenSSH:
sudo yum install openssh-server
编辑 /etc/ssh/sshd_config
文件,确保以下设置已启用(删除或注释掉前面的 #
):
Subsystem sftp /usr/libexec/openssh/sftp-server
- 设置文件夹权限:为了确保 SFTP 用户只能访问特定的文件夹,你需要更改文件夹的所有者和用户组。例如,如果你想让
sftpuser
访问/home/sftpuser
文件夹,可以执行以下命令:
# 更改文件夹所有者 chown sftpuser:sftpusers /home/sftpuser # 设置文件夹权限 chmod 750 /home/sftpuser
这将允许 sftpuser
读取、写入和执行 /home/sftpuser
文件夹中的文件,同时仅限用户组成员可以访问该文件夹。
- 配置 SELinux(可选):如果你的 CentOS 系统启用了 SELinux,你可能需要调整相关的安全策略。例如,你可以创建一个名为
sftpuser_home_t
的 SELinux 上下文,以便sftpuser
能够访问其主目录:
sudo semanage fcontext -a -t sftpuser_home_t "/home/sftpuser(/.*)?" sudo restorecon -Rv /home/sftpuser
完成以上步骤后,重新启动 SSH 服务以应用更改:
sudo systemctl restart sshd
现在,你已经成功设置了 CentOS 上的 SFTP 文件夹权限。用户 sftpuser
应该能够使用 SFTP 访问 /home/sftpuser
文件夹,而其他用户将无法访问。