LINUX.ORG.RU

Ввод вывод


0

0

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

★★★★★

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

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

anonymous
()

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

seiken ★★★★★
()

Они пароль читают прямо с /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
()

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

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

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

У ssh есть $SSH_ASKPASS.

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

anonymous
()
Ответ на: комментарий от anonymous

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

> У ssh есть $SSH_ASKPASS.

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

gaa ★★
()

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

ShprotX
()
Ответ на: комментарий от anonymous

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

erfea ★★★★★
() автор топика
Ответ на: комментарий от ShprotX

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

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

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