在CentOS系统中设置SFTP共享文件夹,可以按照以下步骤进行:
1. 安装必要的软件包
首先,确保你的系统已经安装了openssh-server
和vsftpd
(如果需要使用vsftpd作为FTP服务器)。你可以使用以下命令来安装它们:
sudo yum install openssh-server vsftpd
2. 配置SSH服务器
编辑SSH配置文件/etc/ssh/sshd_config
,确保以下配置项存在并且没有被注释掉:
Subsystem sftp internal-sftp
然后重启SSH服务以应用更改:
sudo systemctl restart sshd
3. 创建SFTP用户
创建一个专门用于SFTP的用户,并设置其主目录和权限。例如:
sudo adduser sftpuser sudo passwd sftpuser
按照提示设置密码。
4. 配置SFTP用户的主目录
编辑用户的shell配置文件/etc/passwd
,将用户的shell改为/sbin/nologin
或/bin/false
,以防止用户通过SSH登录:
sftpuser:x:1001:1001::/home/sftpuser:/sbin/nologin
5. 设置SFTP用户的主目录权限
确保SFTP用户的主目录及其子目录的权限设置正确,以便SFTP服务器可以访问:
sudo chown root:root /home/sftpuser sudo chmod 755 /home/sftpuser
6. 创建共享文件夹
创建一个共享文件夹,并设置适当的权限:
sudo mkdir /home/sftpuser/shared sudo chown sftpuser:sftpuser /home/sftpuser/shared sudo chmod 755 /home/sftpuser/shared
7. 配置SELinux(如果启用)
如果你的系统启用了SELinux,可能需要调整SELinux策略以允许SFTP访问共享文件夹。你可以使用以下命令来临时禁用SELinux进行测试:
sudo setenforce 0
或者,你可以创建一个SELinux策略模块来允许SFTP访问共享文件夹:
sudo ausearch -c 'sftp' --raw | audit2allow -M my-sftp sudo semodule -i my-sftp.pp
8. 测试SFTP连接
使用SFTP客户端连接到服务器,测试是否可以访问共享文件夹:
sftp sftpuser@your_server_ip
输入密码后,你应该能够看到共享文件夹/home/sftpuser/shared
。
9. 配置防火墙(如果需要)
确保防火墙允许SFTP连接(默认端口22):
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
完成以上步骤后,你应该能够在CentOS系统上成功设置SFTP共享文件夹。