Répertoires rsync nécessitant des autorisations sudo sur le serveur distant

0

J'ai un serveur local, appelons-le en tant que A, qui a accès à un serveur distant.

Je souhaite synchroniser avec rsyncun répertoire du serveur distant sur le répertoire local, et je veux placer le répertoire synchronisé dans une unité montée sur A.

Le problème est que le répertoire distant a des autorisations restreintes. Je dois donc exécuter la rsynccommande en sudomode sur le serveur distant, mais à partir du serveur A.

Comment puis-je faire?

ehuarotop
la source

Réponses:

0

La stratégie la plus simple consiste à vous connecter au serveur à distance et à partir de là, exécutez la commande rsync , avec les privilèges sudo.

Je suppose que vous travaillez sous Linux sur les deux machines.
Appelons localuser le nom d'utilisateur sur le serveur local , et remoteuser le nom d'utilisateur sur le serveur à distance .

  • Sur le serveur local est monté une unité externe dans le chemin/media/MyUsb
  • Sur le serveur distant, il existe un répertoire appelé /data/DirToSync.
localuser@localserver ~> ssh -X remoteuser@remoteserver

Il devrait vous demander le mot de passe de l'utilisateur distant sur le serveur à distance et affichera ensuite l'invite sur le serveur distant:

remoteuser@remoteserver -> 

Ici vous pouvez écrire la commande rsync :

sudo rsync  -av /data/DirToSync localuser@localserver:/media/MyUsb

Il demandera avant le mot de passe de sudola machine distante (celui de remoteuser @ remoteserver ) et après le mot de passe de la destination (celui de localuser @ localserver).

Remarques

  1. Vous devez être dans la liste sudoers de la machine distante (cela signifie que vous devez avoir le droit de fonctionner sudo). Essayez de le faire sudo lssur le serveur distant et donnez votre mot de passe à la demande. S'il exécute la lscommande, vous êtes dans cette liste. (Cela devrait être un cas vraiment rare et peu sûr si vous étiez dans cette liste et sans besoin de mot de passe; dans ce cas, vous ne devez pas écrire le mot de passe pour sudo).
  2. Les mots de passe pour les ssh/rsyncconnexions ne vous seront pas demandés si vous avez généré et installé les clés ssh .
  3. via sshvous pouvez même envoyer la sudocommande rsyncde là-bas au localhost, mais c'est une syntaxe un peu plus complexe, voir ici par exemple , et vous pouvez rencontrer des problèmes à cause de sudocertaines versions de Linux.
Hastur
la source