Güvenlik

Güvenilir klasörler

Güvenilir klasör güvenliğiyle hangi projelerin Bob Shell'in tüm özelliklerini kullanabileceğini kontrol et.

Güvenilir klasörler, hangi projelerin Bob Shell ile kullanılabileceği üzerinde sana kontrol sağlar. Bob Shell'in projeye özgü yapılandırmaları yüklemesinden önce bir klasörü onaylaman gerekir; bu da seni potansiyel olarak zararlı kodlardan korur.

Not:

Güvenilir klasörler özelliği varsayılan olarak devre dışıdır. Etkinleştirmek için /settings menüsünü aç ve Folder Trust değerini true olarak ayarla. Değişikliğin etkili olması için yeniden başlatma gerekir.

Güvenilir klasörler nasıl çalışır

Bob Shell'i bir klasörden ilk kez çalıştırdığında, senden bir seçim yapmanı isteyen bir güven iletişim kutusu otomatik olarak açılır:

  • Klasöre güven: Mevcut klasöre tam güven ver (örneğin benim-projem)
  • Üst klasöre güven: Üst dizine (örneğin guvenli-projeler) güven ver; bu, tüm alt dizinlere otomatik olarak güvenir. Tüm güvenli projelerini tek bir konumda saklıyorsan bu seçeneği kullan
  • Güvenme: Klasörü güvenilmez olarak işaretle. Bob Shell kısıtlı güvenli modda çalışır

Seçimin ~/.bob/trustedFolders.json dosyasına kaydedilir; bu yüzden her klasör için yalnızca bir kez sorulursun.

Güven düzeyleri

~/.bob/trustedFolders.json dosyası her klasör için bir güven kaydı saklar. Her kayıt üç güven düzeyinden birini kullanır:

Güven düzeyiEtki
TRUST_FOLDERTam klasör yoluna tam güven verir. Proje ayarları, hook'lar, modlar, skill'ler ve MCP sunucuları normal şekilde yüklenir.
TRUST_PARENTBelirtilen dizine ve altındaki tüm alt dizinlere tam güven verir. Birden fazla repo içeren bir workspace kökünü kapsamak için bu düzeyi kullan.
DONT_TRUSTKlasörü güvenilmez olarak işaretler. Bob Shell kısıtlı güvenli modda çalışır ve projeye özgü tüm yapılandırmaları engeller. Bkz. Güvenilmez klasörlerin etkisi.

~/.bob/trustedFolders.json dosyasında kaydı bulunmayan klasörler çözümlenmemiş olarak adlandırılır. Bob Shell'in çözümlenmemiş klasörlere nasıl davrandığı, güvenilir klasörler özelliğinin etkin olup olmadığına göre değişir. Ayrıntılar için bkz. Etkileşimsiz oturumlar.

Güvenilmez klasörlerin etkisi

Bir klasör güvenilmez olduğunda Bob Shell kısıtlı güvenli modda çalışır. Aşağıdaki özellikler devre dışı bırakılır veya yok sayılır:

ÖzellikGüvenli moddaki davranış
Proje ayarları.bob/settings.json yüklenmez. Özel araçlar ve potansiyel olarak tehlikeli yapılandırmalar engellenir.
Araç otomatik onayıOtomatik onayı global olarak etkinleştirmiş olsan bile, herhangi bir araç çalışmadan önce her zaman onayın istenir.
MCP sunucularıBob Shell hiçbir MCP sunucusuna bağlanmaya çalışmaz.
Özel modlarProje klasöründe tanımlanan modlar kullanılamaz. Yalnızca yerleşik modlar ve global olarak tanımladığın modlar kullanılabilir.
SkillsProjeyle birlikte gelen skill'ler yüklenmez. Yalnızca global olarak kullanılabilen skill'ler ve yerleşik yetenekler etkin kalır.
SubagentsProje klasöründeki özel subagent'lar kullanılamaz. Ajan, işi proje tarafından sağlanan yardımcı araçlara devredemez.
Proje talimatlarıAGENTS.md gibi yönlendirme dosyaları ve özel proje kuralları okunmaz. Ajan, projenin özel talimatları olmadan çalışır.

