Sandbox politikalarını yapılandırma
Bir ajan çalıştırmasının sandbox’a alınıp alınmadığına sunucu, açılışta karar
verir (--sandbox). Ayarlar → Sunucu → Tanılama ve gizlilik altındaki
Korumalı alanı etkinleştir anahtarı ve Backend seçici cihazınızda
saklanan tercihlerdir. Korumalı alan kartının ana makine algılaması, sunucu
ana makinesinin neyi sarabileceğini bildirir.
Bir çalıştırmaya ulaşan iki denetim vardır ve bu kılavuz ikisini de ele alır:
bir ajanın neyi push edebileceğine, açabileceğine ya da nereye erişebileceğine
karar veren Ayarlar → Çalışma alanı → Ajan izinleri altındaki eylem
kuralları ve sunucunun kendi --sandbox bayrağı.
Bir ajan çalıştırmasını neyin kısıtladığı
Bölüm başlığı “Bir ajan çalıştırmasını neyin kısıtladığı”Bir ajanı altı şey tutar. İlki işletim sistemi sandbox’ıdır ve koşullu olan tek şey odur — diğer beşi her ana makinede geçerlidir.
| Sınır | Ne yapar |
|---|---|
| İşletim sistemi sandbox’ı | macOS’ta Seatbelt, Linux ve WSL2’de bubblewrap. Claude Code CLI’yı, ACP adaptörlerini ve harness bash aracını sarar. Windows’ta ve bwrap ile socat olmayan Linux’ta yoktur |
| Kendi worktree’si | Her konuşma copy-on-write bir checkout alır. Özgün checkout, çalıştırmaya yazma reddi yolu olarak katılır ve bunu uygulayan şey sandbox’tır |
| Broker üzerinden verilen kimlik bilgileri | Kimlik bilgisi broker’ı çalıştırma başına bir ortam üretir ve kapanışta geri alır. İçindeki GitHub token’ı okuyabilir ama push edemez: bir push, önce push kuralına soran Control Center’dan geçer |
| Eylem korumaları | Her değişiklik yapan araç etki sınıflarını bildirir ve koruma bunları çağrı çalışmadan önce çözümler. Bağlı onaylayıcısı olmayan bir prompt reddedilir |
| Ortam temizliği | ACP ve harness bash aracı filtrelenmiş bir ortam alır. NoSandboxAdapter üzerinden Claude Code, ana makine ortamını devralır |
| Modun araç yüzeyi | Salt okunur bir mod, worktree’yi değiştiren araçları tamamen çıkarır ve yine de teslim edebilmesi için modun kendi çıktı fiilini sabitler |
Üç şey göründüğünden daha zayıf kalır:
- Araç kapısını, tamamlanma sözleşmelerini ve yapısal mod kurallarını yalnızca
yerleşik harness uygular. Claude Code adaptörü uygulamaz. Özellikle Claude
Code,
--dangerously-skip-permissionsile başlatılır; çünkü etkileşimsiz birclaude -p, aksi halde kendi isteminde sonsuza dek bloke olur — dolayısıyla Claude’un kendi okuma, yazma ve düzenleme çağrıları Control Center tarafından ne görülür ne de kapıya bağlanır; bash komutlarını ise yalnızca komut satırını okuyan bir hook denetler. Sandbox açıkken onların etrafındaki sınır odur. - Harness’in süreç içi dosya araçları (read, write, edit, apply patch, search,
find, search_files) sunucu sürecinin içinde çalışır; bu yüzden onları hiçbir
sandbox profili kısıtlamaz. Sandbox’a alınmış komut çalıştırıcısından yalnızca
basharacı geçer. Bu araçlar kendi yol hapsetmeleri ve eylem korumalarıyla sınırlıdır. - Arka ucu olmayan bir ana makinede ilk satır hiç geçerli olmaz. ACP ve harness
basharacı, ortam temizliği ve komut ilkesine döner; Claude Code,NoSandboxAdapterüzerinden ana makine ortamını devralır. Sunucu bunu başlangıç günlüğünde söyler. Kendi günlüğünüzü aşağıda denetleyin.
Bir ajanın neyi push edebileceğine karar verme
Bölüm başlığı “Bir ajanın neyi push edebileceğine karar verme”git push, GitHub, biletleme ya da ağ için ajan başına bir anahtar yoktur. Her biri bir eylem kuralıdır:
| Kural | Yerleşik varsayılan | Neyi kapsar |
|---|---|---|
| Uzak depoya push et | Önce sor | Adaptör ne olursa olsun GitHub’a yapılan her git push |
| Pull request aç | Önce sor | gh pr create ve pull request araçları |
| İnceleme yayınla veya birleştir | Önce sor | gh pr merge, gh pr review, gh pr comment, gh pr close |
| Harici takip sistemine yaz | Önce sor | Control Center araçlarıyla ve gh issue ile bilet yazımları |
| Ağa eriş | İzin ver | Sandbox’ın ağı olup olmadığı ve harness’ın web araçları |
- Ayarlar → Çalışma alanı → Ajan izinleri bölümüne gidin
- Kapsamı seçin — Çalışma alanı, Ajan veya Alan — ve kuralın satırında İzin ver, Önce sor veya Reddet’i seçin
main’e push’u reddeden bir kural gibi dallarla sınırlı push kuralları da
uygulanır: bkz. Korumalar.
Kontrol noktası: ajandan bir dalı push etmesini isteyin. Önce sor ile depoyu
ve ref’leri adlandıran bir onay alırsınız; Reddet ile git şunu yazdırır:
! [remote rejected] <ref> (Control Center policy: …).
Her kural çalıştırmaya nasıl ulaşır:
- Push, çalıştırmanın elinde ne tuttuğuyla uygulanır. GitHub token’ı, içerik
okuyabilen ve pull request’lerle çalışabilen salt okunur bir GitHub App
kurulum token’ıdır. Git yapılandırması her GitHub push’unu
cc_serverüzerindeki bir loopback ağ geçidine gönderir; ağ geçidi kurala sorar ve ancak ondan sonra push’u ajanın hiç görmediği bir yazma token’ıyla iletir. Ağ geçidi yalnızca çalışma ağacının kendi deposuna ya da çalışma alanına bağlı bir GitHub deposuna iletir. Bu her adaptör için geçerlidir. - Bir kabuktan pull request’ler ve issue’lar, harness’ın
basharacında ve bir hook aracılığıyla Claude Code’unBasharacında komut satırından tanınır. Komutu gizleyen bir ajan (bir betik,eval, doğrudan bir API çağrısı) bu denetimi geçer ama push ağ geçidini geçemez. - Biletleme anahtarları asla sandbox’a konmaz. Ajanlar biletleri, kurala soran Control Center MCP araçlarıyla yazar.
- Ağ, çalıştırma başlarken bir kez çözümlenir. Reddet sandbox’ın ağını
kapatır; İzin ver ve Önce sor açık bırakır ve Önce sor altında
harness’ın
web_fetchveweb_searcharaçları her çağrıda sormaya devam eder. Ağ açık olduğu sürece GitHub her zaman çıkış izin listesindedir.
Ajan çalıştırmalarınızın sandbox’a alınıp alınmadığını denetleme
Bölüm başlığı “Ajan çalıştırmalarınızın sandbox’a alınıp alınmadığını denetleme”Buna iki şey karar verir, ikisi de sunucudadır: ana makinenin bir arka uç sunup
sunmadığı ve --sandbox’ın açık olup olmadığı. Bunları bu sırayla denetleyin.
- Ayarlar → Sunucu → Tanılama ve gizlilik bölümüne gidin
- Korumalı alan kartını okuyun. Host olgusu, baktığınız makine değil
cc_server’ın çalıştığı makinedir. Backend alanı Yerel sandbox (macOS’ta Seatbelt, Linux ve WSL2’de bubblewrap) ya da İzolasyon yok listeler. Yürürlükte olgusu, sunucunun gerçekte kullandığı sarma değil bu cihazın tercihidir. - Sunucunun başlangıç günlüğünü okuyun. Tam olarak üç satırdan birini yazar:
agent sandbox ONve arka uç notu — çalıştırmalar sarılırno OS-native agent sandbox on this hostve varsa bir kurulum ipucu — çalıştırmalar sarılmazagent sandbox DISABLED by --sandbox off— bilinçli bir vazgeçme
GET /healthz sandbox durumunu bildirmez; bu yüzden denetim başlangıç
günlüğüdür.
Sandbox’ı bilinçli olarak kapatmak için — profilin kötü davrandığı bir ana
makine, onun var olma sebebidir — sunucuyu --sandbox off ile başlatın ya da
CC_SERVER_SANDBOX=off ayarlayın. Varsayılan on’dur ve on, “ana makinede
varsa bir arka uç kullan” demektir, asla “bir tane gerektir” değil.
İki durum hiçbir zaman yerel bir sandbox sarması almaz. Windows’ta yerel
sonda her zaman kullanılamaz bildirir ve kurulacak bir şey yoktur — ajan
gönderimi none kullanır. microvm arka ucu ayrıdır (etkileşimli terminaller
ve rig’ler) ve kendi çalışma zamanında sonda kapısına bağlıdır. Linux ve
WSL2’de hem bwrap hem socat PATH üzerinde olmalıdır; bunlar olmadan
sonda kullanılamaz bildirir ve eksik paketleri adlandırır.
bubblewrap kurulu Linux/WSL2’de, standart politikanın gizli dosya glob’ları, bir
ajanın sonradan oluşturduğu dosyalar için uygulanamaz. Böyle yerel bir
çalıştırma artık kuralları sessizce yok saymak yerine başarısız olur. Dolayısıyla
olumlu bir açılış sondası, bir Linux gönderiminin başlayabileceğini garanti
etmez. --sandbox off bilinçli, sınırsız bir vazgeçmedir; yerine geçen bir
güvenlik sınırı değildir.
Bir modun zaten neyi yasakladığını bilme
Bölüm başlığı “Bir modun zaten neyi yasakladığını bilme”Mod, alan başına saklanır ve koruma çözümleyicisini mod ön ayarı katmanı olarak besler. Dört moddan üçü salt okunurdur ve salt okunur bir mod on bir etki sınıfını doğrudan reddeder:
| Mod | Worktree | Ön ayar tarafından reddedilen |
|---|---|---|
Ajan (chat) |
Yazılabilir | Hiçbir şey — yerleşik varsayılanlar geçerlidir |
| Plan | Salt okunur | Bir dosyayı sil, çalışma ağacının dışına yaz, commit oluştur, uzak depoya push et, pull request aç, inceleme yayınla veya birleştir, harici takip sistemine yaz, paket kur, süreç çalıştır, çalışma alanı yapısını değiştir, bir enclosure’ı (rig) yönet |
| İnceleme | Salt okunur | Aynı on bir. Kullanıcı seçemez — ileti alanı yalnızca Ajan, Plan ve Orkestrasyon sunar |
| Orkestrasyon | Salt okunur | Aynı on bir |
Ağ erişimi ve sır erişimi, salt okunur bir mod tarafından bilinçli olarak reddedilmez: araştırma, böyle bir modun asıl amacıdır.
Bir eylem çalışmadan önce onay isteme
Bölüm başlığı “Bir eylem çalışmadan önce onay isteme”Onay bir koruma kararıdır, bir sandbox ayarı değildir.
- Ayarlar → Çalışma alanı → Ajan izinleri bölümüne gidin
- Eylem sınıfını çalışma alanı, ajan veya alan kapsamında Önce sor olarak ayarlayın
Bir Önce sor kararı çalıştırmayı kesintiye uğratır ve size sorar. Bağlı bir onaylayıcı yoksa kapalı yönde başarısız olur ve eylem reddedilir. Tam çözümleme sırası için Korumaları yapılandırma sayfasına bakın.
Sorun giderme
Bölüm başlığı “Sorun giderme”Bir ajan push edemiyor ve ben bunu hiç reddetmedim
Bölüm başlığı “Bir ajan push edemiyor ve ben bunu hiç reddetmedim”Git’in ne yazdırdığını okuyun. Control Center policy: …, bir kuralın push’u
reddettiği ya da bir Önce sor’un yanıtsız kaldığı anlamına gelir.
… is not linked to this workspace, push’un ne çalışma ağacının kendi deposu ne
de çalışma alanına bağlı olan bir depoyu hedeflediği anlamına gelir.
Control Center has no GitHub credential that can push …, GitHub App’in o
depoya kurulu olmadığı ve hiçbir yedek kimlik bilgisinin push edemediği
anlamına gelir: uygulamayı o depoya kurun ya da GitHub’ı bağlayın.
Korumalı alan kartı yerel sandbox bildirmiyor
Bölüm başlığı “Korumalı alan kartı yerel sandbox bildirmiyor”O zaman o ana makinedeki ajan çalıştırmaları Seatbelt veya bubblewrap tarafından
sarılmaz ve elinizde kalan sınırlar geçerlidir. Linux ve WSL2’de eksik olan her
iki aracı kurun — sudo apt-get install bubblewrap socat — ve sunucuyu yeniden
başlatın; başlangıç günlüğü ardından sandbox’ın açık olduğunu söylemelidir.
Windows’ta kurulacak yerel bir arka uç yoktur; bu yüzden onun yerine korumaları
sıkılaştırın:
Korumaları yapılandırma
sayfasına bakın.
Bir ajan worktree’sinin dışındaki bir dosyaya erişti
Bölüm başlığı “Bir ajan worktree’sinin dışındaki bir dosyaya erişti”Hangi aracın eriştiği, bunun beklenen olup olmadığına karar verir.
Harness’in süreç içi dosya araçları (read, write, edit, apply patch, search,
find, search_files) sunucu sürecinde çalışır; bu yüzden onlara hiçbir sandbox
profili uygulanmaz — sınırları, kendi yol hapsetmeleri ve korumalardır. Bir
bash komutu ya da Claude Code CLI, arka ucun olduğu yerde sarılır ve kayıtlı
checkout’larınız, sembolik bağlantı çözümlenmiş yazımları dahil, her modda o
sarmada yazmaya kapalıdır (macOS’ta /tmp veya /var/folders üzerinden
ulaşılan bir yol /private altında çözümlenir ve her iki yazım da artık
reddedilir). Arka ucu olmayan bir ana makinede bunların hiçbiri geçerli değildir.
Her iki durumda da korumalar Çalışma ağacının dışına yaz’ı doğrudan
reddedebilir.
İlgili kılavuzlar
Bölüm başlığı “İlgili kılavuzlar”- Korumaları yapılandırma
- Ajan oluşturma ve yapılandırma
- Bir ajanı tanılama
- Sandbox arka uçları
- cc_server CLI:
--sandboxbayrağı