Linux sunucuda sudo yetkili kullanıcı açma ve root girişini kapatma
Sunucu size root bilgisiyle teslim edilir. Günlük işler için root yerine kendi kullanıcınızla girip gerektiğinde sudo kullanmak hem güvenli hem de hata yapma riskini azaltan bir alışkanlıktır. Çünkü her sunucunun root kullanıcısı internetteki botların ilk hedefidir.
1. Yeni kullanıcıyı oluşturun
Root olarak bağlıyken:
adduser ayse
usermod -aG sudo ayse
adduser sizden parola ister; uzun ve benzersiz bir parola seçin. Debian'da sudo paketi kurulu gelmeyebilir; apt install sudo -y ile ekleyin.
2. SSH anahtarını yeni kullanıcıya kopyalayın
Zaten root için bir SSH anahtarı kullanıyorsanız aynısını yeni kullanıcıya aktarın:
rsync --archive --chown=ayse:ayse ~/.ssh /home/ayse
Anahtarınız yoksa kendi bilgisayarınızda üretip yeni kullanıcının ~/.ssh/authorized_keys dosyasına ekleyin: SSH anahtarı makalesine bakın.
3. Yeni kullanıcıyla ayrı bir pencerede deneyin
Root oturumunu kapatmadan, yeni bir terminalde:
ssh [email protected]
sudo whoami
Son komut root yazıyorsa sudo yetkisi çalışıyor demektir. Bu adımı atlamayın; yeni kullanıcı çalışmadan root'u kapatmak sizi sunucudan dışarıda bırakır.
4. Root girişini kapatın
Sunucularımızın şablonunda root ile parola girişini açan bir ayar dosyası hazır gelir: /etc/ssh/sshd_config.d/00-wisecp-root.conf. sshd her ayar için okuduğu ilk değeri kullandığı için yeni bir dosya eklemek yetmez; bu dosyadaki değeri değiştirmeniz gerekir.
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config.d/00-wisecp-root.conf
sudo sshd -t
sudo systemctl restart ssh
Ubuntu 24.04'te restart ssh yeterlidir, bu ayar için soketi değiştirmeniz gerekmez. Ayarın gerçekten geçerli olduğunu sudo sshd -T | grep -i permitrootlogin komutuyla doğrulayın, permitrootlogin no yazmalı. Hâlâ yes görüyorsanız sshd_config.d klasöründe başka bir dosya aynı ayarı yapıyordur; sudo grep -ri permitrootlogin /etc/ssh/ ile bulun. Sonra root ile bağlanmayı deneyin; Permission denied almalısınız.
Sudo yetkisini kontrol edin
Yeni kullanıcı ilk girişte sudo komutuna sıfırdan alışmak zorunda değil; yine de bir kez sudo -l yazıp hangi komutları çalıştırabildiğine bakmak iyi olur.
Kullanıcının hangi gruplarda olduğunu id ayse ile görebilirsiniz; çıktıda sudo yazmalıdır. Yetkiyi geri almak için sudo deluser ayse sudo yeterlidir.
Panelle ilgili not
Müşteri panelindeki Root Parolasını Sıfırla aracı hâlâ root parolasını değiştirir. SSH root girişini kapattığınız için bu parolayla bağlanamazsınız, ama konsoldan (VNC Konsol) root olarak girebilirsiniz; bu kendinizi kurtarma yolunuzdur. Hepsini unutursanız konsolu hatırlayın.
Parola girişini de kapatmak
SSH anahtarıyla girdiğinizi doğruladıktan sonra aynı dosyadaki PasswordAuthentication yes satırını no yaparak (ve sudo systemctl restart ssh ile) parola girişini tamamen kapatabilirsiniz. Anahtarınızı kaybederseniz konsoldan düzeltmeniz gerekir; anahtarı güvenli bir yerde de yedekleyin.
Sunucuda yapılacak diğer ilk işler için ilk yapılacaklar listesine bakın. Sunucu seçimi: Linux VDS.
Sık sorulanlar
Yeni kullanıcı sudo kullanırken neden parola soruyor?
Sudo, komutu çalıştıran kişinin gerçekten sizin olduğundan emin olmak için kendi kullanıcı parolanızı ister. Root parolası değil, ayse kullanıcısının parolasıdır.
Parolasız sudo vermeli miyim?
Otomatik betikler için gerekebilir ama güvenlik açısından önerilmez. Gerekirse yalnızca belirli komutlar için ayrı bir kural yazın.
Root kullanıcısını tamamen silmeli miyim?
Hayır. Sistem servisleri ve kurtarma işlemleri root'a ihtiyaç duyar. Sadece SSH ile doğrudan girişi kapatın.
İlgili makaleler
- SSH portunu değiştirme (Ubuntu 24.04'te ssh.socket dikkat)
- Yeni Linux sunucuda ilk yapılması gerekenler
- Bilinmeyen girişleri (brute force) nasıl engellerim?
Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.
Geri bildiriminiz için teşekkürler!