Pardus Sistemlerde Profesyonel Yetkilendirme: /etc/sudoers.d/

Linux sistem yönetiminde yetki yönetimi denilince akla gelen ilk dosya /etc/sudoers dosyasıdır. Ancak modern Linux dağıtımlarında, bu ana dosyayı doğrudan düzenlemek yerine /etc/sudoers.d/ dizinini kullanmak çok daha güvenli ve yönetilebilir bir yöntemdir.

Bu makalede, bu dizinin neden var olduğunu, nasıl çalıştığını ve sistem yöneticileri için neden kritik bir öneme sahip olduğunu inceleyeceğiz.


/etc/sudoers.d/ Nedir?

/etc/sudoers.d/ dizini, kullanıcıların ve grupların sudo (superuser do) yetkilerini tanımlayan parçalı yapılandırma dosyalarını barındıran bir klasördür. Ana /etc/sudoers dosyasının en alt kısmında yer alan şu satır sayesinde bu dizindeki dosyalar otomatik olarak işleme alınır:

Bash:
#includedir /etc/sudoers.d

Not: Buradaki # işareti bir yorum satırı değildir; sudo yapılandırmasında bir "include" (dahil etme) komutudur.


Neden /etc/sudoers.d/ Kullanmalıyız?

Sistem yöneticilerinin ana dosyayı düzenlemek yerine bu dizini tercih etmelerinin birkaç temel sebebi vardır:

  1. Modülerlik: Her kullanıcı veya uygulama grubu için ayrı bir dosya oluşturabilirsiniz. Örneğin; bt-ekibi, web-adminler gibi ayrı dosyalar yönetimi kolaylaştırır.

  2. Paket Yönetimi: Bir yazılım (örneğin Docker veya bir yedekleme aracı) kurulduğunda, ana dosyayı değiştirmek yerine bu dizine kendi kurallarını içeren bir dosya bırakabilir.

  3. Hata Riskinin Azalması: Ana /etc/sudoers dosyasında yapılacak bir yazım hatası, sistemdeki tüm sudo yetkilerini bozabilir ve sizi sistemin dışında bırakabilir. Parçalı dosyalarda hata yaparsanız, sadece o dosya etkilenir.

  4. Otomasyon (Ansible, Puppet, Terraform): Sunucu yapılandırma araçlarıyla yetki dağıtmak, tek bir büyük dosyayı satır satır düzenlemekten çok daha pratiktir.

Pardus ETAP 23’te Neden Önemlidir?

ETAP 23 ortamlarında:

  • 👨‍🏫 Öğretmen

  • 👨‍🎓 Öğrenci

  • 🖥️ Akıllı Tahta (Vestel ETAP)

  • 🧑‍💻 Teknik Sorumlu

farklı yetki seviyeleri gerekir.

👉 /etc/sudoers.d/ sayesinde:

  • Öğrenci asla tam yetki alamaz

  • Öğretmen sınırlı sudo kullanır

  • Teknik kullanıcı tam kontrol sağlar

  • Yetkiler LeaderAhenk / paket ile dağıtılabilir

Temel Özellikler

  • /etc/sudoers dosyası tarafından otomatik okunur

  • Her yetki ayrı dosyalarda tanımlanabilir

  • Paketler, politikalar ve okul senaryoları için temiz ve güvenli yapı sağlar

  • Hata durumunda ana sudoers dosyasını bozmaz

📂 Örnek dizin yapısı:

/etc/sudoers.d/ ├── 00-root ├── etapadmin ├── ogretmenler ├── yazici └── kapanis

Dosya Oluşturma Kuralları ve Güvenlik

/etc/sudoers.d/ içerisine dosya eklerken şu iki kurala mutlaka uymalısınız:

1. Dosya İsimlendirme

Bu dizin altındaki dosyaların isimlerinde nokta (.) bulunmamalıdır ve dosya isimleri tilde (~) ile bitmemelidir. Aksi takdirde sudo bu dosyaları görmezden gelir.

  • Doğru: yazilim-ekibi

  • Yanlış: yazilim.ekibi, kullanici.conf

2. Dosya İzinleri

