Root può fare qualsiasi cosa, comprese quelle che lei non intendeva. Non c'è conferma, non c'è annulla, e dopo il log dice che è stato root - il che non le dice niente se la password ce l'ha più di una persona.

Crei un utente con un nome

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

Gli dia la sua chiave, poi provi prima di chiudere qualcosa

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
Apra un secondo terminale ed entri con il nuovo utente PRIMA di disattivare root o di chiudere la prima sessione. Un errore di battitura in un file di chiavi si rimedia finché le resta una sessione, e diventa una chiamata all'assistenza quando non le resta.

Poi chiuda la porta di root

# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

sudo sshd -t && sudo systemctl reload ssh

Che cosa le dà sudo e root no

  • Ogni comando viene registrato con il nome della persona che lo ha eseguito.
  • Un comando pericoloso richiede cinque caratteri in più, battuti apposta, e questo basta a intercettarne qualcuno.
  • L'accesso si toglie facendo uscire un account da un gruppo, non cambiando una password che tutti si passano.

sudo senza password, con prudenza

L'automazione ha bisogno di sudo senza domande. Lo limiti ai comandi che esegue davvero invece che a tutto.

# sudo visudo -f /etc/sudoers.d/deploy
deploy ALL=(root) NOPASSWD: /bin/systemctl reload nginx, /bin/systemctl restart app
Non modifichi mai /etc/sudoers con un editor qualunque. visudo controlla la sintassi prima di salvare, e un file sudoers rotto chiude fuori da sudo tutti quanti in un colpo solo.