Claude Code izin sormadan çalıştırma: güvenli yollar

Claude Code’un --dangerously-skip-permissions bayrağı neyi atlar, neyi atlamaz, riski nedir? İzin modları, izin kuralları ve sandbox ile güvenli seçenekler.

Solviera Teknoloji 9 dk okuma

--dangerously-skip-permissions Claude Code’u bypassPermissions modunda başlatır. Araç çağrıları sana sorulmadan çalışır. Soruları susturmanın en hızlı yolu bu, ama en riskli yolu da bu. Anthropic’in dokümanı bu modu yalnızca container ya da VM gibi izole ortamlarda kullanmanı söylüyor. Çoğu zaman buna gerek de yok. Birkaç allow kuralı, auto modu ya da sandbox soruların büyük kısmını kaldırır ve korumaları yerinde bırakır.

Bu yazıda bayrağın neyi atladığını, neyi atlamadığını, nerede ters gittiğini ve daha güvenli seçenekleri anlatıyoruz. Sonunda da aynı sorunu birden fazla ajanla çalışırken AgentVera’nın nasıl çözdüğünü gösteriyoruz.

Bayrak tam olarak ne yapıyor?

Claude Code’da izin modları var. Bu bayrak bunlardan birinin kısayolu:

claude --dangerously-skip-permissions
# şununla aynı
claude --permission-mode bypassPermissions

Bu modda Claude dosya düzenler, kabuk komutu çalıştırır ve araç çağırır; araya girmez. İzin modları dokümanına göre şu durumlar yine durur:

  • Deny kuralları. Ayarlardaki bir deny kuralı, bypass dahil her modda aracı engeller.
  • Açık ask kuralları. Bir ask kuralı yazdıysan yine sorar.
  • Claude’un sana sorduğu sorular. Claude bir şey sormak için yine durabilir.
  • Kritik yolları silmek. Dosya sisteminin kökü, üst düzey klasörler, ana klasörün, çalışma klasörü ve üstündeki klasörler üzerinde rm ya da rmdir yine onay ister.

Bypass modunda allow kurallarının etkisi yoktur, çünkü zaten her şey serbest. .git ve .claude gibi korunan yollara yazmak da serbesttir.

Pratikte işine yarayacak birkaç ayrıntı:

  • Etkileşimli oturumda ilk kullandığında bir uyarı penceresi çıkar. Kabul edersen ~/.claude/settings.json içine skipDangerousModePermissionPrompt: true yazılır.
  • Etkileşimsiz çalıştırmada (claude -p) bu pencere çıkmaz.
  • Linux ve macOS’ta bayrak root ya da sudo ile çalışmayı reddeder. Tanınan bir sandbox içindeyse bu kontrol atlanır.
  • Bu modla başlamamış bir oturumdan bypass’a geçemezsin. --allow-dangerously-skip-permissions modu açmadan Shift+Tab döngüsüne ekler.
  • Yöneticiler managed settings içinde permissions.disableBypassPermissionsMode: "disable" ile modu herkes için kapatabilir.

Riskler neler?

Doküman açıkça söylüyor: bypass modu “prompt injection’a ya da istenmeyen eylemlere karşı koruma sağlamaz.” Günlük işte bunun karşılığı şu.

Prompt injection

Claude dosyaları, web sayfalarını, issue metinlerini ve araç çıktılarını okur. Bunlardan birinin içinde talimat varsa model ona uyabilir. Sorular açıkken bilinmeyen bir adrese giden tuhaf bir curl komutunu çalışmadan önce görürsün. Bypass modunda ise sonradan öğrenirsin.

Kritik listede olmayan yıkıcı komutlar

Kritik yol kontrolü ana klasörün ya da proje kökünün silinmesini yakalar. git reset --hard, git clean -fd, silinen bir veritabanı tablosu, force push ya da yanlış ortamda çalışan bir migration’ı yakalamaz. Bunların hepsi sorulmadan çalışır.

Gizli bilgiler ve bilgisayarın geri kalanı

Kendi bilgisayarında Claude senin kullanıcınla çalışır. SSH anahtarlarını, bulut kimlik bilgilerini ve .env dosyalarını okuyabilir, ağa çıkabilir. Bir hata ya da araya sokulmuş bir talimat, bütün hesabına erişebilir.

Checkpoint her şeyi kapsamaz

