温馨提示×

centos ftpserver怎样设置用户

小樊
45
2026-09-15 04:29:55
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器 并配置用户,通常使用的是 vsftpd(Very Secure FTP Daemon)。下面给你一套最常见、可用的配置步骤,适合 CentOS 7 / 8 / Stream。


一、安装 vsftpd

yum install -y vsftpd
# 或 CentOS 8 / Stream
dnf install -y vsftpd

启动并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

二、创建 FTP 用户(最常用方式)

1️⃣ 创建系统用户(同时作为 FTP 用户)

useradd ftpuser
passwd ftpuser

设置用户家目录(FTP 登录后默认目录):

usermod -d /home/ftpuser ftpuser

三、配置 vsftpd(关键)

编辑配置文件:

vi /etc/vsftpd/vsftpd.conf

推荐配置(基础可用)

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES

✅ 说明

  • anonymous_enable=NO:禁止匿名登录
  • local_enable=YES:允许系统用户登录
  • chroot_local_user=YES:限制用户只能访问自己的目录
  • allow_writeable_chroot=YES:允许在 chroot 目录中写文件

保存后重启:

systemctl restart vsftpd

四、防火墙和 SELinux(非常重要)

1️⃣ 防火墙

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

2️⃣ SELinux(CentOS 默认开启)

setsebool -P ftp_home_dir on

如果仍有问题:

getsebool -a | grep ftp

五、测试 FTP 登录

本地测试

ftp localhost

或使用 FileZilla

  • 主机:服务器 IP
  • 协议:FTP
  • 加密:普通 FTP
  • 用户:ftpuser
  • 密码:你设置的密码

六、只让 FTP 用,禁止 SSH 登录(可选)

usermod -s /sbin/nologin ftpuser

七、虚拟用户(进阶,可选)

如果你不想创建系统用户,可以用:

  • vsftpd + PAM + 虚拟用户

适合:

  • 多用户 FTP
  • 用户隔离
  • 安全性要求高

需要的话我可以单独写一份 虚拟用户配置教程


八、常见问题速查

问题 原因
530 Login incorrect 用户被 nologin / PAM 限制
500 OOPS chroot 没加 allow_writeable_chroot
无法上传 write_enable=NO
连接超时 防火墙 / SELinux

如果你告诉我:

  • CentOS 版本
  • 是否允许匿名
  • 是否需要多用户 / 只读 / 上传权限

我可以给你定制版配置

0