2009-10-14 11 views
0

J'utilise actuellement Capistrano pour déployer mon application web qui fonctionne comme un charme.Capistrano: exemple de shell

Dans mon nouveau projet, je dois exécuter une commande depuis sudo/bin/bash shell.

Capistrano peut-il se connecter à la machine en tant qu'utilisateur X, exécuter sudo/bin/bash, entrer le mot de passe, puis exécuter une commande dans le shell sudo? Si oui, pourriez-vous me donner un exemple?

En ce qui concerne

jakob

Répondre

1

Y at-il une raison spécifique, vous devez être dans une coquille de racine plutôt que d'exécuter la commande avec sudo? Si vous exécutez une commande avec sudo, vous pouvez simplement sudo 'command' au lieu de run 'command'.

J'ai fait un peu d'expérimentation pour essayer d'obtenir un shell avec Capistrano sans vous connecter directement au serveur en tant que root, et je n'ai pas pu faire beaucoup de progrès. Si l'exécution avec sudo ne fonctionne pas, veuillez mettre à jour votre question pour nous en informer et peut-être pourrons-nous vous aider à trouver une solution.

Mise à jour:

Après avoir joué un peu plus, je trouve que vous pouvez exécuter une commande individuelle (ou une chaîne de commandes) dans une coquille de racine en faisant quelque chose comme sudo '/bin/bash -c "whoami"'. Il obtient un shell racine interactif qui est difficile.

+0

Tout ce que vous devez faire pour obtenir un shell root avec sudo est 'sudo -s'. Les enfants ces jours-ci ... – Justin

+0

Capistrano shell a (ou au moins eu) des problèmes avec les commandes interactives exécutées dans le shell initial. Avez-vous essayé cela et le faire fonctionner? – Emily