Bir klasöre güven verilmesi, o çalışma alanı için Bob Shell'in tüm işlevselliğini açar.

Güven ayarlarını yönetme

Güven nasıl çözülür
Bob Shell, mevcut klasör için önceden verilmiş bir karar olup olmadığını görmek üzere ~/.bob/trustedFolders.json dosyasını kontrol eder.
Mevcut klasörün güvenini değiştirme
Bob Shell içinden /permissions eğik çizgi komutunu çalıştır. İnteraktif iletişim kutusu açılır ve mevcut klasörün güven düzeyini değiştirmene olanak tanır.
Tüm güven kurallarını görüntüleme
Tüm güvenilir ve güvenilmez klasör kurallarının tam listesini görmek için ana dizinindeki ~/.bob/trustedFolders.json dosyasını incele.

Etkileşimsiz oturumlar

İnteraktif modun aksine, etkileşimsiz oturumlar (bob run) hiçbir zaman güven iletişim kutusunu göstermez. Bob Shell, önceden alınmış güven kararlarına göre sessizce çalışır.

Özellik devre dışıyken varsayılan davranış

Güvenilir klasörler özelliği devre dışıyken (varsayılan), Bob Shell her klasörü güvenilir olarak kabul eder. Proje ayarları, hook'lar, modlar, skill'ler ve MCP sunucuları, ~/.bob/trustedFolders.json dosyasında bir kayıt olup olmadığına bakılmaksızın her klasör için kısıtlama olmaksızın yüklenir.

Özellik etkinken davranış

Güvenilir klasörler özelliği etkinken, Bob Shell projeye özgü içerik yüklemeden önce çalışma klasörünün güven düzeyini değerlendirir:

  • Çözümlenmemiş klasör (~/.bob/trustedFolders.json dosyasında kayıt yok): Klasör güvenilir olarak kabul edilir. Proje ayarları ve hook'lar normal şekilde yüklenir.
  • TRUST_FOLDER veya TRUST_PARENT kaydı: Klasör güvenilirdir. Tüm işlevsellik kullanılabilir.
  • DONT_TRUST kaydı: Bob Shell hata verir ve çalışmaz:
    <folder> is not a trusted folder. Pass --trust to run in this folder,
    or run Bob Shell interactively and choose a trust level.
Önemli:

Güvenilir klasörler özelliğini etkinleştirmek tek başına, güven kararı olmayan klasörler için hook çalıştırılmasını engellemez. Çözümlenmemiş bir klasör — örneğin CI/CD sürecinde ilk kez klonlanan bir repository — güvenilir olarak kabul edilir. Yalnızca açık bir DONT_TRUST kaydı, hook'ların ve proje ayarlarının yüklenmesini engeller.

Başsız modda hook çalıştırma

~/.bob/settings/settings.json dosyasında tanımlanan global hook'lar, çözümlenmemiş klasörler dahil olmak üzere açıkça DONT_TRUST olarak işaretlenmemiş her klasör için çalıştırılır. Projenin içindeki .bob/settings.json dosyasında tanımlanan workspace hook'ları da klasör güvenine tabidir: yalnızca klasör güvenilir veya çözümlenmemiş olduğunda yüklenir, klasör DONT_TRUST olduğunda ise sessizce atlanır.

Tanıdık olmayan bir repository'ye karşı bob run çalıştırmadan önce hangi hook'ların yapılandırıldığını ve ne yaptıklarını anlamak için bkz. Lifecycle hooks.

Moda göre flag davranışı

--trust ve --auto-approve flag'leri, Bob Shell'in nasıl başlatıldığına bağlı olarak farklı davranır. İlgili davranışı görmek için modunu seç:

