温馨提示×

centos ftpserver怎样添加用户

小樊
43
2026-10-14 20:08:25
栏目: 智能运维

在 CentOS 上搭建 FTP 服务器(以 vsftpd 为例) 时,添加 FTP 用户通常有两种方式:


一、使用系统用户作为 FTP 用户(最简单)

1. 安装 vsftpd

yum install -y vsftpd

2. 启动并设置开机自启

systemctl start vsftpd
systemctl enable vsftpd

3. 创建 FTP 用户

useradd -m ftpuser
passwd ftpuser

4. 限制用户只能 FTP 登录(不能 SSH)

usermod -s /sbin/nologin ftpuser

5. 设置 FTP 目录权限

chown -R ftpuser:ftpuser /home/ftpuser

✅ 默认 vsftpd 允许系统用户登录 FTP


二、使用虚拟用户(更安全,推荐生产环境)

1. 安装依赖

yum install -y vsftpd pam* db4*

2. 创建虚拟用户文件

vi /etc/vsftpd/vusers.txt

内容:

user1
123456
user2
654321

3. 生成用户数据库

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

4. 配置 PAM

vi /etc/pam.d/vsftpd

注释原有内容,添加:

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

5. 创建虚拟用户映射的系统用户

useradd -d /home/ftproot -s /sbin/nologin vftp
chmod 755 /home/ftproot

6. 修改 vsftpd 配置

vi /etc/vsftpd/vsftpd.conf

关键配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=vftp
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/user_conf

7. 为每个虚拟用户单独配置

mkdir /etc/vsftpd/user_conf
vi /etc/vsftpd/user_conf/user1

示例:

local_root=/home/ftproot/user1
write_enable=YES
mkdir -p /home/ftproot/user1
chown -R vftp:vftp /home/ftproot/user1

8. 重启服务

systemctl restart vsftpd

三、防火墙 & SELinux

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

setsebool -P ftp_home_dir on

常见说明

  • 系统用户:简单,适合内部使用
  • 虚拟用户:安全,适合对外 FTP 服务

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用的是 vsftpd / proftpd / pure-ftpd
  • 是否允许上传、是否限制目录

我可以给你更精确的配置示例。

0 踩