温馨提示×

linux ftpserver怎样设密码

小樊
50
2026-09-29 09:01:36
栏目: 智能运维

在 Linux 上搭建 FTP 服务器(常见如 vsftpd),“设密码”本质上是给系统用户或虚拟用户设置登录密码。下面按常见场景说明。


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

1. 安装 vsftpd

# Ubuntu / Debian
sudo apt install vsftpd

# CentOS / Rocky / Alma
sudo yum install vsftpd

2. 创建 FTP 用户

sudo useradd -m ftpuser

3. 设置密码(这就是 FTP 密码)

sudo passwd ftpuser

输入两次密码即可。

4. 配置 vsftpd 允许本地用户登录

编辑配置文件:

sudo vim /etc/vsftpd.conf

确保有以下内容:

local_enable=YES
write_enable=YES

5. 重启服务

sudo systemctl restart vsftpd

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


二、限制用户只能 FTP,不能登录系统(更安全)

sudo usermod -s /sbin/nologin ftpuser

如果 vsftpd 报错,可改为:

sudo usermod -s /bin/false ftpuser

三、使用虚拟用户(推荐生产环境)

虚拟用户不属于系统用户,密码单独管理。

1. 创建用户密码文件

sudo vim /etc/vsftpd/vusers.txt

内容:

user1
password1
user2
password2

2. 生成数据库

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

3. 配置 PAM

sudo vim /etc/pam.d/vsftpd

写入:

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

4. vsftpd 配置

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES

重启 vsftpd 即可。


四、常见问题

FTP 登录失败?

  • 防火墙:
sudo ufw allow 21
  • SELinux(CentOS):
sudo setsebool -P ftp_home_dir on

被动模式端口

pasv_min_port=30000
pasv_max_port=31000

总结

  • 系统用户 FTP:useradd + passwd
  • 虚拟用户 FTP:vusers.txt + db_load
  • FTP 密码 = 用户密码(系统或虚拟)

如果你告诉我:

  • 用的 Linux 发行版
  • 用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 是否要 公网 / 云服务器

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

0 踩