Skip to main content

🛡️ Sudoers Dosyasını Güvenli Şekilde Düzenleme Rehberi (visudo Kullanımı)

🎯 Bu Rehberde Ne Öğreneceksiniz

Bu rehber, Linux sistemlerinde /etc/sudoers dosyasını güvenli şekilde nasıl düzenleyeceğinizi, kullanıcı ayrıcalıklarını nasıl yöneteceğinizi ve olası kilitlenmeleri nasıl önleyeceğinizi adım adım anlatır.
visudo komutunun neden bu işlem için tek doğru araç olduğunu, söz dizimi hatalarını nasıl tespit edeceğinizi ve en az ayrıcalık (Least Privilege) ilkesine uygun kurallar oluşturmayı öğreneceksiniz.
Ayrıca, hassas yetkilendirme örnekleriyle (örneğin yalnızca Nginx reload izni) pratik uygulamaları göreceksiniz.


🧠 Teknik Özet

Ana Konu: /etc/sudoers dosyasını visudo komutuyla güvenli ve hatasız düzenleme.
Çözülen Problem: Yanlış yapılandırmanın sistemi idari erişime kapatmasını (lockout) önlemek.
İzlenen Adımlar:

  1. visudo ile güvenli düzenleme
  2. visudo -c ile söz dizimi doğrulama
  3. Grup bazlı yetkilendirme (sudo / wheel)
  4. En az ayrıcalık kuralı ve mutlak yollar
  5. Günlük kayıtlarını izleme (/var/log/auth.log)

🔒 Neden visudo Kullanmalısınız?

visudo, sudoers dosyasını düzenlemek için tek güvenli araçtır. Normal bir metin düzenleyiciyle yapılan hatalar, tüm sudo erişiminizi kilitleyebilir.

✅ Avantajları

  • Özel Kilit (Lock): Aynı anda birden fazla yöneticinin düzenlemesini engeller.
  • Söz Dizimi Kontrolü: Hatalı kayıtları kaydetmeden reddeder.
  • Parçacık Düzenleme (-f): /etc/sudoers.d/ altında modüler yapı sağlar.
# Sudoers dosyasının söz dizimini kontrol et
sudo visudo -c

Geçerli yapılandırmada “parsed OK” çıktısı görmelisiniz.


⚙️ 1. Yetki Yükseltme Yöntemleri

Linux’ta yönetici yetkisi üç farklı şekilde alınabilir. Günlük işler için en güvenli ve denetlenebilir yöntem sudo’dur.

Yöntem Komut Güvenlik Düzeyi Ne Zaman Kullanılmalı 🟢 Sudo (önerilen) sudo, sudo -i En güvenli, denetlenebilir Günlük sistem yönetimi 🟡 su su Parola paylaşımı riski Sudo yapılandırılmamış sistemler 🔴 Root login ssh root@sunucu En riskli yöntem Sadece kurtarma modunda


# Kullanıcının sudo yetkilerini görüntüle
sudo -l

🧩 2. Kullanıcıya Sudo Yetkisi Verme (Grup Bazlı Yönetim)

Kullanıcıya doğrudan ALL=(ALL) ALL vermek yerine, onu sistemin yönetim grubuna eklemek en güvenli yoldur.

DağıtımGrup AdıKomut
Ubuntu / Debiansudosudo usermod -aG sudo <kullanıcı>
RHEL / CentOS / AlmaLinuxwheelsudo usermod -aG wheel <kullanıcı>

# Kullanıcıyı Ubuntu'da 'sudo' grubuna ekle
sudo usermod -aG sudo yeni_yonetici

RHEL tabanlı sistemlerde visudo ile %wheel ALL=(ALL) ALL satırının yorumdan çıkarıldığından emin olun.


🔐 3. Güvenli Kural Yazımı (Least Privilege İlkesi)

1️⃣ Parçacık Dosyası Oluştur


sudo visudo -f /etc/sudoers.d/90-rabisu-ops

2️⃣ Mutlak Yollar Kullanın


# systemctl'in mutlak yolu
command -v systemctl
# Örnek çıktı: /usr/bin/systemctl

3️⃣ NOPASSWD Etiketini Dikkatli Kullanın


# /etc/sudoers.d/90-rabisu-ops
%deployer ALL=(root) NOPASSWD: /usr/bin/systemctl reload nginx

Bu kural sadece Nginx reload işlemine izin verir, stop/restart’a değil.

4️⃣ Değişiklikleri Doğrulama


sudo visudo -c
sudo -k && sudo -l
sudo /usr/bin/systemctl reload nginx

🧰 4. Sudoers Sorun Giderme

SorunNedenÇözüm
user not in the sudoers fileKullanıcı sudo grubunda değilsudo usermod -aG sudo <kullanıcı>
parse error near 'ALL'Yazım hatasıvisudo -c ile kontrol et
NOPASSWD çalışmıyorÇakışan kural varÜstteki PASSWD kuralını kaldır
Sudo tamamen bozulduHatalı yapılandırmapkexec visudo veya single-user mode

⚡ 5. Kurtarma (Sudo Bozulduğunda)

Erişimi kaybettiysen aşağıdaki adımları sırayla uygula 👇

Sistemi recovery mode veya single-user mode’da başlat.

Root dosya sistemini yazılabilir yap:


mount -o remount,rw /

Dosyayı düzelt:


visudo
visudo -c

Sistemi yeniden başlat:


reboot

📊 6. Sudo Günlüklerini Görüntüleme

DağıtımLog Dosyası
Ubuntu / Debian/var/log/auth.log
RHEL / CentOS / Fedora/var/log/secure

# Son 50 sudo kaydını listele
sudo grep -i sudo /var/log/auth.log | tail -n 50

💡 Sıkça Sorulan Sorular (SSS)

  1. Sudo neden çalışmıyor?

Muhtemelen kullanıcı sudo grubunda değil veya dosyada sözdizimi hatası var.

  1. Neden /etc/sudoers.d/ kullanmalıyım?

Kuralları modüler hale getirir, denetimi kolaylaştırır, güncellemelerde çakışma önler.

  1. Parolasız sudo güvenli mi?

Sadece belirli komutlar (ör. log görüntüleme veya reload işlemi) için önerilir.

  1. visudo dışında düzenleyebilir miyim?

Hayır. Çünkü visudo, hatalı yapılandırmaları engelleyen tek güvenli yoldur.


🚀 Sonuç

Artık sudoers dosyasını güvenle düzenlemeyi, visudo ile doğrulama yapmayı ve root erişim hatalarını gidermeyi biliyorsun. Sistemdeki her yetkiyi en az ayrıcalık prensibine göre tanımlayarak güvenliği katlayabilirsin. 💡 Rabisu Bulut ortamında bu yapılandırmaları uygulayarak daha güvenli bir sistem yönetimi deneyimi elde et!