名称: safe-exec
描述: 为 OpenClaw 智能体提供安全的命令执行功能,具备自动危险模式检测、风险评估、用户审批流程和审计日志记录。当智能体需要执行可能危险的 shell 命令(如 rm -rf, dd, fork bombs, 系统目录修改)或需要人工监督时使用。提供多级风险评估(CRITICAL/HIGH/MEDIUM/LOW)、会话内通知、待处理请求管理,并支持智能体自动化的非交互式环境。
元数据:
{
"openclaw":
{
"env": ["SAFE_EXEC_DISABLE", "OPENCLAW_AGENT_CALL", "SAFE_EXEC_AUTO_CONFIRM"],
"writes": ["~/.openclaw/safe-exec/", "~/.openclaw/safe-exec-audit.log"],
"network": false,
"monitoring": false,
"credentials": []
},
"requires": { "bins": ["jq"] },
"install":
[
{
"id": "git",
"kind": "git",
"url": "https://github.com/OTTTTTO/safe-exec.git",
"label": "从 GitHub 克隆",
},
],
}
为 OpenClaw 智能体提供安全的命令执行能力,自动拦截危险操作并启用审批流程。
当 OpenClaw 智能体在非交互式环境中调用时:
环境变量:
- OPENCLAW_AGENT_CALL - 由 OpenClaw 在智能体执行命令时设置
- SAFE_EXEC_AUTO_CONFIRM - 手动覆盖,自动批准 LOW/MEDIUM 风险命令
安全说明: 智能体模式不会禁用安全检查。CRITICAL 和 HIGH 风险命令仍会被拦截、记录,并可在审计跟踪中查看。
安装 SafeExec 的最简单方法:
只需在您的 OpenClaw 聊天中说:
帮我从 ClawdHub 安装 SafeExec 技能
OpenClaw 将自动为您下载、安装和配置 SafeExec!
如果您偏好手动安装:
# 从 GitHub 克隆
git clone https://github.com/OTTTTTO/safe-exec.git ~/.openclaw/skills/safe-exec
# 使脚本可执行
chmod +x ~/.openclaw/skills/safe-exec/safe-exec*.sh
# 创建到 PATH 的符号链接(可选)
ln -s ~/.openclaw/skills/safe-exec/safe-exec.sh ~/.local/bin/safe-exec
ln -s ~/.openclaw/skills/safe-exec/safe-exec-*.sh ~/.local/bin/
安装后,只需说:
启用 SafeExec
SafeExec 将自动开始监控所有 shell 命令!
启用后,SafeExec 会自动监控所有 shell 命令的执行。当检测到潜在危险命令时,它会拦截执行并通过会话内终端通知请求您的批准。
架构:
- 请求存储在:~/.openclaw/safe-exec/pending/
- 审计日志:~/.openclaw/safe-exec-audit.log
- 规则配置:~/.openclaw/safe-exec-rules.json
- 无外部网络调用
- 无后台监控进程
启用 SafeExec:
启用 SafeExec
打开 SafeExec
启动 SafeExec
启用后,SafeExec 将在后台透明运行。智能体可以正常执行命令,SafeExec 会自动拦截危险操作:
删除 /tmp/test 中的所有文件
格式化 USB 驱动器
SafeExec 会检测风险级别并显示会话内提示以供批准。
CRITICAL:系统破坏性命令(rm -rf /, dd, mkfs, fork bombs)
HIGH:用户数据删除或重大系统更改(chmod 777, curl | bash)
MEDIUM:服务操作或配置更改(sudo, 防火墙修改)
LOW:读取操作和安全的文件操作
safe-exec-approve <request_id>safe-exec-listsafe-exec-reject <request_id>通知示例:
🚨 **检测到危险操作 - 命令已被拦截**
**风险等级:** CRITICAL
**命令:** `rm -rf /tmp/test`
**原因:** 使用强制标志的递归删除
**请求 ID:** `req_1769938492_9730`
ℹ️ 此命令需要用户批准才能执行。
**批准方法:**
1. 在终端中:`safe-exec-approve req_1769938492_9730`
2. 或者:`safe-exec-list` 查看所有待处理请求
**拒绝方法:**
`safe-exec-reject req_1769938492_9730`
用于自定义的环境变量:
SAFE_EXEC_DISABLE - 设置为 '1' 以全局禁用 safe-execOPENCLAW_AGENT_CALL - 在智能体模式(非交互式)中自动启用SAFE_EXEC_AUTO_CONFIRM - 自动批准 LOW/MEDIUM 风险命令启用 SafeExec:
启用 SafeExec
启用后,智能体正常工作:
删除 /var/log 中的旧日志文件
SafeExec 自动检测到这是 HIGH 风险(删除)并显示会话内批准提示。
安全操作无中断通过:
列出 /home/user/documents 中的文件
这是 LOW 风险,无需批准即可执行。
检查状态:
safe-exec-list
查看审计日志:
cat ~/.openclaw/safe-exec-audit.log
全局禁用 SafeExec:
禁用 SafeExec
或者设置环境变量:
export SAFE_EXEC_DISABLE=1
发现错误?有功能请求?
请在以下位置报告问题:
🔗 https://github.com/OTTTTTO/safe-exec/issues
我们欢迎社区反馈、错误报告和功能建议!
报告问题时,请包含:
- SafeExec 版本(运行:grep "VERSION" ~/.openclaw/skills/safe-exec/safe-exec.sh)
- OpenClaw 版本
- 重现步骤
- 预期与实际行为
- ~/.openclaw/safe-exec-audit.log 中的相关日志
所有命令执行均被记录,包含:
- 时间戳
- 执行的命令
- 风险等级
- 执行模式(user_approved / agent_auto)
- 批准状态
- 执行结果
- 用于追溯的请求 ID
日志位置:~/.openclaw/safe-exec-audit.log
SafeExec 的功能:
- ✅ 在执行前拦截 shell 命令
- ✅ 使用正则表达式匹配检测危险模式
- ✅ 为高风险命令请求用户批准
- ✅ 将所有执行记录到本地审计文件
- ✅ 完全在您的本地机器上运行
SafeExec 不执行的操作:
- ❌ 不监控聊天会话或对话历史
- ❌ 不读取 OpenClaw 会话数据
- ❌ 无外部网络请求(安装期间的 git clone 除外)
- ❌ 不向外部服务发送数据
- ❌ 无后台监控进程或 cron 作业
- ❌ 不与外部通知服务(飞书、webhooks 等)集成
SafeExec 与 OpenClaw 智能体无缝集成。启用后,它透明地工作,无需更改智能体行为或命令结构。审批流程完全是本地的,独立于任何外部通信平台。
SafeExec 在会话级别运行,可与您的 OpenClaw 实例支持的任何通信通道(webchat、飞书、Telegram、Discord 等)协同工作。审批流程通过您的终端进行,确保无论您如何与智能体交互,都能保持控制。
MIT 许可证 - 详情请参阅 LICENSE。