LINUX.ORG.RU

проверить пароль юзера


0

0

Здравствуйте! Я пишу программу и мне нужно определить тот пароль который храниться в программе подходит для конткретного юзера или нет. Я это попытался сделать с помощью ПАМ

#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 ЛОГИН

неработает.

Заранее спасибо за совет.

anonymous

DES: openssl passwd -salt "hash_from_shadow" checked_password

MD5: openssl passwd -1 -salt `echo "hash_from_shadow" | awk -F'$' '{print $3}'` checked_password

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