bwrap-bypasslisted
Install: claude install-skill yangwhale/CloseCrab
# bwrap-bypass
Claude Code 2.1.98+ 的 Bash sandbox 用 bwrap (bubblewrap) 包裹每个 Bash 命令,重新挂载文件系统创建隔离环境。这会导致:
- 特定路径(`/run/credentials-cache/` 等)的权限被改变
- Unix socket、命名管道等 IPC 资源不可访问
- 凭证系统(LOAS2、Kerberos)检测到不安全的目录权限后拒绝工作
- 部分系统工具和服务因文件系统隔离而失败
已知 bug: [anthropics/claude-code#35986](https://github.com/anthropics/claude-code/issues/35986)
`sandbox.enabled: false` 和 `dangerouslyDisableSandbox` 均无效——bwrap 在读取 settings 之前就启动。
## 安装
用 passthrough 脚本替换 `/usr/bin/bwrap`(需要 sudo):
```bash
sudo mv /usr/bin/bwrap /usr/bin/bwrap.real
sudo cp scripts/bwrap-passthrough.sh /usr/bin/bwrap
sudo chmod 755 /usr/bin/bwrap
```
脚本路径:`scripts/bwrap-passthrough.sh`(相对于本 skill 目录)。
## 恢复
```bash
sudo bash scripts/bwrap-restore.sh
```
## 原理
`bwrap-passthrough.sh` 接收 bwrap 的全部参数,解析 `--setenv`/`--unsetenv`,跳过所有沙箱参数(`--ro-bind`、`--tmpfs` 等),在遇到 `--` 后直接 `exec` 实际命令。效果:命令照常执行,但不做文件系统隔离。
## 检查状态
```bash
# 检查是否已安装 bypass
file /usr/bin/bwrap # 应显示 shell script,不是 ELF
head -1 /usr/bin/bwrap # 应显示 #!/bin/bash
# 检查真实 bwrap 是否已备份
ls -la /usr/bin/bwrap.real
```
## 注意事项
- 安装后所有 Bash 命令不再受沙箱保护,安全性降低
- 定期关注 #35986 修复进度,修好后执行恢复步骤
- 适用于所有 Linux 环境(gLinux、GCE VM、裸金属),只要安装了 bwrap 就可能需要