以下是针对RHEL 9.5系统安装和配置FTP服务器(vsftpd
)并创建新用户的完整步骤,确保新用户能够成功登录:
步骤 1: 更新系统
确保系统软件包最新:
sudo dnf update -y
步骤 2: 安装 vsftpd
使用 dnf
安装 vsftpd
:
sudo dnf install vsftpd -y
步骤 3: 启动并启用 vsftpd 服务
启动服务并设置开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
步骤 4: 配置防火墙
允许FTP流量通过防火墙:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
步骤 5: 创建新用户
创建一个新用户(例如 ftpuser
),并为其设置密码:
sudo adduser ftpuser
sudo passwd ftpuser
按提示输入并确认密码。
步骤 6: 配置 vsftpd
编辑 /etc/vsftpd/vsftpd.conf
配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
确保以下配置项正确:
anonymous_enable=NO # 禁用匿名访问
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许写入操作
chroot_local_user=YES # 限制用户在其主目录内
allow_writeable_chroot=YES # 允许写入chroot目录
userlist_enable=YES # 启用用户列表控制
userlist_deny=NO # 只允许user_list中的用户登录
步骤 7: 配置用户访问权限
将新用户添加到 /etc/vsftpd/user_list
文件中:
echo "ftpuser" | sudo tee -a /etc/vsftpd/user_list
步骤 8: 调整用户目录权限
确保用户主目录权限正确(例如 /home/ftpuser
):
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
如果需要上传文件,为用户创建可写目录:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 755 /home/ftpuser/upload
步骤 9: 关闭 SELinux(临时解决方案)
SELinux 可能阻止 FTP 访问,临时关闭以测试:
sudo setenforce 0
若需永久关闭,编辑 /etc/selinux/config
:
sudo vi /etc/selinux/config
将 SELINUX=enforcing
改为 SELINUX=disabled
。
步骤 10: 重启 vsftpd 服务
应用配置更改:
sudo systemctl restart vsftpd
步骤 11: 测试连接
使用 Linux 客户端
安装 ftp
工具(如果未安装):
sudo dnf install ftp -y
连接服务器(替换 IP地址
为实际服务器IP):
ftp IP地址
输入用户名 ftpuser
和密码进行测试。
使用 Windows 客户端
使用 FileZilla 或资源管理器:
- 打开 FileZilla。
- 在主机栏输入
ftp://IP地址
。 - 输入用户名
ftpuser
和密码。 - 点击“快速连接”测试。
常见问题排查
530 错误(认证失败)
- 检查用户名和密码是否正确。
- 确保用户已添加到
/etc/vsftpd/user_list
。 - 检查
userlist_deny=NO
是否已设置。
425 错误(无法建立数据连接)
- 确认防火墙已允许 FTP 端口(21)。
- 检查
passive_mode
配置(如需被动模式,需配置pasv_min_port
和pasv_max_port
)。
权限问题
- 确保用户主目录权限为
755
。 - 检查
chroot_local_user=YES
和allow_writeable_chroot=YES
是否启用。
- 确保用户主目录权限为
总结
通过以上步骤,您已成功在 RHEL 9.5 上部署了 FTP 服务器,并配置了一个新用户 ftpuser
。用户可通过该账户登录并访问其主目录(或指定的上传目录)。如果遇到问题,请优先检查防火墙、SELinux 和配置文件权限设置。