Pardus visudo ve Güvenli sudoers Kullanımı
Linux sistem yönetiminde en kritik dosyalardan biri /etc/sudoers dosyasıdır. Bu dosya, hangi kullanıcının hangi yetkilerle komut çalıştırabileceğini belirler. Bu dosyayı doğrudan bir metin editörüyle (nano veya vi gibi) açıp düzenlemek oldukça risklidir; çünkü yapılacak tek bir yazım hatası tüm sistemin sudo yetkisini kaybetmesine neden olabilir. İşte bu noktada visudo devreye girer.
visudo Nedir?
visudo, /etc/sudoers dosyasını güvenli bir şekilde düzenlemek için tasarlanmış bir araçtır. İki temel avantaj sunar:
Sözdizimi Denetimi: Dosyayı kaydederken hata varsa sizi uyarır ve hatalı haliyle kaydetmenize izin vermez.
Dosya Kilitleme: Aynı anda birden fazla kişinin dosyayı düzenlemesini engelleyerek veri kaybını önler.
Temel Kullanım
visudo komutunu çalıştırmak için root yetkisi gerekir:
sudo visudo
Varsayılan editör genellikle vi veya nano olur. Eğer editörü değiştirmek isterseniz şu komutu kullanabilirsiniz:
sudo EDITOR=nano visudo
sudoers Dosya Yapısı
Bir yetkilendirme satırı genellikle şu formatta olur:
kullanıcı host=(çalıştırılacak_kullanıcı:grup) komut
Örnek Parçalama:
nuri ALL=(ALL:ALL) /usr/bin/apt
nuri: Bu kuralın geçerli olduğu kullanıcı.
ALL (Birinci): Kuralın geçerli olduğu makineler (Genelde ALL bırakılır).
ALL:ALL (Parantez içi): Hangi kullanıcı ve grup yetkileriyle komutun çalıştırılabileceği.
/usr/bin/apt: Kullanıcının çalıştırmasına izin verilen spesifik komut.
Sık Kullanılan Senaryolar
1. Bir Kullanıcıya Tam Yetki Verme
Kullanıcının her komutu şifreyle çalıştırmasını sağlar:
kullanici_adi ALL=(ALL:ALL) ALL
2. Şifresiz Sudo Yetkisi Verme
Belirli otomasyon scriptleri veya kolaylık için şifre sorma adımını atlar:
kullanici_adi ALL=(ALL:ALL) NOPASSWD: ALL
3. Sadece Belirli Bir Komuta İzin Verme
Güvenlik için en çok tercih edilen yöntemdir. Örneğin, bir kullanıcının sadece sistem güncellemelerini yapabilmesini sağlayalım:
kullanici_adi ALL=(ALL:ALL) /usr/bin/apt update, /usr/bin/apt upgrade
4. Bir Gruba Yetki Verme
Grup isimlerinin başına % işareti konur. Örneğin admin grubundaki herkesin sudo yetkisi olsun:
%admin ALL=(ALL:ALL) ALL
En İyi Pratik: /etc/sudoers.d/ Dizini
Ana /etc/sudoers dosyasını sürekli düzenlemek yerine, her kullanıcı veya yetki grubu için ayrı bir dosya oluşturmak çok daha temiz bir yöntemdir. Linux, /etc/sudoers.d/ klasörü altındaki dosyaları otomatik olarak okur.
Bu klasörde yeni bir kural oluşturmak için:
sudo visudo -f /etc/sudoers.d/ozel_yetkiler
Not: Bu klasördeki dosyaların isimlerinde nokta (
.) bulunmamalıdır, aksi halde sistem bunları görmezden gelir.
Hata Durumunda Ne Yapılır?
Eğer visudo içinde yanlış bir şey yazıp kaydederseniz, size şöyle bir uyarı verir:
>>> /etc/sudoers: syntax error near line 25 <<<
Burada size üç seçenek sunulur:
e (edit): Geri dönüp hatayı düzeltmenizi sağlar (En güvenli yol).
x (exit without saving): Değişiklikleri kaydetmeden çıkar.
Q (quit and save changes): Hatalı haliyle kaydeder (Kesinlikle önerilmez, sudo erişimini bozabilir).
Güvenlik Sertleştirme Tavsiyeleri
✔ /etc/sudoers elle düzenlenmez
✔ Her dosya tek rol içermeli
✔ NOPASSWD sadece etapadmin
✔ Öğrenci → komut bazlı sudo
✔ Gruptan çıkar → yetki otomatik gider
Yorumlar