Rsync sous ubuntu avec sudo des deux cotés

Ubuntu ne propose pas de compte root donc pour faire un “rsync [options] root@machine1:/chemin1/ root@machine2:/chemin2/” les choses se compliquent un peu.

rsync ne permet pas ce fonctionnement ou la source et la destination sont deux machines distinctes, il s'agit d'une commande conceptuelle :p

Pas de panique, c'est tout de même possible de faire ce rsync :

Methode 1 - sudo temporaire

Préparation

Se logguer sur la machine cible, et s'accorder les droits de sudo sur rsync avec son utilisateur :

  • lancer la commande sudo visudo :
    monUser@machine-cible:~$ sudo visudo
  • Ajouter la ligne :
    monUser  ALL=NOPASSWD: /usr/bin/rsync
  • Enregistrer et quitter l'editeur

Copie des données

  • Se connecter sur la machine source
  • Lancer la commande suivante pour lancer le transfert :
    monUser@machine-source:~$ sudo rsync -avrp -t -e 'ssh -l monUser' --rsync-path "sudo rsync" /chemin1/ machine-cible:/chemin2/
Il faut bien sur adapter les options et les chemins à ce que vous voulez faire

Ca y est on a réussi a rsync des fichiers locaux que seul l'utilisateur root peut lire vers une machine distante ou seul l'utilisateur root peut ecrire :-)

Merci ubuntu :-)

Methode 2 - ssh-agent

Utiliser ssh-agent pour faire ce rsync :

  • se connecter a la machine cible en forwardant l'authentification la connexion a l'agent SSH depuis son poste :
    ssh monUser@machine-cible -A
  • sur la machine cible, récupérer et exporter le chemin du socket ssh-agent :
    monUser@machine-cible:~$ env | grep SSH_AUTH_SOCK
  • lancer un shell root en sudo :
    monUser@machine-cible:~$ sudo -s
  • faire un export de cette variable, comme par exemple :
    machine-cible:~# export SSH_AUTH_SOCK=/tmp/ssh-LaSyd12725/agent.12725
  • il suffit ensuite de faire le rsync come si de rien n'etait :
    machine-cible:~# rsync -avrp -t machine-source:/chemin1/ /chemin2/

Cette méthode a l'avantage de ne pas devoir mettre un sudo temporaire pour ce rsync

sysadmin/tips/ubuntu/rsync.txt · Dernière modification: 2015/01/06 11:59 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0