· kaynak dev.to (home feed)
boxr, Rust ile yazılmış tek binary'lik, root'suz ve daemon'sız bir OCI container motoru sunuyor
dev.to'da yayımlanan bir rehber, tek bir statik binary olarak gelen, daemon'a veya root ayrıcalıklarına ihtiyaç duymayan ve tüm durumunu kullanıcının home dizininde tutan, Rust ile yazılmış OCI container motoru boxr'ı tanıtıyor.

Tek dosyalık bir container motoru
boxr, Rust ile yazılmış ve tek bir statik bağlanmış çalıştırılabilir dosya olarak gelen bir OCI container motoru. dev.to'da yayımlanan bir rehbere göre yapılandırılacak bir arka plan servisi, eklenecek bir paket deposu ya da sudo ihtiyacı yok: dosyayı indirmek, doğrulamak ve PATH'inize yerleştirmek kurulumun tamamı.
Proje henüz genç. Yazar, boxr'ın 0.1.x beta aralığında olduğunu, temel iş akışının güvenilir olduğunu ama bazı pürüzlerin beklenebileceğini açıkça belirtiyor. Root'suz çalışmak Linux kullanıcı ad alanlarına (user namespaces) dayandığından rehber Linux'u hedefliyor; ancak GitHub releases sayfasında ARM, macOS ve Windows derlemeleri ile birlikte Debian ve RPM paketleri de bulunuyor.
Kurulum süreci
dev.to rehberi kurulumu beş adıma bölüyor. Birincisi, platformunuz için arşivi checksum dosyasıyla birlikte releases sayfasından indirin. İkincisi, indirmeyi sha256sum -c ile doğrulayın ve OK sonucunu arayın — yazar doğrulamayı isteğe bağlı değil önemli bir adım olarak görüyor. Üçüncüsü, arşivi açın; önemli olan tek parça bin/boxr dosyasıdır; bu dosya motorun kendisidir ve yanında bir kurulum betiği ile shell tamamlamaları bulunur.
Dördüncüsü, binary'yi shell'inizin zaten aradığı bir yere kopyalayın; makinenin yöneticisiyseniz /usr/local/bin, değilseniz ~/.local/bin gibi — boxr yükseltilmiş haklar olmadan çalışır ve home dizini yolunu seçenler bu yolu shell yapılandırmalarında export ettiğinden emin olmalı. Beşincisi, boxr --version ve boxr images komutlarını çalıştırın; bu noktada boş bir image tablosu normaldir.
boxr'ın yazdığı her şey home dizinindeki ~/.boxr klasörüne gider; bu yüzden kaldırmak binary'yi ve o klasörü silmek, yükseltmek ise aynı indir-doğrula-değiştir sürecini tekrarlamak demektir. Çalıştırılabilir dosya statik bağlı olduğu için yazar, ek bağımlılıklar çekmeden Linux dağıtımları arasında tutarlı davranması gerektiğini söylüyor.
Daemon olmaması güvenlik hikâyesini nasıl değiştiriyor
Docker altında komut satırı istemcisi işi root olarak çalışan bir daemon'a devreder ve o daemon ayrıcalıklı işlemleri gerçekleştirir. boxr farklı bir biçim benimsiyor: bir komut bittiğinde çalışmaya devam eden hiçbir şey yok, binary'de setuid biti yok ve tüm durum kullanıcının home dizini içinde kalıyor. Bir container içinde root gibi görünen süreç, kullanıcı ad alanları aracılığıyla sıradan ayrıcalıksız host hesabına eşlenir; böylece izolasyon başarısız olursa en kötü durum, host'un süper kullanıcısı yerine tek bir kullanıcı hesabının ele geçirilmesidir.
Aynı yazı iki devam yazısını önceden duyuruyor: biri günlük komutları — pull, run, ps, logs, stop, rm ve rmi — adım adım anlatıyor, diğeri Docker, Podman ve boxr mimarilerini karşılaştırıyor. Söylenenlere göre o karşılaştırma, 20 ısınmış çalıştırmada boxr için medyan 134 ms'lik bir başlangıç süresi ölçüyor; bu Podman için 217 ms. Yazar, test sanal makinesinde her iki motorun da root olarak çalıştığını belirtiyor. Bunlar yazarın kendi rakamları ve root tabanlı bir kıyaslama, root'suz öncelikli bir yaklaşımın yanında tuhaf duruyor; bu yüzden kesin değil, yol gösterici olarak değerlendirin.\n
Neden önemli
Container araçlarının çoğu hâlâ ya root'a ait bir daemon ya da yönetici onaylı bir kurulum varsayıyor. Ayrıcalıksız bir kullanıcı olarak tek dosyadan çalışan bir motor, bu varsayımın geçersiz olduğu her yerde işe yarar: paylaşılan host'lar, sıkılaştırılmış kurumsal dizüstü bilgisayarlar, CI runner'lar ve sudo talebinin kabul edilmediği her ortam. Ayrıca saldırı yüzeyini de küçültür; çünkü yanlış yapılandırılabilecek veya sömürülebilecek uzun ömürlü ayrıcalıklı bir süreç yoktur ve dağıtım modeli kurulumları son derece tekrarlanabilir kılar. boxr'ın kendisi beta aşamasında ve ölçek üzerinde kanıtlanmamış; Podman ise zaten izlediği daemon'suz, root'suz yaklaşımı yaygınlaştırmıştı. Ama bu tek binary'li teslimatla gelen Rust uygulaması, container araçlarının yönü konusunda anlamlı bir veri noktası ve proje istikrar kazanırken GitHub üzerinde hata bildirimleri topluyor.
- #containers
- #rust
- #oci
- #linux
- #open-source
İlgili yazılar
- OmniPTY, tmux tarzı bölme özelliğini, dosya ağacını ve bir prompt'u tek bir Rust terminalinde birleştiriyor
- Araştırma: registry paketi yayınlamayan uygulamaların advisories'lerinin çoğu tarayıcılara görünmez kalıyor
- Locally Uncensored 3.0.6, yerel yapay zeka modellerine katmanlı onay prompt'ları eşliğinde tıklama ve yazma yeteneği kazandırıyor