温馨提示×

如何给linux ftpserver建用户

小樊
37
2026-09-02 05:43:52
栏目: 智能运维

在 Linux 上搭建 FTP 服务器创建 FTP 用户,常见做法有两种:

  • 使用 系统用户(直接用 Linux 账号登录 FTP)
  • 使用 虚拟用户(更安全,推荐用于生产环境)

下面以 vsftpd(最常用) 为例说明。


一、使用系统用户(简单)

1. 安装 vsftpd

# CentOS / RHEL
yum install -y vsftpd

# Ubuntu / Debian
apt install -y vsftpd

2. 创建 FTP 用户

useradd -m ftpuser
passwd ftpuser

3. 限制用户只能 FTP(不能登录系统,可选)

usermod -s /sbin/nologin ftpuser

4. 设置 FTP 目录

mkdir -p /home/ftpuser/ftp
chown ftpuser:ftpuser /home/ftpuser/ftp

5. 启动 vsftpd

systemctl start vsftpd
systemctl enable vsftpd

✅ 此时可用 ftpuser / 密码 登录 FTP


二、使用虚拟用户(推荐)

1. 安装依赖

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

# Ubuntu
apt install -y vsftpd libpam-pwdfile

2. 创建虚拟用户文件

vim /etc/vsftpd/virtual_users.txt

内容:

ftpuser1
123456
ftpuser2
abcdef

3. 生成用户数据库

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

4. 配置 PAM

vim /etc/pam.d/vsftpd

注释原有内容,加入:

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

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

useradd -d /home/ftpdata -s /sbin/nologin vftp

6. 修改 vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

关键配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=vftp
virtual_use_local_privs=YES
chroot_local_user=YES
allow_writeable_chroot=YES

7. 重启服务

systemctl restart vsftpd

三、常见问题

FTP 无法登录?

  • 防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
  • SELinux:
setsebool -P ftpd_full_access on

被动模式(PASV)?

vsftpd.conf 添加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

如果你能告诉我:

  • 使用的是 CentOS / Ubuntu / 其他
  • 系统用户还是虚拟用户
  • 是否要 只读 / 可写 / 多用户隔离

我可以直接给你一套可复制的配置

0