Bir Harf Yüzünden Yaşanan “Görünmez Dosya” Gizemi: Docker Mount ve TrueNAS Yetki Savaşları

Yazılımla, sunucularla veya sistem yönetimiyle (sysadmin) uğraşan herkesin hayatında en az bir kez yaşadığı o ürpertici an vardır: Yazdığınız kod hatasız çalışmıştır. Terminal ekranında her şeyin başarıyla indirildiği yazıyordur. Ancak hedef klasöre gidip baktığınızda bomboş bir beyazlıkla karşılaşırsınız. Dosyalar fiziksel olarak disktedir, sunucu onları görüyordur ama siz kendi bilgisayarınızdan klasörü açtığınızda orada hiçbir şey yoktur.

İnsana akıl sağlığını sorgulatan bu durum, aslında sistem mimarilerinin arka plandaki çok katı kurallarının bir sonucudur.

Bu yazıda, müzik arşivimizi yedeklerken bizi tatlı bir hayalet avına çıkaran “Büyük/Küçük Harf Duyarlılığı” (Case-Sensitivity) ve “TrueNAS Yetki Savaşları” konularını, yani makinelerin dünyasındaki o katı mantığı ele alıyoruz.

🔠 1. Perde: Linux’un Paralel Evrenleri (Muzik vs. muzik)

Windows kullanıcıları için “Müzik” ve “müzik” klasörleri aynı şeydir. Windows dosya sistemi (NTFS) büyük ve küçük harfleri ayırt etmez (case-insensitive). Ancak sunucularımızın kalbi olan Linux dünyasında (ve TrueNAS’ın kullandığı ZFS dosya sisteminde) işler tamamen değişir.

Linux için Muzik ve muzik iki farklı evrendir.

Biz Docker konteynerimizi kurarken, müzik arşivimizin yolunu büyük harf yerine küçük harfle (muzik) yazdık. Linux dosya sistemi, bu yolun diskte var olmadığını görünce hata fırlatmak yerine saniyeler içinde paralel, gizli ve tamamen boş ikinci bir klasör oluşturdu.

İndirdiğimiz 290 küsur şarkı bu yeni açılan küçük harfli klasöre aktı. Windows bilgisayarımızdan ağ paylaşımıyla bağlandığımızda ise biz asıl büyük harfle başlayan Muzik klasörüne baktığımız için yeni şarkıları göremedik.

Altın Kural: Linux tabanlı sistemlerde dosya ve klasör yollarındaki tek bir harfin büyüklüğü, verilerinizi bambaşka bir paralel evrene gönderebilir.

👤 2. Perde: Sahiplik Savaşları (Docker’ın “Root” Kibri)

Klasör yollarını eşitledikten sonra bile dosyaların ağ paylaşımında görünmemesinin arkasında başka bir kahraman var: Kullanıcı İzinleri (Permissions).

Docker konteynerleri, varsayılan olarak sistemin en yetkili kullanıcısı olan root kimliğiyle çalışır. SpotDL aracımız şarkıları indirip bizim klasörümüze yazarken, bu dosyalara root mührünü bastı.

Ancak siz bilgisayarınızdan TrueNAS sunucunuza bağlanırken root olarak değil, normal bir kullanıcı (örneğin truenas_admin veya apps) olarak bağlanırsınız. TrueNAS’ın katı güvenlik duvarı (ACL) devreye girer ve normal kullanıcılara şunu söyler:

“Dur bakalım! Bu dosyaları en yetkili makam (root) oluşturdu. Senin bunları görmeye ve okumaya iznin yok!”

Sonuç olarak dosyalar oradadır, diskte yer kaplıyordur ama siz onları ağ paylaşımında (SMB/NFS) göremezsiniz.

🛡️ 3. Perde: TrueNAS SCALE’in Katı Güvenlik Yapısı (NFSv4 ACL)

Geleneksel Linux sistemlerinde bu sorunu çözmek için terminale chmod -R 775 yazıp geçersiniz. Ancak modern depolama sunucuları (TrueNAS SCALE gibi) standart Linux izinleri yerine çok daha gelişmiş olan NFSv4 ACL (Erişim Kontrol Listesi) kullanır.

Siz terminalden zorla chmod çalıştırmaya kalktığınızda sistem size “Operation not permitted” (İşleme izin verilmedi) hatasını fırlatır. TrueNAS, dosya sisteminin güvenliğini korumak için terminalden doğrudan müdahaleyi engeller.

🛠️ Çözümün Anatomisi

Bu düğümü çözmek için iki aşamalı bir operasyon uygulamamız gerekir:

  1. Sahipliği Devretmek (chown): Terminalden sudo chown -R apps:apps /klasor/yolu komutuyla, dosyaların sahipliğini kibirli root kullanıcısından alıp TrueNAS’ın kendi ortak uygulama kullanıcısı olan apps grubuna devrederiz.
  2. TrueNAS Arayüzünden Yetkiyi Mühürlemek: TrueNAS arayüzündeki Datasets menüsünden ilgili klasörün ACL ayarlarına girip “Apply recursively” (Alt klasörlere de uygula) seçeneğini işaretleyerek kaydederiz. Bu işlem, TrueNAS’ın tüm ağ paylaşım izinlerini saniyeler içinde arka planda sıfırlar ve dosyaları görünür kılar.

🏆 Son Söz: Sysadmin Dünyasında Hayaletler Yoktur

Ev sunucusu (Self-hosting) kurma yolculuğunda başınıza gelen bu tarz “görünmez dosya” gizemleri aslında sistem yöneticiliğinin en öğretici anlarıdır. Makinelerin dünyasında tesadüflere, şansa veya hayaletlere yer yoktur; sadece çok katı kurallar, sahiplik izinleri ve büyük/küçük harf hassasiyetleri vardır.

Bu kuralları bir kez anladığınızda, sisteminizi kendi lehinize bükmek ve evinizde kesintisiz çalışan o kusursuz medya sunucusunu yönetmek çocuk oyuncağı haline gelir.

Leave a Reply

Your email address will not be published. Required fields are marked *