Claude Code her prompttan önce bir checkpoint alır. /rewind (ya da iki kez Esc) kodu, konuşmayı ya da ikisini birden geri getirir. Ama checkpoint dokümanı rm, mv, cp gibi Bash komutlarıyla yapılan değişikliklerin ve oturum dışındaki değişikliklerin izlenmediğini söylüyor. Rewind, git’in yerini tutmaz.

İzin sorularını azaltmanın daha güvenli yolları

Bu bayrağa çoğu zaman sorular işi yavaşlattığı için uzanılır. Aşağıdaki seçenekler soruları azaltır, korumaları da yerinde tutar.

1. Doğru izin modunu seç

ModSormadan çalışanNe zaman
default (Manual)Yalnızca okumaTanımadığın kod, hassas repolar
acceptEditsOkuma, dosya düzenleme, mkdir, mv, cp gibi yaygın dosya komutlarıDiff’i kendin incelediğin günlük iş
planYalnızca okuma, kaynak dosya düzenlemezDeğişiklikten önce keşif ve planlama
autoHer şey; her eylemi önce bir sınıflandırıcı kontrol ederYönüne güvendiğin uzun işler
dontAskYalnızca önceden izin verilen araçlar; gerisi reddedilirCI ve betikler
bypassPermissionsYukarıdaki istisnalar dışında her şeyYalnızca izole container ve VM

Oturum içinde Shift+Tab modlar arasında gezer. --permission-mode başlangıç modunu seçer, ayarlardaki permissions.defaultMode da varsayılanı belirler.

Auto modu çoğu kişinin aradığı orta yol. Her eylem çalışmadan önce bir sınıflandırıcı model tarafından incelenir. İsteğinin ötesine geçen, tanımadığı altyapıyı hedefleyen ya da kötü niyetli içerikten gelmiş gibi duran eylemleri engeller. Art arda üç ya da toplamda 20 kez engellerse auto modu durur ve normal sorular geri gelir. İki sınırı var: desteklenen bir model ister ve doküman “soruları azaltır ama güvenliği garanti etmez” diyor. Yeni Claude Code sürümleri etkileşimli oturumları varsayılan olarak auto modunda başlatıyor. Hangi moddasın görmek için /permissions komutuna bak.

2. Allow ve deny kuralları yaz

İzin kuralları settings.json içinde durur ve bunları model değil Claude Code uygular. Sırayla kontrol edilir: önce deny, sonra ask, sonra allow. İlk eşleşen kazanır, yani bir allow kuralı deny’ı asla ezemez.

{
  "permissions": {
    "allow": ["Bash(npm run test *)", "Bash(npm run lint)", "Bash(git diff *)"],
    "ask": ["Bash(git commit *)"],
    "deny": ["Bash(git push *)", "Read(./.env)"]
  }
}

Oturum içinde kuralları görmek ve düzenlemek için /permissions kullan. Günde elli kez çalıştırdığın test, lint ve salt okunur git komutlarına izin ver. Bir ajanın asla çalıştırmasını istemediğin komutları reddet. CLAUDE.md model için bir yönergedir, izinleri değiştirmez.

Betiklerde dontAsk ile kısa bir izin listesi, bypass’tan çok daha sıkıdır:

claude -p "test paketini çalıştır ve hataları düzelt" \
  --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" "Edit"

3. Bash sandbox’ı aç

Sandbox dokümanı, kabuk komutlarının hangi dosyalara ve ağ alan adlarına erişebileceğini işletim sistemi düzeyinde sınırlayan bir sandbox anlatıyor. /sandbox komutuyla ya da sandbox.enabled: true ayarıyla açılır. macOS, Linux ve WSL2’de çalışır. Yalnızca kabuk komutlarını kapsar. Dosya araçları, MCP sunucuları ve hook’lar bunun dışında çalışır.

4. İzinleri atlayacaksan önce izole et

Bazen bypass gerçekten doğru seçimdir; örneğin atılabilir bir kod üzerinde uzun, gözetimsiz bir çalışma. O zaman dokümandaki kurulumu izle: container, VM ya da dev container; root olmayan bir kullanıcı; bağlanmış gizli bilgi yok; mümkünse internet de yok. Gözetimsiz çalıştırmanın yaygın biçimi şu:

claude -p "<görev>" --dangerously-skip-permissions

