温馨提示×

如何重置debian vsftp密码

小樊
48
2026-10-25 12:13:36
栏目: 智能运维

在 Debian 上,vsftpd 本身并不管理用户密码,它通常使用系统用户或虚拟用户。因此“重置 vsftp 密码”其实就是重置对应 FTP 账号的密码。下面按常见情况说明。


一、FTP 使用的是系统用户(最常见)

如果你是用系统用户登录 FTP(比如 ftpuser),直接改系统密码即可。

1. 查看 vsftpd 使用的用户

grep -E "local_enable" /etc/vsftpd.conf

如果 local_enable=YES,说明可以使用系统用户。

2. 重置密码

sudo passwd ftpuser

按提示输入新密码即可。

3. 测试登录

ftp localhost

或用 FileZilla 登录测试。


二、FTP 使用的是虚拟用户(vsftpd + PAM)

如果你的 vsftpd 配置了虚拟用户(常见于 virtual_use_local_privs、guest_enable),密码通常存放在:

  • /etc/vsftpd/virtual_users.txt
  • 或数据库(db4 / Berkeley DB)

1. 查看虚拟用户配置

grep -R "guest" /etc/vsftpd.conf
grep -R "pam" /etc/vsftpd.conf

2. 如果是文本 + db 文件

例如:

cat /etc/vsftpd/virtual_users.txt

内容类似:

user1
password1
user2
password2

重置步骤:

sudo nano /etc/vsftpd/virtual_users.txt
# 修改对应用户密码

# 重新生成 db 文件
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

# 修复权限
sudo chmod 600 /etc/vsftpd/virtual_users.db

3. 重启 vsftpd

sudo systemctl restart vsftpd

三、忘记是哪个用户登录的?

查看当前 FTP 登录用户:

sudo tail -f /var/log/vsftpd.log
# 或
sudo journalctl -u vsftpd

四、确认 vsftpd 是否正常运行

sudo systemctl status vsftpd

如果你能贴出:

  • /etc/vsftpd.conf
  • 报错信息
  • 用的是系统用户还是虚拟用户

我可以给你更精确的一步到位命令。

0 踩