Невозможно установить пароль в модуле PAM с помощью pam_set_item()

Я создал собственный модуль PAM для входа в Linux, используя мой метод аутентификации. После того, как мой модуль завершил аутентификацию, он получает действительное имя пользователя и пароль (открытый текст) учетной записи пользователя Linux из базы данных.

Сейчас я пытаюсь установить имя пользователя и пароль, используя:

pam_set_item(pamh, PAM_USER, user) а также pam_set_item(pamh, PAM_AUTHTOK, passwd)после выполнения pam_start("m_pamconf", user, &conv, &pamh),

"M_pamconf" - это мой файл конфигурации pam, который содержит:

auth    pam_unix.so nullok_secure  use_first_pass

Имя пользователя успешно установлено с помощью этого, но пароль, кажется, не работает, так как я получаю запрос пароля (что, конечно, не должно произойти, если он берет пароль, который я предоставил).

Любая помощь приветствуется. Благодарю.

Я получаю запрос пароля при использовании try_first_pass флаг, если я вместо этого использую use_first_passмодуль просто выходит из строя и выдает следующую ошибку в журналах отладки:

auth could not identify password for [username]

Это мой /etc/pam.d/sudo:

#%PAM-1.0

# my pam test
auth    requisite       pam_test.so

session    required   pam_env.so readenv=1 user_readenv=0
session    required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive

Первая строка использует модуль, который я создал и из которого я пытаюсь аутентифицировать пользователя, выполнив pam_start("mypamd", user, &conv, &pamh) а потом pam_authenticate(pamh, 0) используя метод аутентификации pam_unix.so, как указано выше в "m_pamconf".

1 ответ

Возможно, вам потребуется установить для модуля достаточный уровень. Если для него установлено значение Requisite, это означает, что он должен выполняться, и немедленно приведет к отказу стека, если он вернет false. Это не значит, что стек будет успешным. По докам (http://www.linux-pam.org/Linux-PAM-html/sag-configuration-file.html)

Для простого (исторического) синтаксиса допустимыми контрольными значениями являются:

требуется

       failure of such a PAM will ultimately lead to the PAM-API returning failure but only after the remaining stacked modules (for

эта служба и тип) были вызваны.

реквизит

       like required, however, in the case that such a module returns a failure, control is directly returned to the application or to the

превосходный стек PAM. Возвращаемое значение связано с первым обязательным или обязательным модулем, вышедшим из строя. Обратите внимание: этот флаг можно использовать для защиты от возможности получения пользователем возможности ввести пароль через небезопасный носитель. Вполне возможно, что такое поведение может сообщить злоумышленнику о действительных учетных записях в системе. Эту возможность следует сопоставить с немалыми проблемами раскрытия конфиденциального пароля во враждебной среде.

достаточный

       if such a module succeeds and no prior required module has failed the PAM framework returns success to the application or to the

вышестоящий стек PAM немедленно, без вызова каких-либо дополнительных модулей в стеке. Отказ достаточного модуля игнорируется, и обработка стека модулей PAM продолжается без изменений.

по желанию

       the success or failure of this module is only important if it is the only module in the stack associated with this service+type. 

включают

       include all lines of given type from the configuration file specified as an argument to this control.  substack

include all lines of given type from the configuration file specified as an argument to this control. This differs from include in

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

Другие вопросы по тегам