CentOS为FTP用户设置密码
1. 安装FTP服务器
若未安装FTP服务,推荐使用vsftpd
作为服务器:
sudo yum install vsftpd -y
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
2. 创建FTP专用用户
通过以下命令创建仅用于FTP访问的系统用户:
sudo useradd -d /var/ftp/user1 -s /sbin/nologin user1
参数说明:-d
指定用户家目录,-s
禁止Shell登录以提升安全性。
3. 设置FTP用户密码
使用passwd
命令为账户设置密码:
sudo passwd user1
输入两次符合复杂度要求的密码(建议包含大小写字母、数字及符号)。
4. 配置FTP权限限制
编辑/etc/vsftpd/vsftpd.conf
文件:
sudo vi /etc/vsftpd/vsftpd.conf
确保以下配置生效:
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
创建用户限制列表文件:
sudo echo "user1" >> /etc/vsftpd/chroot_list
5. 重启服务并测试
sudo systemctl restart vsftpd
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
使用FTP客户端工具(如FileZilla)输入IP、用户名及密码验证连接。
安全强化建议
- 禁用匿名登录:设置
anonymous_enable=NO
- 启用日志监控:配置
xferlog_enable=YES
- 限制IP访问:通过
iptables
或firewalld
设置白名单
常见问题排查
连接被拒绝:
- 检查
vsftpd
服务状态:systemctl status vsftpd
- 确认防火墙开放21端口:
firewall-cmd --list-all
目录无法写入:
- 修改目录权限:
sudo chmod 755 /var/ftp/user1
- 关闭SELinux临时测试:
setenforce 0