Giriş#
Bazen bir script yazarsın ve her seferinde parola girmek zorunda kalırsın — sinir bozucu, değil mi? 😅
Bu yazıda sudoers şifresiz komut çalıştırma sorununu sade, dostane bir dille ele alıyorum; adım adım ilerleyip hatanın kaynağını ve güvenli çözümlerini göstereceğim.
Sorunun Kaynağı#
Wayland gibi modern masaüstü ortamlarında xset işe yaramayabilir; bunun yerine klavye ışıklarını değiştirmek için /sys/class/leds/inputX::scrolllock/brightness dosyasına yazman gerekir.
Bu dosyaya yazmak root yetkisi1 ister. script'inde sudo tee kullandıysan sistem sürekli şifre isteyebilir. Bunun tipik hatırlatması:
sudo: a password is required
Çoğu zaman neden, sudoers dosyasında yanlış veya eksik izin tanımıdır.
Neden Doğru İzin Tanımı Önemli?#
sudoerssatırında programın tam yolunu belirtmezsen sistem izinleri eşleştiremez.- Komuta verilen argümanlar izin tanımına uymuyorsa işlem yine şifre ister.
/etc/sudoersveya/etc/sudoers.d/içinde sözdizimi hatası olabilir — bu da beklenmeyen davranışlara yol açar.
Dikkat! sudoers dosyasını hatalı düzenlemek sistemi etkileyebilir; mutlaka visudo ile değişiklik yap ⚠️
Çözüm: Adım Adım#
1. Programın Tam Yolunu Kullan#
sudoers dosyasına, komutun tam yolunu yazmak en temel kuraldır. Örneğin tee için:
friday13 ALL=(ALL) NOPASSWD: /usr/bin/tee
Bu satır, /usr/bin/tee komutunu tüm argümanlarla şifresiz çalıştırma izni verir. ✅
2. Birden Fazla Komut için Alias Kullan#
Birden fazla araca izin vermek istiyorsan grup oluşturmak daha düzenli olur:
Cmnd_Alias MYTOOLS = /usr/bin/tee, /usr/bin/pacman, /usr/bin/aurman
friday13 ALL=(ALL) NOPASSWD: MYTOOLS
İpucu ⚡ Cmnd_Alias kullanarak izinleri gruplandırırsın; bu yönetimi kolaylaştırır.
3. Değişiklikleri /etc/sudoers.d/ Altında Tut#
Ana sudoers dosyasını doğrudan düzenlemek yerine ayrı bir dosya oluştur:
sudo visudo -f /etc/sudoers.d/10_mytools
Dosya içeriği örneği:
Cmnd_Alias MYTOOLS = /usr/bin/tee, /usr/bin/pacman, /usr/bin/aurman
friday13 ALL=(ALL) NOPASSWD: MYTOOLS
Bu yöntem hem düzeni korur hem de yönetimi kolaylaştırır.
4. Test Etme Yöntemleri#
Değişiklikleri doğrulamak için şu adımları uygula:
sudo -k # Sudo önbelleğini temizle
sudo -n /usr/bin/tee /sys/class/leds/input4::scrolllock/brightness <<< 1
sudo -l # Kullanıcının sudo izinlerini listele
sudo -n komutu parola istemeden deneme yapar; eğer hata vermezse ayarın doğru çalışıyor demektir. ✅
Yaygın Tuzaklar ve Dikkat Edilmesi Gerekenler#
Dikkat! NOPASSWD iznini geniş tutmak ciddi güvenlik açıklarına yol açabilir ⚠️
Not: sudo -l ile hangi komutlara izin verildiğini düzenli aralıklarla kontrol et.
Özet#
sudoersiçinde tam yol belirtmek zorunludur.Cmnd_Aliaskullanarak izinleri grupla; yönetim kolaylaşır.- Değişiklikleri
/etc/sudoers.d/içinde tut vevisudoile düzenle. sudo -nvesudo -lile test ederek doğrula.
Faydalı Komutlar#
sudo visudo -f /etc/sudoers.d/10_mytools
sudo -k
sudo -n /usr/bin/tee /sys/class/leds/input4::scrolllock/brightness <<< 1
sudo -l
Kaynaklar#
ArchWiki: Sudo - Root erişimi
man sudoers
Sonuç#
Bu adımlarla sudoers şifresiz komut çalıştırma sorununu güvenli ve kalıcı şekilde çözebilirsin.
Denediğinde sonucu veya hangi komutlara izin verdiğini yorumlara yaz — beraber daha güvenli ayarlar kuralım! 🎉

-
Sistem üzerindeki kritik dosya ve ayarlara erişim izni anlamına gelir. ↩
Yorumlar