🧪 Skills
Safe Shell
安全命令行执行器 - 仅允许读取类和查询类命令,阻断所有危险操作。安装命令:npx clawhub@latest install safe-shell
v2.0.0
Description
name: safe-shell description: 安全命令行执行器 - 仅允许读取类和查询类命令,阻断所有危险操作。安装命令:npx clawhub@latest install safe-shell homepage: https://github.com/your-repo/safe-shell metadata: {"openclaw":{"emoji":"🛡️","description":"只读安全的命令行工具","tags":["security","shell","safe","read-only","monitoring"]}}
Safe Shell
一个极度安全的命令行操作 Skill,支持 macOS/Linux/Windows,仅允许读取和查询类命令。
🚀 安装
npx clawhub@latest install safe-shell
设计理念
本 Skill 专为以下场景设计:
- 只读监控:查看文件、系统状态、网络配置
- 零破坏风险:完全禁止任何修改、删除、执行危险操作
- AI 防护:让 AI 可以安全地查询信息,无需担心误操作
- 跨平台:统一策略适用于 macOS/Linux/Windows
✅ 允许的命令(纯读取)
📁 文件查看(只读)
| macOS/Linux | Windows (CMD) | Windows (PowerShell) | 说明 |
|---|---|---|---|
ls |
dir |
Get-ChildItem |
列出目录内容 |
pwd |
cd |
Get-Location |
显示当前目录 |
cat |
type |
Get-Content |
读取文件内容 |
head |
- | Get-Content -Head |
查看文件头部 |
tail |
- | Get-Content -Tail |
查看文件尾部 |
find |
where / dir /s |
Get-ChildItem -Recurse |
查找文件 |
which |
where |
Get-Command |
查找命令位置 |
stat |
dir |
Get-Item |
文件详情 |
🔍 系统状态(只读)
| macOS/Linux | Windows | 说明 |
|---|---|---|
ps |
tasklist / Get-Process |
查看进程 |
df |
wmic logicaldisk get size,freespace,caption / Get-PSDrive |
磁盘使用 |
du |
- | 目录大小 |
free |
systeminfo | findstr /B /C:"Total Physical Memory" |
内存使用 |
uptime |
systeminfo | find "System Boot Time" |
运行时间 |
date |
date /t / Get-Date |
当前时间 |
top |
tasklist /v / Get-Process | Sort-Object CPU -Top 10 |
进程快照 |
vmstat |
systeminfo |
内存/交换空间 |
🌐 网络诊断(只读)
| macOS/Linux | Windows | 说明 |
|---|---|---|
ping |
ping |
连通性测试 |
ifconfig |
ipconfig / ipconfig /all |
网络配置 |
ip addr |
Get-NetIPAddress |
IP 地址 |
netstat |
netstat -an |
网络连接状态 |
ss |
Get-NetTCPConnection |
Socket 统计 |
traceroute |
tracert |
路由追踪 |
nslookup |
nslookup |
DNS 查询 |
dig |
Resolve-DnsName |
DNS 查询 |
arp -a |
arp -a |
ARP 表 |
route print |
route print |
路由表 |
📋 信息查询
| macOS/Linux | Windows | 说明 |
|---|---|---|
whoami |
whoami / whoami /all |
当前用户 |
hostname |
hostname |
主机名 |
uname -a |
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" |
系统信息 |
ver |
ver |
版本号 |
cal |
Get-Date -Format "MMMM yyyy" |
日历 |
env / printenv |
set / Get-ChildItem Env: |
环境变量 |
🔧 硬件/系统信息
| macOS/Linux | Windows | 说明 |
|---|---|---|
lspci |
Get-PnPDevice |
PCI 设备 |
lsusb |
Get-PnpDevice -Class USB |
USB 设备 |
system_profiler |
Get-ComputerInfo |
详细系统信息 |
diskutil list |
Get-Disk / Get-Volume |
磁盘列表 |
❌ 禁止的命令
通用危险命令(所有平台)
| 类型 | 示例 | 风险 |
|---|---|---|
| 任何删除 | rm, del, erase, unlink, rmdir |
数据丢失 |
| 任何修改 | chmod, chown, attrib, touch |
配置破坏 |
| 关机重启 | shutdown, reboot, halt, restart |
断连 |
| 进程控制 | kill, pkill, killall, taskkill |
服务中断 |
| 管道执行 | curl | sh, wget | bash, | cmd |
恶意代码 |
| 提权 | sudo, su, runas |
权限风险 |
| 下载执行 | curl, wget, Invoke-WebRequest |
潜在风险 |
| 远程连接 | ssh, scp, sftp, rdp |
安全风险 |
| 任何解释器 | python, node, bash, sh, powershell |
可执行代码 |
| 包管理 | brew, apt, yum, npm install, pip install, choco |
环境修改 |
| 容器 | docker, podman, kubectl |
容器操作 |
| 虚拟化 | virsh, vboxmanage, vmrun |
虚拟机操作 |
🪟 Windows 专用危险命令
| 类型 | 命令 | 风险 |
|---|---|---|
| 磁盘操作 | format, diskpart, clean |
磁盘数据丢失 |
| 注册表 | reg add, reg delete, regedit |
系统破坏 |
| 网络配置 | netsh advfirewall, netsh interface ip |
网络中断 |
| 启动项 | bcdedit, bcdboot |
启动破坏 |
| 用户管理 | net user, net localgroup, lusrmgr |
账户风险 |
| 服务控制 | sc create, sc delete, net start, net stop |
服务中断 |
| 组策略 | gpresult, gpupdate |
策略修改 |
| 系统修复 | sfc, dism, chkdsk /f |
系统修改 |
| PowerShell 危险 | Invoke-Expression, Start-Process, New-Service |
代码执行 |
🍎 macOS 专用危险命令
| 类型 | 命令 | 风险 |
|---|---|---|
| 磁盘操作 | diskutil erase, dd |
磁盘数据丢失 |
| SIP | csrutil |
系统完整性破坏 |
| 启动安全 | bless |
启动修改 |
| 系统偏好 | defaults write |
配置修改 |
🐧 Linux 专用危险命令
| 类型 | 命令 | 风险 |
|---|---|---|
| 磁盘操作 | mkfs, dd, fdisk, parted |
磁盘数据丢失 |
| 系统ctl | systemctl start, systemctl stop, systemctl disable |
服务中断 |
| 用户管理 | useradd, userdel, usermod, groupadd |
账户风险 |
| 网络配置 | iptables, ufw, nmcli |
网络中断 |
| 模块 | modprobe, modprobe -r |
内核模块风险 |
PowerShell 安全限制
✅ 允许的 PowerShell 只读命令
# 文件操作
Get-ChildItem, Get-Content, Get-Item, Get-ItemProperty
# 系统信息
Get-ComputerInfo, Get-CimInstance, Get-WmiObject
Get-Process, Get-Service, Get-EventLog
Get-Location, Get-Date, Get-Culture
# 网络
Get-NetIPAddress, Get-NetTCPConnection, Get-NetUDPEndpoint
Get-DnsClientCache, Resolve-DnsName, Test-Connection
# 硬件
Get-Disk, Get-Volume, Get-PSDrive
Get-PnPDevice, Get-Hardware
❌ 禁止的 PowerShell 操作
# 绝对禁止
Invoke-Expression, Invoke-Command, Invoke-WebRequest
Start-Process, Start-Service, Stop-Process, Stop-Service
New-Item, New-Service, New-Object (动态代码)
Remove-Item, Remove-ItemProperty, Remove-Service
Set-Item, Set-ItemProperty, Set-Content
Copy-Item, Move-Item
Set-Service, Set-ExecutionPolicy
Set-NetFirewallRule, New-NetFirewallRule
Add-Type (动态编译)
核心原则
- 只读优先:只允许不影响系统的查询操作
- 零执行:禁止任何脚本/代码执行
- 零修改:禁止任何文件或系统配置修改
- 零网络下载:禁止从网络下载或执行内容
- 平台感知:自动识别系统,使用对应安全命令
- 命令链拦截:禁止
| xargs,; && ||等命令链接
使用示例
用户:帮我看看当前目录有什么文件
→ macOS/Linux: ls -la
→ Windows: dir
用户:查看系统内存使用
→ macOS/Linux: free -h
→ Windows: systeminfo | findstr "Total Physical"
用户:查看网络配置
→ macOS/Linux: ifconfig
→ Windows: ipconfig /all
用户:安装一个软件
→ 拒绝:禁止执行安装命令
用户:删除这个文件
→ 拒绝:禁止删除操作
用户:帮我运行一个脚本
→ 拒绝:禁止执行任何脚本或解释器
用户:查看Windows服务状态
→ Windows: Get-Service | Select-Object Name,Status
平台检测与适配
系统自动检测当前平台并应用对应规则:
# 伪代码示例
def get_allowed_commands(platform):
if platform == "windows":
return WINDOWS_ALLOWED_COMMANDS
elif platform == "macos":
return MACOS_ALLOWED_COMMANDS
elif platform == "linux":
return LINUX_ALLOWED_COMMANDS
else:
return MINIMAL_ALLOWED_COMMANDS # 未知系统仅允许最基本查询
适用场景
- AI 助手安全查询
- 监控系统状态
- 排查网络问题
- 读取日志和配置
- 完全零风险的命令行交互
- 跨平台统一安全策略
版本: 2.0.0
作者: Cheng Yusheng
许可证: MIT
更新: 添加 Windows 支持和 PowerShell 安全限制
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!