RM安全检查
rm-safety - RM Command Safety Check
by caesaryp
Intercepts risky `rm` commands to assess impact, confirm user intent, and suggest safer alternatives before execution to prevent accidental data loss.
安装
claude skill add --url https://github.com/openclaw/skills文档
Intercepts risky rm commands to assess impact, confirm user intent, and suggest safer alternatives before execution to prevent accidental data loss.
拦截高危 rm 命令,评估影响并确认用户意图,提供安全替代方案,防止误删数据。
Trigger Conditions | 触发条件
Triggered when user requests to execute or agent prepares to execute:
当用户请求执行或我准备执行以下命令时触发:
rm(any arguments | 任何参数)rm -rf/rm -frrm -r/rm -Runlinkshred- Other direct file deletion commands | 其他直接删除文件的命令
Not Triggered | 不触发:
trashcommand (recoverable deletion | 可恢复删除)mvto trash directory | 移动到 trash 目录
Safety Check Flow | 安全检查流程
1. Intercept Command | 拦截命令
When rm command is detected, stop execution immediately and enter confirmation flow.
检测到 rm 命令时,立即停止执行,进入询问流程。
2. Collect Information | 收集信息
Before asking, perform these checks (read-only operations | 只读操作):
Important: Always quote paths to prevent injection | 重要:始终引用路径防止注入
# Check if target exists (quoted path | 引用路径) | 检查目标是否存在
ls -la -- "$path"
# If directory, count contents (safe find | 安全 find) | 如果是目录,统计内容
find -- "$path" -type f 2>/dev/null | wc -l # files | 文件数
find -- "$path" -type d 2>/dev/null | wc -l # directories | 目录数
# Check if inside workspace | 检查是否在 workspace 内
echo "$path" | grep -q ".openclaw/workspace" && echo "⚠️ Inside workspace" || echo "⚠️ Outside workspace"
# Check if critical directory | 检查是否是关键目录
echo "$path" | grep -qE "(Documents|Desktop|Downloads|Pictures)" && echo "⚠️ User critical directory"
# Resolve to absolute path (prevent relative path tricks | 防止相对路径欺骗)
realpath -- "$path" 2>/dev/null || readlink -f -- "$path"
Safety notes | 安全说明:
- Use
--to stop option parsing (prevents-rf /tricks) | 使用--停止选项解析 - Always quote
"$path"(prevents space injection) | 始终引用"$path"防止空格注入 - Redirect stderr
2>/dev/null(suppress errors gracefully) | 重定向 stderr 优雅处理错误
3. Confirmation Format | 询问格式
Must use this format to ask user | 必须使用以下格式询问用户:
🚨 High-Risk Command Confirmation | 高危命令确认
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Command Details | 命令详情
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Command | 命令:rm [full command with arguments | 完整命令及参数]
Working Directory | 执行位置:[current directory | 当前工作目录]
Target Path | 目标路径:[absolute path | 绝对路径]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ Impact Assessment | 影响评估
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ] Will delete X files | 将删除 X 个文件
[ ] Will delete Y directories (Z total items | 将删除 Y 个文件夹 (含 Z 个子项)
[ ] Location | 路径位置:Inside workspace / Outside workspace / User critical directory
[ ] Recoverable via trash | 是否在 trash 可恢复范围:No (rm is permanent | rm 不可恢复)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 Alternatives | 替代方案
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Use trash command → Recoverable in Finder | 使用 trash 命令 → 可在 Finder 恢复
2. Backup before delete | 先备份再删除 → `cp -r <path> <backup>`
3. Move to temp directory | 移动到临时目录 → `mv <path> /tmp/xxx`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❓ Please Confirm | 请确认
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Reply [y] to execute | 回复 [y] 确认执行
Reply [n] to cancel | 回复 [n] 取消
Reply [backup] to backup first | 回复 [backup] 先备份再执行
Reply [trash] to use trash instead | 回复 [trash] 改用 trash 命令
4. User Response Handling | 用户响应处理
| User Reply | Action |
|---|---|
y / yes / 确认 | Execute original command |
n / no / 取消 | Cancel operation |
backup | Backup to /tmp/rm-backup-<timestamp>/ then execute |
trash | Use trash command instead |
Exceptions | 例外情况
Can execute without asking | 无需询问可直接执行:
- User explicitly says "execute without asking" AND path is verified safe | 用户明确说 "不用问了直接执行" 且 路径已验证安全
- Deleting temp files under
/tmp/(created by agent, verified byls -la) | 删除/tmp/下的临时文件(且是我自己创建的,已用ls -la验证) - User provided explicit written permission (same session) AND path matches permission | 用户提供了明确的书面许可(同一会话内)且 路径与许可匹配
Still must ask even if user says not to | 仍需询问即使用户说不用问:
- Deleting entire workspace directory | 删除整个 workspace 目录
- Deleting user home directory (
/Users/caesar/) | 删除用户主目录 - Dangerous commands like
rm -rf /(should refuse directly) | 使用rm -rf /等危险命令(应直接拒绝) - Path contains unescaped special characters (spaces,
;,|,&) | 路径包含未转义的特殊字符
Must refuse directly | 直接拒绝:
rm -rf /orrm -rf /*(system destruction) | 系统级危险命令rm -rf ~orrm -rf /home/*(user data destruction) | 用户数据毁灭- Path resolves to root or system directories | 路径解析为根目录或系统目录
Activation Conditions | 激活条件
This skill activates when:
本 skill 在以下情况自动激活:
- Detects
rm,rm -r,rm -rf,unlink, orshredin exec call | 检测到 exec 调用包含这些命令 - User mentions "delete", "remove", "erase" involving file paths | 用户提到这些词且涉及文件路径
Path validation before execution | 执行前路径验证:
- Resolve to absolute path using
realpathorreadlink -f| 解析为绝对路径 - Verify path exists using
test -e "$path"| 验证路径存在 - Check for dangerous patterns (
/,~,*, wildcards) | 检查危险模式 - Reject if path contains shell metacharacters unescaped | 如果包含未转义的 shell 元字符则拒绝
Test Cases | 测试用例
# Should trigger confirmation | 应该触发询问
rm file.txt
rm -rf ./folder
rm -r /path/to/something
# Should NOT trigger | 不应触发
trash file.txt
mv file.txt ~/.Trash/
Priority | 优先级: High (security-related | 安全相关)
Last Updated | 最后更新: 2026-03-24
相关 Skills
技能工坊
by anthropics
覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。
✎ 技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。
PPT处理
by anthropics
处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。
✎ 涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。
PDF处理
by anthropics
遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。
✎ PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。
相关 MCP 服务
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
EdgarTools
编辑精选by dgunning
EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。
✎ 这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。