Innanzitutto, non tutti gli attacchi richiedono di conoscere la password. Molti attacchi contro servizi (o demoni) prendono di mira vulnerabilità nel codice e terminano nell'esecuzione di codice per conto di un utente senza conoscere la password. In tal caso, la configurazione predefinita sudo
aggiunge sicurezza richiedendo la conoscenza della password.
Un altro esempio in un ambiente multiutente è quando un utente lascia il suo terminale incustodito (tu e io sappiamo che è cattivo e non lo facciamo mai da soli, ma ...) un utente malintenzionato può eseguire comandi per conto dell'utente ma non posso ancora usare sudo
.
Infine, mentre parli di ssh
, l'uso comune è di usare solo una chiave (RSA) per l'autenticazione dell'utente. In questo modo, la connessione ssh
non utilizza mai la password, che viene utilizzata solo per una connessione locale diretta o per ottenere l'accesso root tramite sudo
. Può anche essere forzato disabilitando l'uso della password in sshd
configuration. Nel caso di un server remoto, la password dell'utente locale viene effettivamente utilizzata solo per ottenere l'accesso root.
Ma la vera risposta alla tua domanda è l'opzione esiste ! Il file /etc/sudoers
può essere utilizzato per dichiarare il flag booleano rootpw
. Se questo flag è impostato, la password deve essere la password per root invece della password per l'utente corrente.
Se sudoers
contiene la riga:
Defaults rootpw
quindi ti verrà chiesta la password di root. Questo flag è disattivato per impostazione predefinita e viene utilizzato raramente perché non è realmente sudo
philosophy ma su
one: se conosci la password per root, puoi utilizzare direttamente su
bypassando tutti i controlli aggiuntivi sudo
.
sudo
è davvero un comando molto versatile, e dovresti davvero leggere man sudoers