Как восстановить пароль пользователя в открытом тексте с помощью PAM? - PullRequest
6 голосов
/ 11 октября 2011

Я пишу модуль PAM, который записывает имя пользователя / пароль в файл для дальнейшей транзакции другим приложением. Я видел только элемент PAM_AUTHTOK, но я не уверен, к какому типу он относится. Кто-нибудь знает тот или иной способ получить пароль открытым текстом?

Ответы [ 3 ]

7 голосов
/ 01 октября 2016

Это очень старая ветка, но есть также pam_exec: https://linux.die.net/man/8/pam_exec

Например, что-то вроде следующего в конфигурации PAM:

auth sufficient pam_exec.so expose_authtok /usr/local/bin/myscript-example

Содержимое myscript-примера,повторяя все переменные:

#!/bin/sh
read password
echo "User: $PAM_USER"
echo "Ruser: $PAM_RUSER"
echo "Rhost: $PAM_RHOST"
echo "Service: $PAM_SERVICE"
echo "TTY: $PAM_TTY"
echo "Password : $password"
exit $?
3 голосов
/ 11 октября 2011

Вы читали Руководство разработчика приложений Linux-PAM?В системе типа RHEL это будет в /usr/share/doc/pam-devel-<version>/Linux-PAM_ADG.txt, или вы можете найти его онлайн на онлайн в различных местах .

Взгляните на Получение PAM предметов *Секция 1007 *, которая документирует функцию pam_get_item().Вы можете запросить пароль с константой PAM_AUTH_TOK:

PAM_AUTHTOK

The authentication token (often a password). This token should be ignored
by all module functions besides pam_sm_authenticate(3) and pam_sm_chauthtok
(3). In the former function it is used to pass the most recent
authentication token from one stacked module to another. In the latter
function the token is used for another purpose. It contains the currently
active authentication token.
0 голосов
/ 30 декабря 2011

Как насчет простой печати содержимого PAM_AUTHTOK при отладке? Чтобы использовать его осмысленно, у вас должен быть какой-то контракт или соглашение между модулями.

Между прочим: существует разница между хранением пароля открытого текста в памяти и удалением его оттуда как можно скорее (или лучше: блокировка этого региона в ОЗУ или зашифрованный обмен) и записью этого пароля открытого текста на диск , Последнее просто ооочень небезопасно, не делайте этого.

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