Bonjour,

Je suis en train d'écrire un script où j'ai besoin de me connecter (ssh) à un serveur distant pour passer une commande (compression de répertoire avec tar). Cette commande nécessite une élévation de privilège (sudo).
J'aimerais pouvoir utiliser donc la commande sudo sans avoir le prompt du mot de passe. Malgré l'utilisation de l'option "-S" avec le passage du mot de passe par echo, j'ai toujours le prompt qui me réclame la saisie du mot de passe sudo.

J'ai essayé avec cette commande :
sshpass -p 'P4S5\/\/0RD' ssh -tt user@server 'echo P4S5\/\/0RD | sudo -S tar -cj -C /var/www -f website.bz2 website/;'
Auriez-vous une solution ?
J'ai riens sous la main pour tester mais un truc comme ça :
sshpass -p 'P4S5\/\/0RD' ssh -tt user@server 'echo P4S5\/\/0RD | sudo -S && tar -cj -C /var/www -f website.bz2 website/;'
pourquoi ne crées tu pas sur le serveur une copie de la commande tar par exemple tarbis dont root serait le propriétaire à laquelle tu donnerais le bit suid de root ? ca t'évite le sudo, le passwd etc

chmod u+s tarbis

Bien sur ça implique que tu sois le seul à connaître cette commande et y avoir accès.
Refuznik wrote:J'ai riens sous la main pour tester mais un truc comme ça :
sshpass -p 'P4S5\/\/0RD' ssh -tt user@server 'echo P4S5\/\/0RD | sudo -S && tar -cj -C /var/www -f website.bz2 website/;'
Merci Refuznik pour ta réponse rapide mais ça ne marche pas non plus. La commande sudo me renvoie une information sur son usage.
nouvo09 wrote:pourquoi ne crées tu pas sur le serveur une copie de la commande tar par exemple tarbis dont root serait le propriétaire à laquelle tu donnerais le bit suid de root ? ca t'évite le sudo, le passwd etc

chmod u+s tarbis

Bien sur ça implique que tu sois le seul à connaître cette commande et y avoir accès.
Merci pour ta suggestion mais le but de ce script c'est qu'il puisse être utilisé sur un serveur sans que celui-ci n'ait à subir trop de modification (hormis l'install de sshpass).
Je n'ai pas encore testé avec l'alternative expect mais j'aurais préféré utiliser les commandes de base.
Quand je remplace la commande "tar ..." par "df -h" par contre je n'ai plus le problème. Dans ce cas, le password est bien pipé vers sudo et la commande est exécutée.

Auriez-vous une idée de ce qui empêche sudo de récupérer le password quand il est associé au tar ?
normal, df -h n'exige pas de privilège root pour s'exécuter.
J'ai retiré l'option -C de la commande tar et là ça a fonctionné :
sshpass -p 'P4S5\/\/0RD' ssh -tt user@server 'echo P4S5\/\/0RD | sudo -S tar -cj -f /var/www/website.bz2 /var/www/website/;'