Bonjour,
Je n'arrive pas à lancer un scp d'un fichier entre 2 machines en utilisant pourtant le sudo, si vous avez des idées :
Voila ma ligne de code :
/usr/local/bin/sudo /usr/bin/scp -p host1:/var/tmp/file1 /tmp
Et la conf du sudo sur host1 :
Cmnd_Alias SCP_DEST = /usr/bin/scp -p host1\:/var/tmp/file1 /tmp
user host1 = NOPASSWD : SCP_DEST
Mon script est lancé depuis host2 avec le compte user. Mon fichier se trouve sur host1 avec les droits root:root.
Merci!
# sudo est local à ta machine
Posté par benoar . Évalué à 7.
Si tu as besoin de droits spéciaux sur un fichier sur la cible pour le copier, il faudra que ton utilisateur _sur la cible_ (host1) ait le droit d'y accéder directement, sans passer par sudo. Tu peux utiliser les groupes unix, par exemple. Tout cela à cause du fait que scp lance une commande de copie directement sous l'utilisateur qui s'est connecté à la machine.
Sinon, si tu copies seulement un fichier, tu peux essayer un truc du genre :
ssh host1 sudo cat /var/tmp/file1 > /tmp/file1
Là, sudo est bien exécuté sur la machine distante, et tiens donc compte de la configuration locale à cette machine.
[^] # Re: sudo est local à ta machine
Posté par wtb . Évalué à 1.
A la base dans mon script j'avais ça :
su - user1 -c "scp -p host1:/var/tmp/destination /tmp"
Ce qui fonctionnait mais cela demandait de rentrer manuellement le mot de passe. Je cherche en fait à remplacer cette commande avec des sudo pour pouvoir tout automatiser.
Petite précision, le user1 du host2 existe également sur host1.
[^] # Re: sudo est local à ta machine
Posté par benoar . Évalué à 2.
# Manque de précision
Posté par godzom . Évalué à 3.
[^] # Re: Manque de précision
Posté par wtb . Évalué à 1.
Le problème comme évoqué précédemment c'est que la conf du sudo se fait en local. C'est un peu compliqué pour le scp car il faudrait pourvoir autoriser le ssh puis sur la machine distante le cp, mais ça ne marche pas comme ça...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.