Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
0 Пользователей и 1 Гость просматривают эту тему.
// test_login_password.c// victor00000 (c) 2018#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <pwd.h>#include <shadow.h>// ~$ gcc test_login_password.c -o test_login_password -lcrypt// ~$ ./test_login_password username password// ~$ sudo ./test_login_password username passwordint main (int ia, char **ca){if (ia != 3) return 1;struct passwd *pw;struct spwd *spw;pw = getpwnam (ca[1]);if (pw == 0){fputs ("err: no users\n",stderr);return 1;}spw = getspnam (ca[1]);if (spw == 0 && errno == EACCES){perror (ca[1]);return 1;}if (spw != 0)pw->pw_passwd = spw->sp_pwdp;char *enc = crypt ( ca[2], pw->pw_passwd);if (enc == 0){fputs ("err: crypt\n",stderr);return 1;}if (strcmp(enc,pw->pw_passwd) != 0){fputs ("err: password\n",stderr);return 1;}puts ("Ok");return 0;}
Страница сгенерирована за 0.044 секунд. Запросов: 25.