将WP-CLI交给AI前的准备|权限、备份与测试环境

旅宿主人在允许AI操作网站前,确认专用密钥与权限、可恢复备份,以及正式和测试环境分离的插画 AI 网站管理

仅仅让WP-CLI能够使用,就开始请Codex或Claude Code操作正式网站,还太早。

WP-CLI不仅能确认文章,也具备发布、删除、插件更新、设置变更与数据库操作等功能。除了仔细写好委托AI的文字,也须从技术上缩小可执行的权限与路径,先准备即使失败也能恢复的状态。

本文依照负责人、权限、备份、测试环境、批准、记录的顺序,确认将WP-CLI交给AI前应备妥的事项。

没有准备就开始,会发生什么

例如委托「整理旧文章」时,人可能期待得到列表建议,AI却可能解读为包含更新或删除的工作。若弄错目标网站或WordPress位置,也可能以为正在操作测试环境,实际却变更了正式环境。

问题不只来自AI。管理者自己的模糊委托、旧作业手册、权限设置错误、备份损坏与插件行为,也可能是原因。因此,目标不是「AI不会出错」,而是即使出错,影响也不会扩大,能在途中停止并恢复。

准备工作的全貌

确认负责人与合同范围
  ↓
辨识正式与测试环境
  ↓
准备专用连接路径与最小权限
  ↓
取得备份并测试恢复
  ↓
决定允许操作与批准界线
  ↓
在测试环境确认允许与拒绝
  ↓
在正式环境从只读开始

租用主机提供SSH与WP-CLI的范围,由合同方案决定。使用VPS时,管理者须设计OS用户、文件所有者、Web服务器、PHP与数据库的配置。若不清楚自己的合同方式,请先确认租用主机与VPS的差异。

1. 确认谁是负责人

首先,明确列出以下负责人。

  • 管理服务器合同的人
  • WordPress管理者
  • 批准文章内容与发布的人
  • 发生故障时进行恢复的人
  • 委托网站制作公司或维护公司的范围

即使旅宿主人能批准文章,也不一定能变更服务器设置。与网站制作公司仍有合同时,通过其他方式变更主题或插件,也可能超出维护范围。

请AI「调查能否使用」,与「若未安装就安装」,是不同的许可。应分开调查、本地准备与正式环境变更。

2. 让正式与测试环境容易辨识

正式与测试环境若外观相同、名称相同或URL相似,就容易弄错目标。

  • 正式与测试环境使用不同URL
  • 管理后台加入能辨识「测试环境」的标示
  • 由管理端固定WP-CLI目标路径与URL
  • 不让测试环境出现在搜索结果,也限制外部访问
  • 不从测试环境发送邮件给真实旅客
  • 订房与付款采用测试模式,或阻止提交的配置

若要将正式资料复制至测试环境,不要原样带入订房者姓名、联系方式、询问内容与付款相关信息。应限于必要范围,删除或替换个人信息。

无法创建测试环境时

合同不允许创建测试环境时,应降低作业风险。

  • 从只读确认开始
  • 新文章只创建一篇草稿
  • 发布前确认管理后台预览
  • 不变更主题、插件、DB或订房功能
  • 影响较大的工作委托维护人员

不要因为「没有测试环境」,就「在正式环境全部试一次」。

3. 将权限分成三层

AI操作WordPress时,权限不只一种。

连接权限

这是SSH密钥、连接来源、使用时间、端口转发与交互式Shell等进入服务器的入口权限。不要把平常管理者使用的密钥直接共用给AI,应区分用途。不将密码或私钥的内容贴进聊天。

OS与文件权限

这是连接用户能执行哪些命令、读写哪些文件的权限。不要让AI以root或可操作整台服务器的用户执行WP-CLI。

WordPress官方安全说明也提出,不要让过多文件可写入,只对必要位置授权的做法。文件所有者与执行方式会因环境而异,因此不要因权限错误就一律改成777。

WordPress权限

WordPress有管理者、编辑者、作者与贡献者等角色。官方资料说明,编辑者能发布与管理包括其他用户的文章,而贡献者虽能撰写自己的文章,却不能发布。

若目的只是创建文章草稿,应确认是否真的需要能变更插件、主题、用户与网站设置的管理者权限。不过,即使降低WordPress权限,若在OS层仍能自由操作WordPress文件或数据库,也不能算充分限制。三层须一起考虑。

WP-CLI的--user是指定WordPress用户、设置处理情境的参数。不要将它视为会依该角色强制限制所有WP-CLI命令的机制,主要防线应是OS权限与后述的允许清单。

