温馨提示×

linux vsftp如何建用户

小樊
45
2026-10-18 11:54:08
栏目: 智能运维

在 Linux 下使用 vsftpd 创建 FTP 用户,常见做法有两种:


一、使用系统用户(最简单,推荐新手)

1. 安装 vsftpd

# CentOS / Rocky / Alma
yum install vsftpd -y

# Ubuntu / Debian
apt install vsftpd -y

2. 创建 FTP 用户

useradd -m ftpuser
passwd ftpuser

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

usermod -s /sbin/nologin ftpuser

4. 设置 FTP 目录权限

chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

5. 修改 vsftpd 配置

编辑 /etc/vsftpd/vsftpd.conf(CentOS)或 /etc/vsftpd.conf(Ubuntu)

anonymous_enable=NO
local_enable=YES
write_enable=YES

6. 启动 vsftpd

systemctl restart vsftpd
systemctl enable vsftpd

✅ 此时可用 ftpuser 登录 FTP


二、使用虚拟用户(更安全,适合多用户)

1. 安装依赖

# CentOS
yum install vsftpd pam* db4* -y

# Ubuntu
apt install vsftpd libpam-pwdfile -y

2. 创建虚拟用户文件

vim /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

vim /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

6. 配置 vsftpd

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

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

mkdir /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/user1
local_root=/home/ftproot/user1
write_enable=YES
mkdir -p /home/ftproot/user1
chown -R vftp:vftp /home/ftproot

8. 重启服务

systemctl restart vsftpd

三、常见问题

  • 登录 530 错误:PAM 配置错误或密码错
  • 500 OOPS:家目录权限问题
  • 被动模式连不上:需配置 pasv_address 和防火墙

如果你告诉我:

  • 系统版本(CentOS / Ubuntu)
  • 是否要 多用户隔离
  • 是否 只允许上传/下载

我可以给你一份可直接用的配置。

0 踩