Bunu kendi bilgisayarında değil, container içinde çalıştır.

5. Worktree’de çalış, sık commit at

Bir git worktree ajana kendi klasörünü ve dalını verir. Ajan dalı bozarsa worktree’yi silersin, main bir şey hissetmez. Sık commit de Bash’in değiştirdiklerini dahi kapsayan geri dönüş noktaları verir; checkpoint’in yakalayamadığı şeyleri de.

Karar tablosu

DurumNe kullanmalı
Aynı test ve lint komutlarını sürekli onaylıyorsunAllow kuralları
Daha az soru istiyorsun ama bir güvenlik kontrolü de olsunAuto modu
Araçları belli bir CI işi ya da betikdontAsk ve --allowedTools
Kabuk komutları ağa ya da ana klasörüne dokunmasınBash sandbox
Atılabilir kod üzerinde uzun gözetimsiz çalışmaContainer içinde, root olmadan bypass
Makinede üretim kimlik bilgileri varAsla bypass

AgentVera bunu nasıl çözüyor?

Birden fazla ajan çalıştırınca sorular da çoğalır. Beş ajan, onay bekleyebilecek beş ayrı yer demek. AgentVera aynı seçenekleri ajan bazında sunuyor ve soruları her yerden yanıtlamanın yollarını ekliyor.

Her ajan için ayrı izin seviyesi

Ajan penceresinde ve model seçicide İzinler alanı var. Üç seçenek sunuyor:

  • Sorsun: CLI her zamanki gibi sorar.
  • Otomatik: CLI’ın kendi auto modu. Düzenlemeler ve güvenli komutlar geçer, riskli olanlar yine durur. Claude Code için ajan --permission-mode auto ile başlar.
  • Tam yetki: hiç sormaz. Claude Code için bu --dangerously-skip-permissions demek. Uygulamadaki ipucu da bunu açıkça söylüyor: “En iyisi bir worktree ya da container içinde”.

Ajan başlığında “İzinler: Otomatik” gibi bir rozet görünür. Codex ve diğer CLI’lar kendi karşılıklarıyla çalışır. Seviyeyi değiştirince ajan yeniden başlar, konuşma kaldığı yerden sürer. Ekip politikası onayları sınırlıyorsa ajanlar sormaya devam eder.

Güvenli istekleri otomatik onayla (Pro ve Team)

Otomatik onay, Claude Code ajanları için bir orta yol. Güvenli istekleri otomatik onayla açıkken AgentVera yalnızca Claude’un zaten soracağı istekleri yanıtlar, onlardan da yalnızca güvenli olanları:

  • Read, Glob, Grep ve LS gibi okuma araçları,
  • salt okunur kabuk ve git komutları,
  • npm, pnpm, yarn, bun, pytest, cargo, go ve diğerleri için test, lint, typecheck ve build komutları.

İçinde >, $() ya da backtick olan komutlar asla otomatik onaylanmaz. Claude’daki kendi allow ve deny kuralların geçerli kalır. Proje içindeki dosya düzenlemelerini de onayla varsayılan olarak kapalıdır. Açınca yalnızca proje ya da worktree içindeki düzenlemeleri kapsar, .git ve .env dosyalarına asla dokunmaz. Asla otomatik onaylanmasın listesi git push, npm publish, rm, git reset --hard ve git clean ile başlar, kendi komutlarını da ekleyebilirsin. Son otomatik onaylar bu oturumda nelerin geçtiğini gösterir.

Anahtar varsayılan olarak açıktır ama yalnızca Pro ve Team planında etki eder. Ücretsiz planda istekler yine sana gelir.

Soruları masandan, telefondan ya da Telegram’dan yanıtla

Kalan sorular nerede olursan ol sana ulaşır. Masaüstünde durum çubuğunda bir onay kuyruğu var. ⇧⌘A en uzun süredir bekleyen ajana atlar, Dock’ta da bir rozet görünür. Bir onayı bekletirsen beş dakika sonra hatırlatma gelir. Ayrıntılar bildirimler ve onaylar sayfasında.

Masadan uzaktayken:

Bir soruyu yanıtlamak birkaç saniye sürdüğü için Tam yetki’ye uzanman için daha az neden kalır.

Gerçek izolasyon için Docker ajanları

