找回密码
 立即注册
首页 业界区 安全 【实战记录】使用 wp-cli 恢复/修改 WordPress 密码 ...

【实战记录】使用 wp-cli 恢复/修改 WordPress 密码

痕厄 5 小时前
内容概览:

  • 使用 wp-cli 修改 WordPress 密码
  • docker 常规操作(文件复制、执行 bash 等)

也是好久没写博客了,突发奇想想在自己的 WordPress 站点写一篇博文。
然后我惊讶的发现,我忘记密码了,更糟糕的是,出于安全考虑,我启用了这个:
1.png

汗流浃背了家人们(非常推荐各位安装一下这个插件,看后台这个插件已经帮我阻挡了很多暴力破解密码的尝试了)。
尝试了两次之后是彻底不敢动了,检索了一下重置密码的操作,大概分为以下几种方法:

  • 使用 WordPress 自带的密码重置功能(需要提前做好发信配置)
  • 修改数据库
  • 修改 WordPress 的 php 文件
  • 使用 wp-cli 工具进行修改
其实上述方法到最后都是修改数据库,直接或者使用工具间接的区别而已。
最简单的方法是1和4,2和3都需要直接进行破坏性操作,如果出现什么失误的话会很麻烦(已有的简单工具会比人可信)。但是我没有提前配置好邮件发送的配置,因此只能使用 wp-cli 了。
我的 WordPress 是使用 docker 部署的,理论上镜像中应该包括了 wp-cli,但是我实测确实容器内执行不了 wp 命令。因此我准备在主机中使用 wp-cli
wp-cli 下载地址:https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
我尝试用 curl 下载,但是下载太慢,因此挂梯子下载后上传至主机。
wp-cli 使用可参考:https://juejin.cn/post/7521250468267458611
在切换到 WordPress 站点的目录下尝试运行命令时出现了问题,报错:Error: Error establishing a database connection. MySql我可以确定服务运行正常,因此是连接时出现的问题。
使用命令 cat wp-config.php | grep DB_ 检查 wp-cli 使用的数据库配置,发现了问题。上文提到了我的站点使用 docker 进行部署的,而我的 MySQL 也是用 docker 部署的,因此在站点的数据库配置中使用了别名而非 IP 地址或主机名。因此想要在本机上使用 wp-cli 会很麻烦(我的原则是尽量不修改已有的东西,实际上可以临时修改配置来实现访问)。
最终的解决方案是将 wp-cli 的文件通过 docker 命令 docker cp 复制到容器中再执行 wp user update username --user_pass=newpassword 命令完成了密码的重置。
理论上的最佳实践是创建一个带 wp-cli 的 docker 镜像,相关站点的部署都使用该镜像。

总结:

  • 部署的服务如果有密码恢复功能,最好还是提前配置好(邮件配置等等)
  • 解决问题时尽量少进行破坏性操作,最好不要做“临时修改XX”以及直接操作数据库这样的事情,风险比较大

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册