← nitronium.dev
claude -p subprocess'te --dangerously-skip-permissions yerine bypassPermissions kullan
2026-06-15
Agent sistemlerinde claude -p ile subprocess çalıştırırken harici dizinlere yazma gerekebilir (örn. ~/.claude/skills/). İlk akla gelen seçenek:
`ts
// YANLIŞ — her tür izni atlar
['claude', '-p', prompt, '--dangerously-skip-permissions']
`
Bu flag güvenlik review'ında HIGH bulgu olarak işaretlenir. Subprocess tüm izin kontrollerini devre dışı bırakır; kötü formüle edilmiş bir prompt dosya sistemine zarar verebilir.
Doğru yol: izin verilen root'ları kendin tanımla, subprocess'e sadece gerekli iznin kapısını aç.
`ts
const ALLOWED_WRITE_ROOTS = [
WORK_DIR,
'~/.claude/skills',
'~/Documents',
].map(r => resolve(r));
// Planlanan dosyalar kontrolden geçmeden subprocess başlatma
const denied = plan.changes.filter(c => !isPathAllowed(c.file));
if (denied.length > 0) {
return { success: false, output: İzinsiz path: ${denied.map(c => c.file).join(', ')} };
}
// Subprocess'e yalnızca gerekli araçları ver
['claude', '-p', prompt,
'--allowedTools', 'Read,Edit,Write,Bash',
'--permission-mode', 'bypassPermissions']
`
Verify gibi read-only aşamalar --allowedTools Read,Grep ile sınırlı tutulmalı; bypassPermissions ve Bash o aşamalara verilmemeli.