root her şeyi yapabilir - kastetmediklerinizi de. Ne bir onay vardır ne bir geri alma; sonrasında kayıt, bunu root'un yaptığını söyler - ki parola birden fazla kişideyse bu size hiçbir şey anlatmaz.

Adlı bir kullanıcı oluşturun

sudo adduser sara
sudo usermod -aG sudo sara        # Debian and Ubuntu
# sudo usermod -aG wheel sara     # RHEL, Alma and Rocky

Ona anahtarınızı verin, sonra bir şeyi kapatmadan önce deneyin

sudo mkdir -p /home/sara/.ssh
sudo cp ~/.ssh/authorized_keys /home/sara/.ssh/
sudo chown -R sara:sara /home/sara/.ssh
sudo chmod 700 /home/sara/.ssh
sudo chmod 600 /home/sara/.ssh/authorized_keys
root'u kapatmadan ya da ilk oturumu kapatmadan ÖNCE ikinci bir uçbirim açın ve yeni kullanıcıyla giriş yapın. Anahtar dosyasındaki bir yazım hatası, hâlâ bir oturumunuz varken telafi edilebilir; yokken bir destek çağrısına dönüşür.

Sonra root kapısını kapatın

# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

sudo sshd -t && sudo systemctl reload ssh

sudo'nun verip root'un vermediği şeyler

  • Her komut, onu çalıştıran kişinin adıyla kaydedilir.
  • Tehlikeli bir komut, bilerek yazılmış beş fazladan karakter ister; bu da bazılarını yakalamaya yeter.
  • Erişim, herkesin paylaştığı bir parolayı değiştirerek değil, tek bir hesabı tek bir gruptan çıkararak kaldırılır.

Parolasız sudo, dikkatle

Otomasyonun sorgusuz sudo'ya ihtiyacı vardır. Onu her şeye değil, gerçekten çalıştırdığı komutlara sınırlayın.

# sudo visudo -f /etc/sudoers.d/deploy
deploy ALL=(root) NOPASSWD: /bin/systemctl reload nginx, /bin/systemctl restart app
/etc/sudoers dosyasını asla sıradan bir düzenleyiciyle değiştirmeyin. visudo, kaydetmeden önce söz dizimini denetler; bozuk bir sudoers dosyası ise herkesi bir anda sudo'nun dışında bırakır.