ant - ввод пароля для sshexec - PullRequest
3 голосов
/ 30 января 2012

У меня есть скрипт ant на общедоступном сервере, доступный для нескольких пользователей. Я хочу безопасно ввести пароль в скрипт и использовать его для нескольких целей. Следующий код получает пароль с вводом, но переменная не передается в задачу sshexec.

Будет ли это работать или есть лучший способ сделать это?

<target name="get_password">
        <input message="Enter Your Password:>" addproperty="password">
                <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
        </input>
</target>

<target name="create_tmp_dir">
        <sshexec host="${host}"
        username="${username}"
        password="${password}"
        command="mkdir ${tmp_dir}" />
</target>

1 Ответ

4 голосов
/ 08 февраля 2013

Хорошо ... Я вижу, что я опоздал на год, но для новичков я решил эту проблему.Моя цель состояла в том, чтобы выполнить команду от имени пользователя root, не раскрывая мой пароль (очевидно)

<target name="getServerCredentials" unless="${server.user}">
    <input message="${server-name} user:" addproperty="server.user" />
    <input message="${server.user} password:" addproperty="server.pass">
        <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
    </input>
</target>


<target name="execute-command" depends="getServerCredentials">
    <sshexec host="${server-name}" username="${server.user}" password="${server.pass}" command="~./become-root.sh" inputproperty="server.pass"/>
</target>

Наконец я создал скрипт bash в ~ / становлении-root.sh на моем сервере, который выглядел так*

#!/bin/sh
read var
echo $var | sudo -S whoami --

Если вы вызываете задачу execute-command, теперь вы можете запускать команды как sudo (при условии, что ваш пользователь sudoer)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...