Le 19/12/16 à 12:57, bernard schoenacker <bernard.schoenac...@free.fr> a écrit :
BS>     je souhaite automatiser la connection sudo et je pense
BS>     employer echo et read :

Pas compris

BS>     exemple de base :
BS> 
BS>     sudo apt-get update --fix-missing
cette commande lance apt si le user qui lance le script est dans sudoers (sinon 
demande le pass)

BS>     echo  toto
affiche "toto"

BS>     read  toto
attend une saisie utilisateur qui sera affectée à la variable toto

BS>     est ce correct ?

Je sais pas ce que tu veux faire, mais si c'est un script qui se connecte en 
ssh pour lancer un
update ou upgrade, il vaut mieux ajouter la clé ssh du user qui lancera le 
script directement au
root de la machine sur laquelle le lancer, éventuellement avec un shell de ton 
cru pour ne
lancer que les commandes auquel il a droit.

Par ex, dans le /root/.ssh/authorized_keys de la machine concernée
command="/root/bin/mon-shell-a-moi.sh",no-port-forwarding,from="ip autorisées" 
ssh-rsa laClé

et dans /root/bin/mon-shell-a-moi.sh un truc du genre

#!/bin/bash

case "$SSH_ORIGINAL_COMMAND" in
  ping) echo "pong";;
  apt-update) apt-get update --fix-missing;;

  # autres commandes autorisées
  … 

  # par défaut un message (ici il donne la commande mais c'est pas obligatoire 
évidemment)
  *) echo "Commande « $SSH_ORIGINAL_COMMAND » non autorisée" >&2; exit 1;;
esac

et tu testes avec `ssh root@tamachine ping` qui devrait afficher pong.

-- 
Daniel

L'argent a rendu l'homme esclave et
personne ne fera de l'argent son esclave.
Gilles Olive

Répondre à