Здравствуйте! Я пишу программу и мне нужно определить тот пароль который храниться в программе подходит для конткретного юзера или нет. Я это попытался сделать с помощью ПАМ
#include using namespace std ;
int main(int argc, char *argv[])
{
struct pam_conv conv ;
const char * pass = "ПАРОЛЬ" ;
pam_handle_t *pamh = NULL;
if (pam_start("./a.out", "ЛОГИН", &conv, &pamh) != PAM_SUCCESS)
puts("err\n") ;
pam_set_item(pamh,PAM_AUTHTOK, pass);
pam_set_item(pamh,PAM_USER, "ЛОГИН");
pam_set_item(pamh,PAM_RUSER, "ЛОГИН");
if (pam_authenticate(pamh, 0) != PAM_SUCCESS)
puts("esssssssrr") ;
return 0 ;
}
я все время получаю "esssssssrr".
Может есть независимые способы осуществить это, тоесть запустив su/login или может есть спец утилита проверки пароля, тоесть я бы смог запустить ее передав ей хранящийся в проге пароль и узнать код возврата.
Я пробывал с su но незнаю как ей можно перадать пароль, тоесть
echo ПАРОЛЬ | su ЛОГИН
неработает.
Заранее спасибо за совет.