4. 固定WP-CLI的目标与执行路径

WP-CLI的全局参数可以指定目标路径、URL、远程连接目的地、WordPress用户与预先加载的PHP等。虽然方便,但若能从外部自由变更,可能导致操作另一个网站或执行代码。

以下项目由管理者固定。

  • WP-CLI可执行文件
  • WordPress位置
  • 目标URL
  • 执行的OS用户与WordPress用户
  • 允许的子命令与选项
  • 一次可操作的件数

不要自由提供原始wp命令给AI,应以受限包装程序作为入口。

5. 备份要确认到「能恢复」

备份的目的不是保存,而是在出问题时能还原。

  • WordPress数据库
  • wp-content内的图片、主题与插件
  • 本次变更的Web服务器、PHP等设置
  • 备份取得时间与目标环境
  • 压缩包能否读取与校验码
  • 恢复步骤、所需时间与负责人

只新增文章,与变更插件或服务器设置,所需备份并不相同。若备份范围小于变更范围,就无法恢复。

可以的话,在正式环境以外的位置进行恢复测试。至少检查压缩包能否开启、能否确认数据库备份完成,以及是否包含必要文件。

6. 决定AI的停止条件

作业前先决定,遇到以下情况,不追加操作而停止。

  • 无法辨识目标网站,以及正式或测试环境
  • 最新备份失败,或恢复方法不明
  • 预计执行的命令包含未许可的变更或删除
  • 目标件数超出委托
  • WordPress位置、文章ID或URL与预期不同
  • 执行结果出现错误、警告或超时
  • 发布后HTTP响应为4xx或5xx
  • 怀疑影响订房、询问或付款

错误后继续叠加其他修正,可能让原因与变更范围变得不清楚。应先停下,回报目前状态与能否恢复。

7. 在测试环境也试验「拒绝」

不只确认正常运作,也要确认能阻止未许可操作。

  • 许可的状态确认成功
  • 未知操作名称被拒绝
  • 额外参数被拒绝
  • 多笔变更被拒绝
  • 没有批准就不会发布或删除
  • 无法指定其他WordPress路径或URL
  • 不包含秘密信息地记录执行结果与失败

即使把测试环境成功的设置导入正式环境,只要用户、所有者、插件或URL不同,结果未必相同。在正式环境仍要重新从只读开始。

导入前检查清单

  • 已确认合同方式与维护范围
  • 已决定作业负责人、发布批准者与恢复负责人
  • 能通过URL与标示区分正式和测试环境
  • 测试资料没有留下旅客个人信息
  • 已区分AI专用连接路径与执行用户
  • 没有直接交付root或平常管理者的权限
  • 已依工作内容配置WordPress权限
  • 已固定WP-CLI目标路径、URL与命令
  • 已确认备份内容与完整性
  • 已确认恢复方法与负责人
  • 已区分允许操作与需要人批准的操作
  • 已决定错误时的停止条件
  • 已在测试环境试过允许与拒绝
  • 正式环境的第一项工作设置为只读

只要有一项无法判断,就不要让AI推测设置,应向服务商或管理者确认。

给AI的准备确认提示词

请审查通过WP-CLI变更这个WordPress前的准备状态。

本次只进行只读调查,不要安装、变更权限、
变更设置、创建文章、更新或删除。

确认项目:
- 目标是正式还是测试环境
- 服务器合同方式与维护范围
- WP-CLI能否使用及目标网站
- 连接、OS与WordPress各层权限
- 备份取得范围、完整性与恢复方法
- 许可操作与需要人批准的操作
- 错误时的停止条件

不要显示秘密信息、用户信息或内部设置值,
请分成已确认、未确认与应向管理者询问的项目回报。

这项委托是为了调查。不要由AI推测填补未确认事项,应由人确认。

总结

将WP-CLI交给AI前,不是准备一个权限强大的管理者账号,而是将连接、OS与WordPress三层权限分别限于必要范围。接着辨识正式与测试环境,准备可恢复的备份、批准界线与停止条件。

准备完成后,先通过不进行变更的WP-CLI入门,只读确认文章、插件、主题与分类。初次认识WP-CLI的人可阅读WP-CLI基础与安全起步方法;技术性的执行限制请参考受限包装程序制作方法。实际发布流程则在从备份到HTTP与显示确认中解说。

参考资料

※服务器与WordPress权限、备份与测试环境的建立方式,会因服务商而异。请优先遵循既有维护合同与官方手册。

已复制标题与网址