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 eklekullanici_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:
- Kurulum sırasında sudo yetkisi olan başka bir kullanıcı varsa o kullanıcıyla giriş yapın
- Veya kurtarma modundan (recovery mode) root şifresini sıfırlayın
Değişiklikler Uygulanmadı
- Sistemi yeniden başlattınız mı?
groupskomutuyla 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:
su -ile root olunusermod -a -G sudo kullanici_adikomutuyla kullanıcıyı sudo grubuna ekleyingroups kullanici_adiile kontrol edinrebootile sistemi yeniden başlatınsudo whoamiile 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.