Pardus'ta Modüler Yapılandırma Sanatı: .d Dizinleri
Linux sistem yönetiminde en sık karşılaşılan ve sistemin düzenli çalışmasını sağlayan en kritik yapılardan biri /etc/ altındaki .d (directory) takılı dizinlerdir. Bu makale, modüler yapılandırma mantığını ve bu dizinlerin nasıl yönetilmesi gerektiğini detaylandırmaktadır.
1. /etc/*.d/ Mantığı Nedir?
Geleneksel Linux sistemlerinde yapılandırma ayarları genellikle tek bir dosya içinde (örneğin /etc/sudoers veya /etc/apt/sources.list) tutulurdu. Ancak sistem karmaşıklaştıkça ve yüklü yazılım sayısı arttıkça, bu devasa dosyaları yönetmek zorlaştı.
İşte bu noktada modüler yapılandırma devreye girer. Bir ana yapılandırma dosyasını doğrudan düzenlemek yerine, ayarların küçük parçalar halinde özel bir dizin altında saklanmasına izin verilir. Bu dizinlerin sonundaki .d, "directory" (dizin) kelimesini temsil eder.
Temel Avantajları:
Paket Yönetimi: Bir yazılım güncellendiğinde, ana yapılandırma dosyasının üzerine yazılması (overwriting) riskini ortadan kaldırır. Yazılım kendi ayarlarını
.ddizini içine bırakır.Otomasyon: Ansible, Puppet veya Bash scriptleri gibi araçlarla tek bir satırı değiştirmek yerine, yeni bir dosya ekleyip silmek çok daha güvenli ve kolaydır.
Hata Ayıklama: Bir ayar sistemde sorun çıkarıyorsa, ilgili dosyayı dizinden taşımak veya silmek tüm sistemi etkilemeden sorunu izole etmeyi sağlar.
🧩 Neden *.d Dizinleri Var?
🎯 Temel Amaç: Modülerlik
Eskiden:
Şimdi:
Bunun sebebi:
| Problem | Çözüm |
|---|---|
| Tek dosyada karmaşa | Küçük dosyalara bölme |
| Paket güncellemesinde çakışma | Paketler kendi .d dosyasını ekler |
| Merkezi yönetim zor | Politika dosyası ekle-çıkar |
| Geri dönüş zor | Dosyayı sil, bitti |
👉 .d = “drop-in configuration”
Yani: “Bu dizine bırakırsan sistem okur”
2. Yaygın Kullanılan *.d Dizinleri
Sistemde en sık karşılaşacağınız modüler dizin yapıları şunlardır:
| Dizin Yolu | Kullanım Amacı |
| /etc/apt/sources.list.d/ | Ekstra yazılım depolarını (repository) eklemek için kullanılır. |
| /etc/sudoers.d/ | Kullanıcılara sudo yetkisi veren dosyaları barındırır. |
| /etc/sysctl.d/ | Kernel parametrelerini (çekirdek ayarları) düzenlemek için kullanılır. |
| /etc/profile.d/ | Tüm kullanıcılar için geçerli olacak ortam değişkenlerini (PATH vb.) tutar. |
| /etc/cron.d/ | Zamanlanmış görevlerin (cron jobs) tanımlandığı dizindir. |
| /etc/systemd/system/*.d/ | Systemd servislerini ana dosyasını bozmadan modifiye etmek için kullanılır (Drop-in files). |
3. Çalışma Mantığı: Dosya Sıralaması
Linux servisleri bu dizinlerin içindeki dosyaları genellikle alfabetik sırayla okur. Bu nedenle dosya isimlerinin başında genellikle rakamlar kullanılır.
00-99 Arası Numaralandırma: Dosyaların hangi öncelikle işleneceğini belirler.
01_custom_proxy.conf→ Önce okunur.99_final_settings.conf→ En son okunur ve önceki dosyalardaki aynı ayarları ezebilir (override).
Önemli Not: Genellikle bu dizinlerdeki dosyaların
.confuzantısına sahip olması istenir. Bazı servisler uzantısı olmayan veya farklı uzantılı dosyaları güvenlik gereği görmezden gelir.
4. Uygulamalı Örnek: sudoers.d Kullanımı
Diyelim ki bir kullanıcıya şifresiz sudo yetkisi vermek istiyorsunuz. /etc/sudoers dosyasını visudo ile açıp bozma riskine girmek yerine şu adımları izlersiniz:
/etc/sudoers.d/ altında bir dosya oluşturun:
sudo nano /etc/sudoers.d/kullanici_izni
İçine şu satırı yazın:
kullanici_adi ALL=(ALL) NOPASSWD:ALL
Dosyanın izinlerini güvenli hale getirin (Zorunludur, aksi halde sistem dosyayı reddeder):
sudo chmod 0440 /etc/sudoers.d/kullanici_izni
Artık ana dosyaya dokunmadan bu kullanıcıya yetki vermiş oldunuz. Yetkiyi geri almak için dosyayı silmeniz yeterlidir.
5. Sistem Yöneticileri İçin İpuçları
Include Komutu: Eğer kendi uygulamanız için bir
.dyapısı kurmak istiyorsanız, ana yapılandırma dosyanızın içineinclude /etc/uygulama/conf.d/*.confgibi bir satır eklemeniz gerekir.İzinler (Permissions):
/etc/*.d/içindeki dosyaların genellikleroot:rootsahipliğinde ve644(bazı durumlarda440) izinlerinde olması gerekir.Temiz Tutun: Deneme yapmak için oluşturduğunuz yedek dosyaları (örneğin
ayar.conf.bak) bu dizinlerde bırakmayın. Servisler.bakdosyasını da yapılandırma olarak okumaya çalışıp hata verebilir.
6. Neden Modern Linux .d Yapısını Zorunlu Hale Getirdi?
Çünkü:
-
🔄 Güncellemeler güvenli
-
🧩 Konfigürasyonlar modüler
-
🧑🏫 Eğitim ortamlarında geri dönüş kolay
-
🧰 Otomasyon sistemleriyle uyumlu
Modern Linux = monolitik dosya değil, modüler politika
7. Özet
-
/etc/*.d/dizinleri modern Linux’un bel kemiğidir -
Sistem güvenliği ve yönetilebilirlik burada başlar
-
Pardus gibi dağıtımlarda bilinmesi şarttır
Yorumlar