温馨提示×

centos ftpserver怎么多用户管理

小樊
45
2026-09-09 01:40:44
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器 并实现 多用户管理,常用方案是 vsftpd + 系统用户/虚拟用户。下面按“从简单到规范”给你讲三种常见做法。


一、使用系统用户(最简单,适合少量用户)

1. 安装 vsftpd

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

2. 创建多个 FTP 用户

useradd ftpuser1
passwd ftpuser1

useradd ftpuser2
passwd ftpuser2

默认这些用户也可以登录系统,若只做 FTP,可加:

useradd -s /sbin/nologin ftpuser1

3. 设置各自目录

mkdir -p /home/ftpuser1
chown ftpuser1:ftpuser1 /home/ftpuser1

4. 配置 vsftpd

编辑 /etc/vsftpd/vsftpd.conf

local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

重启:

systemctl restart vsftpd

✅ 每个用户登录后只能看到自己的目录


二、使用虚拟用户(推荐,适合多用户、安全管理)

虚拟用户 不占用系统账号,更容易管理。

1. 安装依赖

yum install -y vsftpd pam pam-devel db4-utils

2. 创建虚拟用户文件

vim /etc/vsftpd/vusers.txt

内容:

user1
123456
user2
654321

生成数据库:

db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
chmod 600 /etc/vsfts/vusers.db

3. 配置 PAM

vim /etc/pam.d/vsftpd.virtual

内容:

auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

4. 创建虚拟用户映射系统用户

useradd -d /home/ftproot -s /sbin/nologin vftp
mkdir -p /home/ftproot
chown vftp:vftp /home/ftproot

5. 修改 vsftpd 配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=vftp
pam_service_name=vsftpd.virtual
user_config_dir=/etc/vsftpd/user_conf
chroot_local_user=YES
allow_writeable_chroot=YES

6. 为每个虚拟用户单独配置目录

mkdir -p /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/user1

内容:

local_root=/data/ftp/user1
mkdir -p /data/ftp/user1
chown vftp:vftp /data/ftp/user1

三、用户权限管理建议

  • 只读用户
write_enable=NO
  • 限速
local_max_rate=100000
  • 限制登录 IP
tcp_wrappers=YES

在 /etc/hosts.allow 控制


四、防火墙 & SELinux

防火墙

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

SELinux

setsebool -P ftpd_full_access on

五、总结选型

场景 推荐方案
内部少量用户 系统用户
多用户 / 对外 虚拟用户
高安全 虚拟用户 + chroot

如果你愿意,我可以:

  • 给你一份 可直接用的 vsftpd.conf
  • 教你 用脚本批量建 FTP 用户
  • 或换成 SFTP(更安全的替代方案)

你现在是 CentOS 几?准备 对内还是对外 用?

0 踩