Tam yetki istediğin işlerde ajanı Docker kapsayıcısında çalıştır seçeneğiyle başlat. Yerel Claude Code ve Codex ajanlarında çalışır ve her planda var. Ayrıntılar Docker kapsayıcısında ajan sayfasında.

  • Kapsayıcı yalnızca proje klasörünü görür; SSH anahtarlarını ya da bilgisayarının geri kalanını görmez.
  • Ajan durunca kapsayıcı silinir. Yalnızca proje klasöründeki değişiklikler kalır.
  • İstersen CPU ve bellek sınırı koyabilirsin.
  • Hook’lar ve MCP çalışmaya devam eder.

Docker Desktop, Colima ya da OrbStack gerekir. Claude Code dokümanının istediği izole ortam budur, üstelik Dockerfile yazmana gerek kalmadan.

Her tur için checkpoint

AgentVera’nın checkpoint’leri her turun başında çalışma klasörünün anlık görüntüsünü gizli bir git ref’ine alır ve ajan başına son 60 turu saklar. Klasörün kendisini kaydettiği için bir kabuk komutunun değiştirdiği dosyaları da yakalar. Bir turun hangi dosyalara dokunduğunu görebilir, turu geri alabilir, geri almayı da geri alabilirsin. Dalların, index ve stash’e dokunulmaz.

Kontrol listesi

  • Allow kuralları ya da auto modu soruları zaten kaldırabilir mi?
  • Ajan ana bilgisayarında değil, container ya da VM içinde mi?
  • Root olmayan bir kullanıcıyla mı çalışıyor?
  • Gizli bilgiler, SSH anahtarları ve üretim kimlik bilgileri erişim dışında mı?
  • Ağ erişimi sınırlı ya da kapalı mı?
  • İş kendi dalında ya da worktree’sinde mi, dönülecek yeni bir commit var mı?
  • Deny kuralları git push’u ve asla istemediğin her şeyi kapsıyor mu?

Sonuç

--dangerously-skip-permissions gerçek bir araç ama kullanım alanı dar: atılabilir, izole ortamlar. Günlük işte allow ve deny kuralları, auto modu ve sandbox soruların çoğunu kaldırır, kontrolü de sende bırakır. Çok sayıda ajan çalıştırıyorsan her birine ihtiyacı olan seviyeyi ver. Güvenli istekler kendiliğinden geçsin, kalanları telefondan yanıtla, Tam yetki isteyen ajanları da bir kapsayıcıya koy.

Devamını oku:

AgentVera’yı denemek için ana sayfadan başlayabilirsin.

Sık sorulanlar

--dangerously-skip-permissions ne işe yarar?

Oturumu bypassPermissions modunda başlatır; --permission-mode bypassPermissions ile aynıdır. Araç çağrıları sorulmadan çalışır. Açık ask kuralları, deny kuralları, Claude’un sana sorduğu sorular ve ana klasör gibi kritik yolların silinmesi yine durur.

Claude Code’u izin sormadan çalıştırmak güvenli mi?

Yalnızca izole bir ortamda. Anthropic’in dokümanı bu modu internet erişimi olmayan container, VM ya da dev container içinde kullanmanı söylüyor ve prompt injection’a karşı koruma sağlamadığını belirtiyor.

Claude Code neden root ile izinleri atlamayı reddediyor?

Linux ve macOS’ta bu bayrak güvenlik nedeniyle root ya da sudo yetkisiyle çalışmaz. Tanınan bir sandbox içindeyse bu kontrol atlanır. Claude Code’u normal kullanıcıyla ya da container içinde root olmayan bir kullanıcıyla çalıştır.

İzinleri atlamak yerine ne kullanabilirim?

Güvendiğin komutlar için settings.json’da allow kuralları, asla istemediklerin için deny kuralları, güvenlik sınıflandırıcısıyla çalışan auto modu ve Bash sandbox. Bunlar soruların çoğunu kaldırır, kontrolü de sende bırakır.

AgentVera Claude Code izinlerini nasıl yönetiyor?

Her ajanın bir İzinler ayarı var: Sorsun, Otomatik ya da Tam yetki. Pro ve Team planında güvenli istekleri, yani okuma ve test komutlarını senin yerine onaylayabilir. Ajanlar Docker kapsayıcısında da çalışabilir ve her turun geri alınabilir bir checkpoint’i olur.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer yazılar