服务器FTP账号密码的默认存放位置是服务端软件配置文件和面板控制台,绝大多数情况下不需要从操作系统层强行破解,按下面三种路径查找就能定位。
ftp账号密码保存在哪里?按托管方式逐层查找
要搞清楚FTP凭证的去向,先要明确服务器属于哪一类托管环境,不同环境下,凭证的存储机制完全不同。
云服务器自建FTP服务
自己装的Linux服务器,FTP账号密码存放在系统账户和vsftpd配置里,具体分两种情况。
- 系统用户方式:FTP账号就是Linux系统用户,密码是系统的登录密码,查看方式是用
cat /etc/passwd确认账号列表,但密码是哈希加密的,存储在/etc/shadow文件中,无法直接反查明文。 - 虚拟用户方式:vsftpd配置了虚拟用户后,账号密码通常写在
/etc/vsftpd/virtual_users.txt或数据库表中,执行cat /etc/vsftpd/vsftpd.conf,找到user_config_dir参数,就能定位到密码文件的实际路径。
宝塔面板或同类管理工具
使用宝塔面板管理的服务器,FTP账号密码在面板后台直接可见,登录宝塔后台,点击左侧“FTP”菜单,页面会展示所有FTP账号列表,点击对应账号的“密码”列,会弹出明文密码,这里有个细节宝塔的FTP密码默认是随机生成的,如果你当初没有自定义,那么密码就是那一串随机字符,直接复制使用即可。
云服务商提供的托管FTP
简米云、酷番云等厂商的云虚拟主机,FTP凭证一般在控制台的“主机管理”或“文件管理”页签里,登录云厂商控制台,找到对应主机实例,点击“管理详情”,FTP地址、账号和密码以明文形式展示,部分厂商支持一键重置密码。
linux服务器查询ftp账号密码的三条具体命令路径
这里的“密码”要区分两种情况:系统账户密码和FTP服务独立管理的密码,两者在服务器上的存储位置完全不同。
查看vsftpd配置定位虚拟用户文件
登录服务器后,执行以下步骤。
# 1. 查看vsftpd主配置 cat /etc/vsftpd/vsftpd.conf # 2. 找出guest_enable或user_config_dir相关行 grep -E 'user_config_dir|guest_enable' /etc/vsftpd/vsftpd.conf # 3. 手动账号文件(老版本)通常路径 cat /etc/vsftpd/login.txt
如果配置中启用了guest_enable=YES,说明使用虚拟用户,虚拟用户的账号数据库如果是文本格式,通常存储在/etc/vsftpd/vuser_passwd.txt
,密码以明文或弱加密格式保存,如果是db_load生成的db文件,则需要用db4_load工具读取。
查系统用户FTP状态
FTP如果允许系统用户登录,账号是传统Linux用户,密码找回需要root权限,用passwd ftpuser直接重置为新密码,不推荐去破解/etc/shadow中的哈希值,耗时且无意义,直接重置是最高效的路径。
查看PureFTPd或其他FTP服务
部分服务器使用PureFTPd,配置文件在/etc/pure-ftpd/目录下,pure-ftpd的虚拟用户密码文件路径可通过cat /etc/pure-ftpd/pureftpd.passwd查询,该文件每行格式为账号:哈希值:UID:GID:目录:范围,密码同样是哈希,不可逆,忘记密码时,使用pure-pw passwd 用户名命令重置。
服务器ftp密码忘了怎么办?重置比找回更实际
行业共识认为,明文密码在服务器上基本不存在无论哪种FTP服务,出于安全考虑都只存储加密后的密码哈希,查看密码”在多数实际运维场景中,操作上等价于“重置密码”。
通过控制面板重置
宝塔面板重置FTP密码的路径是:FTP管理页面 → 点击对应账号右侧的“重置密码”按钮 → 输入新密码或自动生成,整个过程10秒内完成,无需登录服务器执行命令。
云虚拟主机重置路径:控制台 → 主机管理 → 更多操作 → 重置FTP密码,简米云和酷番云均支持此操作,重置后新密码即时生效。
命令行重置密码
Debian或Ubuntu系统重置vsftpd系统用户密码。
passwd ftpuser
CentOS或RHEL系统重置PureFTPd虚拟账户。
pure-pw passwd ftpuser pure-pw mkdb
执行第二条命令很重要更新虚拟用户数据库后,新密码才会正式生效。
密码正确但登录失败的处理
排除密码错误的情况,FTP登录失败常见原因并非密码问题,防火墙封禁21端口,查firewall-cmd --list-ports;被动模式端口范围未放行,查/etc/vsftpd/vsftpd.conf中的pasv_min_port和pasv_max_port;vsftpd配置了userlist_enable禁止列表,查/etc/vsftpd/user_list。
宝塔面板、云控制台、命令行三种查询方式对比
| 查询方式 | 适用场景 | 能否看明文密码 | 操作难度 | 推荐指数 |
|---|---|---|---|---|
| 宝塔面板FTP管理页面 | 已安装宝塔面板的服务器 | 能 | 极低 | |
| 云服务商控制台 | 云虚拟主机、轻量服务器 | 能 | 低 | |
| Linux命令行查看配置文件 | 裸机自建FTP服务 | 基本不能,为哈希值 | 中 |
面板和云控制台能直接显示明文密码的原因在于,这两个场景下FTP账号由面板或平台统一管理,密码在使用前就生成并记录在数据库中,而裸机自建FTP服务的密码经过加密存储,无法直接反查出明文。
服务器被篡改FTP账号密码的安全排查
排查思路从查看登录日志开始。/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)中记录了所有FTP认证尝试,按时间倒序筛选出近期成功的登录IP。
grep 'ftp' /var/log/secure | grep 'Accepted' | tail -50
对异常的IP做反向解析,追踪来源,如果确认密码被恶意修改,立即执行以下操作:
- 重置root密码和FTP账号密码
- 检查
.bash_history中是否有不明来源的下载或执行指令 - 用
rkhunter或chkrootkit扫描后门程序 - 检查
/etc/init.d/和/etc/rc.local目录下是否有可疑启动项
事发后,建议用netstat -tlnp排查监听端口,留意非业务端口的异常监听,这往往比单纯重置密码更有价值。
FTP账号交接场景下的凭证查询方法
接手他人管理的服务器时,查找FTP凭证的优先级顺序应该是:服务商控制台 → 面板后台 → 服务器配置文件 → 工作交接文档,这是按效率决定的顺序控制台最快,配置文件最慢。
交接场景下还可能遇到一种情况:原管理员在面板中创建了FTP账号,但服务器上的目录权限没有正确分配,导致新账号能登录却读不到文件,此时在Linux中执行chown -R ftpuser:ftpuser /你的网站目录来修正所有权。
如果服务器本来就属于托管服务商(例如租用的虚拟主机),FTP账号和密码在购买时的开通邮件中,翻找邮件记录往往比登录控制台更直接。
FTP账号权限与安全建议
系统用户与虚拟用户的选择
- 虚拟用户更安全:虚拟账户仅能访问指定的目录,隔离性好;系统用户则拥有完整的shell权限,一旦密码泄露,攻击者可以直接接管服务器。
- 只开放必要的端口:FTP默认21端口,尽可能改为非标准端口;启用FTPS或SFTP协议替代明文传输,避免密码在链路上被截获。
密码本身的操作习惯
不要在不同服务器上复用同一组FTP密码,一次密码泄露,攻击者会尝试用它登录其他端口和服务,密码至少16位,混合大写字母、数字和符号,定期轮换也是常见做法实际运维中不少团队每个月更换一次FTP密码。
查看账号列表并清理僵尸账号
每隔一段时间执行awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd,对系统用户列表做一次核对,已经离职的人员账号、项目中已不存在的FTP账号,应当及时删除或禁用,很多管理不善的服务器,最后被入侵的原因不是强密码被破解,而是长期无人使用的旧账号被人利用。
Q&A:服务器FTP账号密码相关问题解答
为什么我按照教程在/etc/vsftpd/目录下找不到密码文件?
答:vsftpd使用虚拟用户时,密码文件路径由vsftpd.conf中的user_config_dir参数指定,默认并不位于/etc/vsftpd/目录,多数云镜像预装的vsftpd并未开启虚拟用户模式,而是直接使用系统账户,此时FTP密码就是Linux系统用户的密码,存储在/etc/shadow中,格式为哈希值,无法直接查看明文。
用面板创建的FTP账号在服务器命令行中直接改密码,会导致面板数据不一致,如何处理?
答:该操作会导致面板后台显示的密码与新设置的密码不一致,正确做法是通过面板自身的重置密码功能修改,或者到服务器上修改系统密码后,同步在面板界面中更新记录,如果已发生数据不一致,到面板的FTP管理页面重新设置一次密码即可恢复同步。
FTP密码正确,但登录时报530 login incorrect错误,如何排查?
答:确认FTP账号所对应的系统用户是否存在,/etc/passwd中没有该用户则必然报错,检查/etc/vsftpd/user_list和/etc/vsftpd/ftpusers中是否包含该用户名,两个文件均用于限制或禁止特定用户登录,最后查看/var/log/secure中该账号的认证日志,明确报错原因。
FTP账号密码的查找路径取决于服务器的搭建方式和环境选型面板或云控制台是最快的入口,纯命令行环境则需要从配置文件和系统账户两个方向验证,忘密码时直接重置,可节省大量排查时间,对任何服务器行为,保持“最小权限、定期轮换、协议加密”这三个习惯,才是账号安全最基础的保障。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/762959.html