--trust
Klasör kalıcı olarak güvenilir şeklinde kaydedilir. Bob Shell, mevcut dizin için ~/.bob/trustedFolders.json dosyasına güvenilir bir kayıt yazar ve ilk erişimdeki güven iletişim kutusunu atlar. Bu, klasörü açıp manuel olarak "Klasöre güven" seçeneğini seçmekle aynıdır.
--auto-approve
Güvenilmeyen bir klasörde otomatik onay sessizce bastırılır. Yine de her araç çalıştırılmadan önce senden onay istenir.
--trust
Klasör yalnızca o çalıştırma için güvenilir kabul edilir. Güven kararı kalıcı olarak kaydedilmez ve güven deposuna hiçbir şey yazılmaz.

Otomasyon süreçlerini sertleştirme

Kontrol etmediğin repository'lere karşı — örneğin bir derleme sürecinin parçası olarak klonlanan üçüncü taraf veya açık kaynak repo'lara karşı — CI/CD sürecinde bob run çalıştırıyorsan, güvenilmez hook kodunun çalışmasını önlemek için aşağıdaki adımları uygula.

Başlamadan önce: ~/.bob/settings/settings.json dosyasında security.folderTrust.enabled değerini true olarak ayarlayarak güvenilir klasörler özelliğini etkinleştir. Değişikliğin etkili olması için yeniden başlatma gerekir.

  1. Hangi dizinleri kontrol ettiğine karar ver ve bunların her biri için ~/.bob/trustedFolders.json dosyasına bir TRUST_PARENT kaydı ekle. Bu, bilinen bir workspace kökünün altındaki tüm repository'leri kapsar ve bu ağacın dışındaki her şeyi çözümlenmemiş olarak bırakır.
    {
      "/home/runner/work/my-org": "TRUST_PARENT"
    }
  2. Harici veya güvenilmez bir kaynaktan klonladığın herhangi bir repository için bob run çalıştırmadan önce bir DONT_TRUST kaydı ekle:
    {
      "/home/runner/work/my-org": "TRUST_PARENT",
      "/home/runner/work/third-party-repo": "DONT_TRUST"
    }
  3. ~/.bob/settings/settings.json dosyasında yapılandırılmış global hook'ları incele. Global hook'lar, bir TRUST_PARENT kaydıyla kapsanan tüm repo'lar dahil olmak üzere güvenilir veya çözümlenmemiş her klasör için çalıştırılır. Güvenilmez koda karşı çalışmaması gereken hook'ları kaldır veya kapsamını sınırla.
  4. Klonlanan herhangi bir repository'ye karşı bob run çalıştırmadan önce, bir Makefile veya CI yapılandırma dosyasını incelediğin gibi, o repository'nin içindeki .bob/settings.json dosyasını workspace hook'ları için incele. Workspace hook'ları, güvenilir veya çözümlenmemiş herhangi bir klasörde yüklenir.

Bu adımları tamamladıktan sonra Bob Shell, DONT_TRUST kaydı olan herhangi bir klasör için proje ayarlarını ve hook'ları engeller; bob run ise kontrol ettiğin workspace'te normal şekilde çalışmaya devam eder.

En iyi uygulamalar

  • Yalnızca kendi incelediğin veya oluşturduğun kodu içeren klasörlere güven
  • Birden fazla güvenli proje içeren dizinler için bireysel klasör kayıtlarını yönetmekten kaçınmak amacıyla TRUST_PARENT kullan
  • Hangi klasörlerin güvenilir olduğunu denetlemek için ~/.bob/trustedFolders.json dosyasını düzenli olarak gözden geçir
  • Tanımadığın bir kodla çalışırken, bob run çalıştırmadan önce klonlanan dizin için bir DONT_TRUST kaydı ekle
  • ~/.bob/settings/settings.json dosyasındaki global hook'ları periyodik olarak incele — güvenilir ve çözümlenmemiş her klasörde çalıştırılırlar
Bu konu nasıl?