Görünüm
Metin boyutu
Yazı tipi
Satır aralığı
6
Bölüm 6 · 4 dk

Kimse izlemezken çalıştırmak

Bir izin sorusuna cevap verecek kimse yoksa elinizdeki tek denetçi izin kuralları. Güvenli kurulum: dar allow kuralları, sert deny kuralları, sınırlı bir çalıştırma ve ulaşılabilecek yerde değerli hiçbir şey olmaması.


Siz çıkınca ne değişir

İnteraktif Claude Code size soruyor. Her onay sorusu, bir insanın eyleme baktığının küçük bir kontrolü. Gözetimsiz çalıştırdığınızda o kontrol kayboluyor ve işi başka bir şeyin yapması gerekiyor. Dört katman var: izin modu, deny kuralları, çalıştırmanın sınırları ve en baştan nelere ulaşılabildiği.

Sıra önemli. Mod bir kolaylık. Deny kuralı ise bir sınır.

Modu seçmek

Altı mod var: default, acceptEdits, plan, auto, dontAsk ve bypassPermissions. Gözetimsiz script'ler için doküman dontAsk ile --allowedTools kombinasyonunu öneriyor. Mantığı şu: listelediğiniz her şeye izin var, geri kalan her şey sorulmadan reddediliyor.

bypassPermissions yalnızca atılabilir container'larda kullanılmalı. Bypass, tanınan bir sandbox dışında root olarak ya da sudo altında çalışırken reddediliyor.

Auto modu bir orta yol. Bir sınıflandırıcı model, önemsiz olmayan her eylemi gözden geçiriyor. Uzun gözetimsiz iş için uygunluğunu tek bir noktada kaybediyor: arka arkaya üç sınıflandırıcı engeli ya da toplamda yirmi engel auto modunu duraklatıp yeniden sormaya başlıyor. Orada kimse yoksa çalıştırma takılıyor.

Kendinizi deneyin

Doküman gözetimsiz bir script için hangi ikiliyi öneriyor?

Gerçek çit deny kuralları

Auto modu ve sohbette söylediğiniz bir sınır ("push etme"), yargıdır, uygulama değil. Sohbetteki sınır bir engelleme sinyali gibi davranır ama kural olarak saklanmaz, bu yüzden compaction onu düşürebilir. Sert "asla" kurallarını deny kurallarına ya da hook'lara koyun.

Deny kuralları bypass dahil her modda geçerli. Allow kuralları bypass'ta hiçbir etki yapmıyor. Deny'ın güvenlik katmanı olmasının sebebi bu asimetri.

Best-practices sayfasından bazı örnekler: Bash(git push *), Read(./.env), Read(./secrets/**). Erişimlerini de bilin. Read deny kuralı cat .env'yi de yakalar ama dosyayı açan bir script'i yakalamaz. Bir WebFetch domain deny kuralı, sandbox açık değilse o domain'e curl atılmasını engellemez.

/sandbox burada devreye giriyor. macOS, Linux ve WSL2'de Claude'u işletim sistemi düzeyinde sınırlıyor, Read deny kurallarınızı ve WebFetch domain kurallarınızı alıyor. Strict sandbox modu, sandbox dışında yeniden deneme kaçış kapısını kaldırıyor.

Çalıştırmayı sınırlayın

Çıkışı olmayan döngü para bitene kadar döner. Print modunda:

  • --max-turns turları sınırlar.
  • --max-budget-usd harcamayı sınırlar, istemci tarafı bir tahmin kullanır. Fatura değil, koruma olarak görün.
  • --permission-prompts none sorulacak her şeyi reddeder ve Claude'a tekrar denememesini söyler.
$ claude -p "fix the lint errors" --permission-mode dontAsk --allowedTools "Bash(npm run lint)" "Edit" --max-turns 15 --max-budget-usd 2✻ Lint'i çalıştırır, dosyaları düzenler✻ git push çalıştırmayı dener✻ Reddedilir, permission_denied olarak raporlanır# Çalıştırma onsuz devam eder.

İzin sorma aracı olmayan bir -p çalıştırmasında tekrarlayan engellemeler eylemi düşürüyor ve çalıştırma durmak yerine devam ediyor. O yüzden sonuçtaki permission_denials alanını okuyun. Sessiz bir çalıştırma, hiçbir şeyin reddedilmediğinin kanıtı değil.

Her şeyi erişimin dışında tutun

En güçlü sınır, Claude'un ulaşamadığı şey. Birkaç koruma var ve her birinin bir kenarı var.

  • .git, .claude, .vscode, .idea, shell rc dosyaları ve .mcp.json gibi korumalı yollara yazma, bypass dışında asla otomatik onaylanmaz.
  • Dosya sistemi kökü, ev klasörünüz ya da çalışma klasörü gibi kritik hedeflerin rm ile silinmesi, hiçbir modda allow kuralları ya da hook'larla onaylanamaz.
  • permissions.blockWritesOutsideWorkingDirectories yazmaları proje içinde tutar.

Headless bir çalıştırmanın neyi yüklediğine de dikkat edin. --bare olmadan -p, güvenmediğiniz bir klasörde bile proje hook'larını çalıştırıyor ve .mcp.json sunucularına bağlanıyor. CI'da --bare kullanın, bir API key verin ve o key'e işin ihtiyaç duyduğundan fazlasını vermeyin.

Kendinizi deneyin

"Asla push etme" kuralını prompt'ta söylemek yerine neden deny kuralına koymalı?

Devamını okuyun

Bölüm tamamlandı

Paralel ve gözetimsiz kursunun 6 bölümünden 6. bölümü bitirdiniz.

Bu kursu bitirdiniz.
Tüm kurslara dön