LINUX.ORG.RU

Ввод вывод


0

0

При работе с форком приложений обнаружил следующее: некоторые проги типа gpg, login, sudo и т.п. свой вывод (приглашение ввести пароль как правило) пишут не в стандартный и даже не в вывод ошибок, отсюда вопрос как прочитать при форке их вывод и что интереснее куда им писать (пароль для sudo например). Заранее спасибо тем кто ответит!

★★★★★

Re: Ввод вывод

flush делал? может буферизуется?

можно ещё напрямую в /proc/PID/fd/[012] попробовать написать.

anonymous ()

Re: Ввод вывод

gpg пишет и читает /dev/tty

seiken ★★★★★ ()

Re: Ввод вывод

Они пароль читают прямо с /dev/tty. Вот что выдаёт strace на sudo:

...
open("/dev/tty", O_RDWR|O_NOCTTY) = 4
...
read(4, "a", 1) = 1
read(4, "b", 1) = 1
read(4, "c", 1) = 1
read(4, "\n", 1) = 1
...

Deleted ()

Re: Ввод вывод

> отсюда вопрос как прочитать при форке их вывод и что интереснее куда им писать

Общего решения нет.

У sudo есть опция -S.

У ssh есть $SSH_ASKPASS.

У (кого-то ещё, не помню кого) можно было указать fd с которого будет читаться пароль.

anonymous ()
Ответ на: Re: Ввод вывод от anonymous

Re^2: Ввод вывод

> У ssh есть $SSH_ASKPASS.

Мало того, у ssh есть авторизация по ключам, которая надёжнее и для которой вводить пароль не надо.

gaa ★★ ()

Re: Ввод вывод

Прикол заключается в том, что основное назначение пароля - аутентификация _пользователя_, поэтому вызывать необходимые проги нужно уже от рута, а как обеспечить получение прав рута - это уже другой вопрос, при чем не такой уж сложный.

ShprotX ()
Ответ на: Re: Ввод вывод от anonymous

Re: Ввод вывод

Всем спасибо. ответы исчерпывающие и применимы к разным случаям!

erfea ★★★★★ ()
Ответ на: Re: Ввод вывод от ShprotX

Re: Ввод вывод

>>Прикол заключается в том, что основное назначение пароля - аутентификация _пользователя_, поэтому вызывать необходимые проги нужно уже от рута, а как обеспечить получение прав рута - это уже другой вопрос, при чем не такой уж сложный.

Чтобы в gpg раскриптовать файл тоже привелегий рута вместо пароля хватит?! Суть вопроса как производить вводы и вывод, в прогах работающих подобным образом.

erfea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.