The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Аналог popen в sh, !*! diam, 19-Июл-04, 09:28  [смотреть все]
Иногда возникает необходимость вызвать утилиту, которая считывает определённую информацию из stdin. Например, утилиты scp или ftp спрашивают пароль. В C можно воспользоваться функцией popen(). А что делать в sh? Причём перенаправление ввода типа
% scp file1 user@somemachine.com:/user/dir/file1 < password
не работает.
Спасибо.
  • Аналог popen в sh, !*! DeadMustdie, 20:14 , 19-Июл-04 (1)
    >Иногда возникает необходимость вызвать утилиту, которая считывает определённую информацию из stdin. Например,
    >утилиты scp или ftp спрашивают пароль. В C можно воспользоваться функцией
    >popen(). А что делать в sh? Причём перенаправление ввода типа
    >% scp file1 user@somemachine.com:/user/dir/file1 < password
    >не работает.
    >Спасибо.

    echo "Мой Очень Секретный Пароль" | cat

    man bash

    • Аналог popen в sh, !*! diam, 10:19 , 20-Июл-04 (2)
      >>Иногда возникает необходимость вызвать утилиту, которая считывает определённую информацию из stdin. Например,
      >>утилиты scp или ftp спрашивают пароль. В C можно воспользоваться функцией
      >>popen(). А что делать в sh? Причём перенаправление ввода типа
      >>% scp file1 user@somemachine.com:/user/dir/file1 < password
      >>не работает.
      >>Спасибо.
      >
      >echo "Мой Очень Секретный Пароль" | cat
      >
      >man bash


      Если команда
      echo "Мой очень секретный пароль" | scp ...
      То работать не будет, так как scp не поддерживает pipe'ы.

      • Аналог popen в sh, !*! ihor, 10:33 , 20-Июл-04 (3)
        scp (как и многие другие программы) не читает пароль из STDIN.
        посмотри на Expect (http://expect.nist.gov/).

      • Аналог popen в sh, !*! sas, 10:42 , 20-Июл-04 (4)
        >>>Иногда возникает необходимость вызвать утилиту, которая считывает определённую информацию из stdin. Например,
        >>>утилиты scp или ftp спрашивают пароль. В C можно воспользоваться функцией
        >>>popen(). А что делать в sh? Причём перенаправление ввода типа
        >>>% scp file1 user@somemachine.com:/user/dir/file1 < password
        >>>не работает.
        >>>Спасибо.
        >>
        >>echo "Мой Очень Секретный Пароль" | cat
        >>
        >>man bash
        >
        >
        >Если команда
        >echo "Мой очень секретный пароль" | scp ...
        >То работать не будет, так как scp не поддерживает pipe'ы.

        Вы можете попробывать использовать expect, т.к. он создает псевдо-терминал для подпроцессов. Но я считаю, что это совсем не правильно. Гораздо разумнее использовать возможности аутентификации/авторизации с использование public ключей. Читайте man по ssh

        Удачи
        --- sas




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру