#include #include #include #include #include #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 ЛОГИН
неработает.
Заранее спасибо за совет.