Güvenlik nedeniyle bu dizindeki dosyaların izinleri çok sıkı tutulmalıdır. İzinleri yanlış olan dosyalar sudo tarafından okunmaz.

  • Dosya sahibi: root:root

  • İzinler: 0440 (Sadece root tarafından okunabilir)


Uygulama: Yeni Bir Yetki Dosyası Nasıl Oluşturulur?

Bir kullanıcıya şifre sormadan sadece belirli komutları çalıştırma yetkisi vermek istediğimizi varsayalım.

1. Dosyayı visudo ile oluşturun: Dosyayı doğrudan herhangi bir metin düzenleyici ile açmak yerine visudo komutunu kullanmak, dosya kaydedilmeden önce sözdizimi (syntax) hatası olup olmadığını denetler.

Bash:
sudo visudo -f /etc/sudoers.d/ozel-yetkiler

2. Yetki kuralını ekleyin: Dosyanın içine şu satırı ekleyin (örneğin nuri kullanıcısı için):

Plaintext
nuri ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade

3. Dosya izinlerini kontrol edin: Eğer visudo dışında bir yöntemle oluşturduysanız izinleri şu şekilde düzenleyin:

Bash
sudo chmod 0440 /etc/sudoers.d/ozel-yetkiler
sudo chown root:root /etc/sudoers.d/ozel-yetkiler

Hata Denetimi

Yaptığınız değişikliklerin geçerli olup olmadığını anlamak için şu komutu kullanabilirsiniz:

Bash
sudo visudo -cf /etc/sudoers.d/ozel-yetkiler

Eğer çıktı olarak .../ozel-yetkiler: parsed OK alıyorsanız, her şey yolunda demektir.


Sonuç

/etc/sudoers.d/ dizini, özellikle Pardus gibi kurumsal dağıtımlarda ve sunucu yönetimi süreçlerinde sistemin bütünlüğünü korumak için en iyi yöntemdir. "Clean Code" prensiplerinde olduğu gibi, sistem yapılandırmasında da "Parçala ve Yönet" kuralı hayat kurtarır.

/etc/sudoers.d/ dizini, Pardus ETAP 23 ortamlarında:

✅ Güvenli
✅ Modüler
✅ Yönetilebilir
✅ Kurumsal

bir sudo yetkilendirme yapısı sunar.

Sık Yapılan Hatalar

HataSonuç
Dosya izni 644sudo çalışmaz
visudo kullanılmamasıSistem kilitlenebilir
Tek dosyada her şeyYönetilemez yapı
NOPASSWD: ALLGüvenlik açığı

Güvenlik Kuralları (ALTIN KURALLAR)

🚫 NOPASSWD: ALL kullanmaktan kaçın
🚫 Öğrencilere sudo verme
🚫 Tek dosyada her şeyi toplama
✅ Yetkileri en az ayrıcalık prensibiyle ver
✅ Her rol için ayrı dosya oluştur.

Örnek Senaryolar (ETAP 23 Uyumlu)


1 etapadmin Kullanıcısına Tam Yetki

etapadmin ALL=(ALL:ALL) ALL

✔ Teknik sorumlu
✔ Bakım / güncelleme
✔ Sistem yönetimi


2 Öğretmenlere Sınırlı Yetki

%ogretmenler ALL=(root) NOPASSWD: \ /usr/bin/systemctl restart cups, \ /usr/sbin/reboot

✔ Yazıcıyı yeniden başlatabilir
✔ Tahtayı yeniden başlatabilir
❌ Paket kuramaz
❌ Sistem dosyası silemez


3 Öğrenciler İçin Sudo TAMAMEN KAPALI

%ogrenciler ALL=(ALL) !ALL

✔ Güvenli
✔ Sınav ortamı uyumlu
✔ Yetki yükseltme engelli


4 Sadece Yazıcı Servisini Yetkilendirme

ogretmen ALL=(root) NOPASSWD: /usr/sbin/service cups restart

5 Otomatik Kapanış Scripti Yetkisi

%ogretmenler ALL=(root) NOPASSWD: /usr/local/bin/etap-kapanis.sh

✔ Script çalışır
❌ Başka root komutu çalışmaz

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Başlangıç Onarma