2011-01-20 3 views
1

Je souhaite automatiser les actions de script racine sur mon serveur Fedora distant via SSH sans avoir à installer les scripts sur le serveur. Pour ce faire, j'essaie d'utiliser la notation de script en ligne de Bash. Cela fonctionne bien dans Ubuntu, mais je reçois des erreurs étranges sur Fedora.Exécution de scripts racine distants sur Fedora

par exemple.

#!/bin/bash 
ssh -t [email protected] <<EOI 

su - 
ls /root 
exit 

exit 
EOI 

Cela me donne la sortie:

standard in must be a tty 
ls: cannot open directory /root: Permission denied 

J'ai aussi essayé:

#!/bin/bash 
ssh -t [email protected] <<EOI 

sudo ls /root 

exit 
EOI 

mais cela me donne:

sudo: no tty present and no askpass program specified 

Si je ssh manuellement et exécutez ces commandes, ils fonctionnent bien puisque myuser est dans le fichier sudoers. J'ai googlé ces erreurs et j'ai essayé quelques corrections, mais rien n'a fonctionné jusqu'ici. Comment résoudre ça?

Répondre

1

On dirait que le mot de passe vous est demandé mais que vous n'avez aucun moyen de le saisir. Voici quelques choses qui devraient aider.

Essayez une option -t supplémentaire: ssh -tt [email protected] <<EOI

Aussi c'est une astuce très pratique pour se connecter en tant que root sans mot de passe root étant activé: sudo su -

En dernier recours, vous pouvez configurer votre utilisateur sudo sans mot de passe en utilisant visudo. Vous pourriez voir des commentaires comme ceux-ci pour vous aider:

# Uncomment to allow members of group sudo to not need a password 
# (Note that later entries override this, so you might need to move 
# it further down) 
# %sudo ALL=NOPASSWD: ALL 
+0

J'ai déjà essayé le truc -tt. Ça ne marche pas. Cela m'incite à être invité pour mon mot de passe, mais mon mot de passe est en clair. Même si je le saisis, rien ne se passe lorsque j'appuie sur Entrée. – Cerin

+0

Ouais, je viens de me rendre compte que cela ne fonctionnait que pour moi depuis que j'avais récemment fait un sudo sur la case cible, donc je n'ai pas eu besoin de taper le mot de passe. – waltwood

+0

Définir mon utilisateur sur nopasswd dans sudoers a fait l'affaire. Ma seule préoccupation concerne les implications possibles sur la sécurité. – Cerin