Root kann alles, auch das, was Sie nicht wollten. Es gibt keine Rückfrage, kein Rückgängig, und hinterher sagt das Log, root habe es getan - was Ihnen nichts sagt, wenn mehr als eine Person das Passwort hat.

Einen benannten Benutzer anlegen

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

Ihm Ihren Schlüssel geben und testen, bevor Sie etwas schließen

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
Öffnen Sie ein zweites Terminal und melden Sie sich als neuer Benutzer an, BEVOR Sie root abschalten oder die erste Sitzung schließen. Ein Tippfehler in einer Schlüsseldatei ist behebbar, solange Sie noch eine Sitzung haben, und ein Supportanruf, wenn nicht.

Dann die root-Tür schließen

# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

sudo sshd -t && sudo systemctl reload ssh

Was sudo bietet und root nicht

  • Jeder Befehl wird mit dem Namen der Person protokolliert, die ihn ausgeführt hat.
  • Ein gefährlicher Befehl braucht bewusst fünf Zeichen mehr, und das genügt, um einige davon abzufangen.
  • Zugriff wird entzogen, indem man ein Konto aus einer Gruppe nimmt, nicht indem man ein Passwort ändert, das alle teilen.

sudo ohne Passwort, mit Bedacht

Automatisierung braucht sudo ohne Rückfrage. Beschränken Sie es auf die Befehle, die sie tatsächlich ausführt, statt auf alles.

# sudo visudo -f /etc/sudoers.d/deploy
deploy ALL=(root) NOPASSWD: /bin/systemctl reload nginx, /bin/systemctl restart app
Bearbeiten Sie /etc/sudoers nie mit einem gewöhnlichen Editor. visudo prüft die Syntax vor dem Speichern, und eine kaputte sudoers-Datei sperrt alle auf einmal von sudo aus.