Consiglierei di utilizzare l'account di root in primo luogo. Se lo configuri in questo modo:
- Configura il tuo
sshd_configcomputer di destinazione su PermitRootLogin without-password.
- Utilizzare
ssh-keygensulla macchina che estrae il backup per creare una chiave privata SSH (solo se non si dispone già di una chiave SSH). Non impostare una passphrase. Google un tutorial se hai bisogno di dettagli per questo, ci dovrebbero essere molti.
- Aggiungi il contenuto del
/root/.ssh/id_rsa.pubcomputer di backup al computer /root/.ssh/authorized_keysdi destinazione.
- Ora il tuo computer di backup ha accesso root al tuo computer di destinazione, senza dover utilizzare l'autenticazione con password.
quindi l'installazione risultante dovrebbe essere abbastanza sicura.
sudo, in particolare combinato con NOPASSWDquanto raccomandato nei commenti, non ha vantaggi in termini di sicurezza rispetto al solo utilizzo dell'account root. Ad esempio questo suggerimento:
aggiungi quanto segue al tuo /etc/sudoersfile:rsyncuser ALL= NOPASSWD:/usr/bin/rsync
essenzialmente dà rsyncusercomunque i permessi di root. Tu chiedi:
@MartinvonWittich È facile ottenere una shell radice completa perché rsynceseguita con sudo? Cammina [m] e [attraverso] che per favore.
Bene semplice. Con la configurazione consigliata, rsyncuserora può essere eseguito rsynccome root senza nemmeno che sia richiesta una password. rsyncè uno strumento molto potente per manipolare i file, quindi ora rsyncuserha uno strumento molto potente per manipolare i file con i permessi di root. Trovare un modo per sfruttarlo mi ha richiesto solo pochi minuti (testato su Ubuntu 13.04, richiede dash, bashnon ha funzionato):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
Come puoi vedere, mi sono creato una shell di root; whoamiidentifica il mio account come root, posso creare file /etce posso leggere da /etc/shadow. Il mio exploit è stato quello di impostare il bit setuid sul dashbinario; fa sì che Linux esegua sempre quel binario con le autorizzazioni del proprietario, in questo caso root.
Avere una vera radice non è [raccomandato] per buoni motivi. - redanimalwar 15 ore fa
No, aggirare goffamente l'account root in situazioni in cui è assolutamente appropriato usarlo non è per buone ragioni. Questa è solo un'altra forma di programmazione di culto del carico : non capisci davvero il concetto dietro sudo vs root, applichi semplicemente alla cieca la convinzione che "root è cattivo, sudo è buono" perché l'hai letto da qualche parte.
Da un lato, ci sono situazioni in cui sudoè sicuramente lo strumento giusto per il lavoro. Ad esempio, quando lavori in modo interattivo su un desktop grafico Linux, diciamo Ubuntu, quindi dover usare sudova bene in quei rari casi in cui a volte hai bisogno dell'accesso root. Ubuntu ha intenzionalmente un account root disabilitato e ti costringe a utilizzare sudoper impostazione predefinita per impedire agli utenti di utilizzare sempre sempre l'account root per accedere. Quando l'utente desidera semplicemente utilizzare ad esempio il browser Web, accedere come root sarebbe una cosa pericolosa , e quindi non avere un account root di default impedisce alle persone stupide di farlo.
D'altra parte, ci sono situazioni come la tua, in cui uno script automatizzato richiede autorizzazioni di root per qualcosa, ad esempio per eseguire un backup. Ora usare sudoper aggirare l'account di root non è solo inutile, è anche pericoloso: a prima vista rsyncusersembra un normale account senza privilegi. Ma come ho già spiegato, sarebbe molto facile per un utente malintenzionato ottenere pieno accesso alla radice se avesse già ottenuto l' rsyncuseraccesso. Quindi, essenzialmente, ora hai un account root aggiuntivo che non assomiglia affatto a un account root, il che non è una buona cosa.
rootaccount in primo luogo.sudo, in particolare combinato conNOPASSWDquanto raccomandato nei commenti, non migliora davvero la sicurezza della tua macchina.