Linux güçlü, esnek ve son derece özelleştirilebilir bir işletim sistemidir. Onu bu kadar güçlü yapan şeylerden biri de, sistem davranışını ihtiyaçlarınıza göre değiştirmenize olanak tanıyan yapılandırma dosyalarıdır.
İster masaüstü Linux kullanıyor olun, ister bir sunucu yönetiyor olun, zamanla bazı dosyalarla mutlaka yolunuz kesişir. Ağ ayarlarını değiştirmek, kullanıcı yönetmek, sistem başlangıcını düzenlemek ya da paket kaynaklarını yapılandırmak istediğinizde çoğu zaman /etc dizinindeki yapılandırma dosyaları devreye girer.
Bu yazıda, Linux sistemlerinde en yaygın kullanılan ve bilinmesi gereken önemli yapılandırma dosyalarına yakından bakacağız. Ayrıca bazı dosyaların modern Linux dağıtımlarındaki güncel durumuna da değineceğiz.
Linux Yapılandırma Dosyaları Neden Önemlidir?
Linux sistemlerinde birçok ayar grafik arayüz yerine metin dosyaları üzerinden yapılır. Bu yaklaşım ilk bakışta karmaşık görünse de aslında büyük bir avantaj sağlar:
- Sistem davranışını ayrıntılı şekilde kontrol etmenize izin verir.
- Yapılan değişiklikleri kolayca takip etmenizi sağlar.
- Sunucu ve masaüstü sistemlerinde otomasyonu kolaylaştırır.
- Sorun giderme sırasında büyük kolaylık sağlar.
Şimdi Linux’ta sık kullanılan yapılandırma dosyalarına tek tek bakalım.
1. /etc/fstab
Linux sisteminde dosya sistemlerinin nasıl bağlanacağını belirleyen en önemli dosyalardan biridir.
Bu dosya, sistem açılışı sırasında hangi disklerin, bölümlerin veya ağ sürücülerinin hangi bağlama noktalarına bağlanacağını tanımlar. Ayrıca bağlama seçenekleri de burada belirtilir.
Örneğin:
- Harici disklerin otomatik bağlanması
- Ayrı /home bölümü kullanımı
- SSD optimizasyon seçenekleri
- Ağ sürücülerinin otomatik bağlanması
gibi işlemler bu dosya üzerinden yönetilebilir.
Dikkat: Yanlış yapılandırılmış bir fstab dosyası sistemin açılmasını engelleyebilir.
2. /etc/passwd
Linux sistemindeki kullanıcı hesaplarına ait temel bilgileri içerir.
Bu dosyada şunlar bulunur:
- Kullanıcı adı
- UID (User ID)
- GID (Group ID)
- Ev dizini
- Varsayılan kabuk (shell)
Birçok kişinin düşündüğünün aksine, modern Linux sistemlerinde parola bilgileri burada saklanmaz.
Bu dosya tüm kullanıcılar tarafından okunabilir durumdadır. Güvenlik nedeniyle parola verileri artık başka bir dosyada tutulur.
3. /etc/shadow
Linux sistemindeki şifrelenmiş parola bilgilerini içeren kritik güvenlik dosyasıdır.
/etc/passwd dosyasından farklı olarak yalnızca yönetici yetkisine sahip kullanıcılar tarafından okunabilir.
Bu dosyada:
- Şifrelenmiş parola bilgileri
- Parola son kullanma tarihleri
- Hesap kilitleme seçenekleri
- Güvenlik ayarları
yer alır.
Linux güvenliğinin temel taşlarından biri sayılır.
4. /etc/group
Linux sistemindeki grupları ve grup üyeliklerini tanımlar.
Linux’ta yetkilendirme sistemi kullanıcılar ve gruplar üzerinden çalışır. Bu nedenle grup yapısını anlamak oldukça önemlidir.
Örneğin:
- sudo
- audio
- video
- docker
gibi sistem grupları burada yer alır.
Kullanıcı izinlerini düzenlemek için sık kullanılan dosyalardan biridir.
5. /etc/sudoers
Kimlerin yönetici yetkileriyle komut çalıştırabileceğini belirleyen dosyadır.
Linux’ta doğrudan root kullanmak yerine genellikle sudo tercih edilir. İşte bu davranışı kontrol eden dosya budur.
Bu dosyada:
- Hangi kullanıcıların sudo kullanabileceği
- Hangi komutların çalıştırılabileceği
- Yetki kısıtlamaları
tanımlanır.
Önemli: Bu dosya doğrudan düzenlenmek yerine genellikle visudo komutuyla düzenlenmelidir.
6. /etc/resolv.conf
DNS yapılandırmasını yönetmek için kullanılır.
Bir sistemin alan adlarını IP adreslerine çevirebilmesi için DNS sunucularına ihtiyacı vardır. İşte bu bilgiler burada tutulur.
Örneğin:
- DNS sunucuları
- Arama alanları (search domains)
- Resolver seçenekleri
bu dosyada yer alır.
Ancak modern Linux dağıtımlarında bu dosya çoğu zaman otomatik olarak oluşturulur. Özellikle:
- systemd-resolved
- NetworkManager
tarafından yönetilebilir.
Bu nedenle doğrudan yapılan değişiklikler kalıcı olmayabilir.
7. /etc/network/interfaces
Özellikle Debian tabanlı sistemlerde ağ yapılandırması için kullanılır.
Bu dosya sayesinde:
- Statik IP adresi verme
- DHCP yapılandırması
- Ağ geçidi ayarlama
- Ağ maskesi tanımlama
gibi işlemler yapılabilir.
Ancak modern Linux dağıtımlarında bu yapı büyük ölçüde değişmiştir.
Bugün çoğu sistem:
- Netplan
- NetworkManager
- systemd-networkd
gibi araçları kullanır.
8. /etc/hosts
Yerel isim çözümleme işlemleri için kullanılır.
Alan adlarını doğrudan IP adreslerine eşlemek istediğinizde işe yarar.
Örneğin:
- 127.0.0.1 localhost
- 192.168.1.10 server.local
şeklinde tanımlar yapılabilir.
Özellikle:
- Yerel test ortamlarında
- Reklam engellemede
- Ağ içi sunucularda
sık kullanılır.
9. /etc/sysctl.conf
Linux çekirdeği parametrelerini çalışma sırasında yapılandırmak için kullanılır.
Performans ve ağ ayarlarını değiştirmek isteyen ileri düzey kullanıcılar için oldukça önemlidir.
Örneğin:
- Ağ tampon ayarları
- IPv6 kapatma
- Bellek yönetimi
- Kernel optimizasyonları
buradan yönetilebilir.
10. /etc/services
Sistem servislerini port numaralarıyla eşleştiren dosyadır.
Örneğin:
- HTTP → 80
- HTTPS → 443
- SSH → 22
gibi bilgiler burada tanımlıdır.
Ağ servislerini anlamak açısından faydalı bir dosyadır.
11. /etc/aliases
E-posta yönlendirmeleri için kullanılır.
Bir kullanıcıya gelen e-postanın başka kullanıcıya yönlendirilmesi gibi işlemler burada tanımlanır.
Özellikle Linux mail sunucularında önemlidir.
12. /etc/crontab
Görev zamanlaması için kullanılan sistem dosyasıdır. Belirli komutların otomatik çalıştırılmasını sağlar.
Örneğin:
- Otomatik yedekleme
- Log temizleme
- Güncelleme betikleri
- Sunucu bakım işleri
buradan planlanabilir.
13. /etc/rc.local
Eskiden önyükleme sırasında komut çalıştırmak için oldukça yaygın kullanılırdı.
Sistem açıldıktan sonra otomatik çalışmasını istediğiniz komutları burada tanımlayabiliyordunuz.
Ancak günümüzde systemd kullanan sistemlerde önemi büyük ölçüde azalmıştır.
Modern Linux dağıtımlarında genellikle:
- systemd servis dosyaları
- timer servisleri
tercih edilir.
14. /etc/default/locale
Sistem dil ayarlarını yapılandırmak için kullanılır.
Örneğin:
- Dil seçimi
- Bölgesel ayarlar
- Karakter kodlaması
burada tanımlanır.
15. /etc/environment
Sistem genelinde ortam değişkenlerini tanımlamak için kullanılır.
Örneğin:
- PATH değişkenleri
- Proxy ayarları
- Uygulama ortam değişkenleri
buradan ayarlanabilir.
16. /etc/default/keyboard
Klavye düzeni ayarlarını yönetmek için kullanılır.
Örneğin:
- Türkçe Q klavye
- Türkçe F klavye
- İngilizce düzenler
burada tanımlanabilir.
17. /etc/apt/sources.list
Debian ve Ubuntu tabanlı sistemlerde paket kaynaklarını yönetir.
Bu dosya:
- Resmî depolar
- Üçüncü taraf yazılım kaynakları
- Güncelleme sunucuları
için kullanılır.
Yanlış yapılandırılması paket sorunlarına yol açabilir.
18. /etc/bash.bashrc
Bash kabuğunun sistem genelindeki yapılandırma dosyasıdır.
Yeni bir terminal açıldığında:
- Alias tanımları
- Kabuk ayarları
- Ortam değişkenleri
buradan yüklenebilir.
19. /etc/sysconfig/network
Özellikle eski ve Red Hat tabanlı sistemlerde ağ yapılandırması için kullanılmıştır.
Modern sistemlerde rolü önemli ölçüde azalmıştır, çünkü günümüzde çoğu dağıtım ağ yönetimini farklı araçlarla gerçekleştirir.
20. /etc/modprobe.d/blacklist.conf
İstenmeyen çekirdek modüllerini kara listeye almak için kullanılır.
Örneğin:
- Sorun çıkaran sürücüler
- Kullanılmayan modüller
- Donanım çakışmaları
için tercih edilir.
21. /etc/udev/rules.d/70-persistent-net.rules
Eski Linux sistemlerinde ağ arayüzlerine kalıcı isim vermek için kullanılırdı.
Örneğin:
- eth0
- wlan0
gibi isimler atanırdı.
Modern Linux sistemlerinde bunun yerini çoğunlukla:
- enp3s0
- wlp2s0
gibi öngörülebilir ağ isimlendirmesi almıştır.
22. /etc/default/grub
GRUB önyükleyicisini yapılandırmak için kullanılır.
Buradan:
- Varsayılan çekirdek seçimi
- Açılış süresi
- Çözünürlük ayarları
- Kernel parametreleri
düzenlenebilir.
Değişikliklerden sonra genellikle:
sudo update-grub
komutu çalıştırılır.
23. /etc/X11/xorg.conf
X grafik sistemini yapılandırmak için kullanılır.
Eskiden ekran kartı, monitör ve çözünürlük ayarları burada manuel yapılırdı.
Ancak modern Linux sistemlerinde çoğu donanım otomatik algılanır.
Ayrıca günümüzde birçok dağıtım:
- Wayland
- Modern ekran yöneticileri
kullandığı için bu dosya çoğu zaman bulunmaz.
24. /etc/rsyslog.conf
Sistem günlüklerini (log) yönetmek için kullanılır.
Linux’ta oluşan olaylar burada yapılandırılan kurallara göre kaydedilir.
Özellikle:
- Sunucu yönetimi
- Hata ayıklama
- Güvenlik incelemeleri
açısından kritik öneme sahiptir.
Sonuç
Linux’un gücü büyük ölçüde yapılandırılabilir olmasından gelir. Bu yapılandırmanın merkezinde ise çoğunlukla /etc dizininde bulunan dosyalar yer alır.
Her Linux kullanıcısının bu dosyaların tamamını ezbere bilmesi gerekmez. Ancak temel yapılandırma dosyalarını tanımak, hem sorun giderme sürecini kolaylaştırır hem de sistemi daha bilinçli kullanmanızı sağlar.
Özellikle sistem yönetimi, sunucu kullanımı veya ileri düzey Linux öğrenme hedefiniz varsa, bu dosyaları tanımak size ciddi avantaj sağlayacaktır.
