/linux

Ubuntu/Debian'da Kullanıcıya Sudo Yetkisi Verme

Sorun Nedir?

Ubuntu veya Debian'ı yeni kurduğunuzda kullanıcınızın sudo yetkisi olmayabilir. Ben Debian 12 kurduktan sonra ilk sudo komutunu kullanmayı denediğimde bu durumla karşılaştım. Farklı Linux dağıtımlarında sudo yetkisinin olmaması gibi bir durumla karşılaşmamıştım fakat Debian 12 versiyonunda denk geldiğim bir durum oldu.

Ubuntu'da genellikle kurulum sırasında oluşturulan ilk kullanıcı otomatik olarak sudo grubuna eklenir, ancak bazı durumlarda veya manuel kullanıcı eklemelerinde bu yetki verilmeyebilir.

Sudo Yetkisi Olup Olmadığını Kontrol Etme

Öncelikle sudo yetkinizin olup olmadığını kontrol edin:

sudo whoami

Eğer root çıktısı alıyorsanız sudo yetkiniz var demektir. Ancak aşağıdaki gibi bir hata alıyorsanız sudo yetkiniz yok demektir:

[kullanıcı_adı] is not in the sudoers file. This incident will be reported.

Çözüm: Adım Adım Sudo Yetkisi Verme

Yetkinizin olmadığını varsayarak konuyu anlatmaya geçiyorum.

Adım 1: Root Kullanıcısına Geçiş

Kullanıcıya sudo yetkisi vermek için önce root kullanıcısı olmanız gerekir:

su -

Bu komutu çalıştırdığınızda root şifresini girmeniz istenecektir. Kurulum sırasında belirlediğiniz root şifresini girin.

Not: Ubuntu'da varsayılan olarak root hesabı devre dışı olabilir. Bu durumda şu komutu kullanın:

sudo -i

Veya kurulum sırasında sudo yetkisi olan bir kullanıcı varsa, o kullanıcı ile giriş yapabilirsiniz.

Adım 2: Sudoers Dosyasını Kontrol Etme

Root olduktan sonra sudoers dosyasını kontrol edin:

nano /etc/sudoers

Önemli Uyarı: Bu dosyayı düzenlerken dikkatli olun. Sözdizimi hatası sistem yönetimini imkansız hale getirebilir. Bu yüzden visudo komutunu kullanmak daha güvenlidir:

visudo

visudo komutu, dosyayı kaydetmeden önce sözdizimi kontrolü yapar.

Adım 3: Sudoers Dosyasında Kontrol

Dosya içinde şu satırı arayın:

# User privilege specification
root    ALL=(ALL:ALL) ALL

Eğer kullanıcı adınızla ilgili bir satır varsa ve başında # işareti yoksa, zaten dosyada tanımlısınız demektir. Örneğin:

kullanici_adi ALL=(ALL:ALL) ALL

Eğer bu satır # ile başlıyorsa (yorum satırı), başındaki # işaretini kaldırın ve dosyayı kaydedin:

  • Nano'da: Ctrl + O (kaydet), Enter, Ctrl + X (çık)
  • Visudo'da: Ctrl + O (kaydet), Enter, Ctrl + X (çık)

Ancak en iyi yöntem kullanıcıyı doğrudan sudo grubuna eklemektir (bir sonraki adım).

Adım 4: Kullanıcıyı Sudo Grubuna Ekleme

En güvenli ve önerilen yöntem, kullanıcıyı sudo grubuna eklemektir:

usermod -a -G sudo kullanici_adi

Komut Açıklaması:

  • usermod: Kullanıcı ayarlarını değiştirme komutu
  • -a: Append (ekleme modu, mevcut grupları korur)
  • -G sudo: Sudo grubuna ekle
  • kullanici_adi: Sizin kullanıcı adınız

Örnek:

usermod -a -G sudo ahmet

Önemli: {kullanici_adi} kısmını kendi kullanıcı adınızla değiştirin. Süslü parantezleri yazmayın, sadece kullanıcı adını yazın.

Adım 5: Değişikliklerin Kontrolü

Kullanıcının hangi gruplarda olduğunu kontrol edin:

groups kullanici_adi

Çıktıda sudo grubunu görmelisiniz:

kullanici_adi : kullanici_adi sudo

Adım 6: Root'tan Çıkış

Root kullanıcısından çıkış yapın:

exit

Adım 7: Sistemi Yeniden Başlatma

Bir hata almadığınız durumda kullanıcı sudo grubuna eklenmiş demektir. Fakat terminalde hala sudo komutunu kullanamıyor olmanız normaldir. Sudo komutunu kullanabilmek için makineyi yeniden başlatmanız gereklidir:

reboot

Eğer reboot komutu çalışmazsa (sudo yetkiniz henüz aktif olmadığı için), root olarak yeniden başlatın:

su - reboot

Adım 8: Test Etme

Sistem yeniden başladıktan sonra, normal kullanıcınızla giriş yapın ve sudo yetkisini test edin:

sudo whoami

Şifrenizi girmeniz istenecek ve çıktı olarak root görmelisiniz. Bu, sudo yetkinizin başarıyla verildiği anlamına gelir.

Alternatif Yöntem: Kullanıcıyı Doğrudan Sudoers Dosyasına Ekleme

Eğer sudo grubuna eklemek yerine doğrudan sudoers dosyasına eklemek isterseniz:

visudo

Dosyanın sonuna şu satırı ekleyin:

kullanici_adi ALL=(ALL:ALL) ALL

Dosyayı kaydedin ve çıkın. Ardından sistemi yeniden başlatın.

Sorun Giderme

"su: Authentication failure" Hatası

Root şifresini yanlış giriyorsunuz veya root hesabı devre dışı (Ubuntu'da sık görülür). Bu durumda:

  1. Kurulum sırasında sudo yetkisi olan başka bir kullanıcı varsa o kullanıcıyla giriş yapın
  2. Veya kurtarma modundan (recovery mode) root şifresini sıfırlayın

Değişiklikler Uygulanmadı

  • Sistemi yeniden başlattınız mı?
  • groups komutuyla sudo grubunda olduğunuzu doğruladınız mı?
  • Visudo'da sözdizimi hatası var mı? (Visudo otomatik kontrol eder)

"visudo: command not found" Hatası

Visudo yüklü değilse:

apt update apt install sudo

Özet

Ubuntu/Debian'da kullanıcıya sudo yetkisi vermek için:

  1. su - ile root olun
  2. usermod -a -G sudo kullanici_adi komutuyla kullanıcıyı sudo grubuna ekleyin
  3. groups kullanici_adi ile kontrol edin
  4. reboot ile sistemi yeniden başlatın
  5. sudo whoami ile test edin

Bu adımları takip ederek kullanıcınıza başarıyla sudo yetkisi vermiş olacaksınız.


Güvenlik Notu: Sudo yetkisi, kullanıcıya sistemde her şeyi yapma izni verir. Bu yetkiyi yalnızca güvendiğiniz kullanıcılara verin.