- Как проверить пароль по /etc/shadow?, BigShadow, 13:05 , 03-Апр-06 (1)
>Есть >char *login, *passwd; >, в которых забиты логин и пароль (все - нешифрованное). Как проверить >правильность логина/пароля по файлу /etc/shadow? зашифровать passwd вытащить по login из /etc/shadow зашифрованный пароль сравнить
возьмите исходники /bin/login там все это есть - Как проверить пароль по /etc/shadow?, jd, 15:30 , 03-Апр-06 (2)
>Есть >char *login, *passwd; >, в которых забиты логин и пароль (все - нешифрованное). Как проверить >правильность логина/пароля по файлу /etc/shadow? man shadow(3), crypt(3) вместо shadow(3) возможно будет ман getspnam(3)...
- Как проверить пароль по /etc/shadow?, chainik, 17:38 , 03-Апр-06 (3)
>>Есть >>char *login, *passwd; >>, в которых забиты логин и пароль (все - нешифрованное). Как проверить >>правильность логина/пароля по файлу /etc/shadow? > >man shadow(3), crypt(3) >вместо shadow(3) возможно будет ман getspnam(3)... А как компилить? Я пробовал с флагами -lshadow и -L/usr/lib/libshadow.a, но при компиляции получается: ... main.o(.text+0x59): In function `main': : undefined reference to `getspnam(char const*)' Где эта getspnam?
- Как проверить пароль по /etc/shadow?, jd, 21:30 , 03-Апр-06 (4)
>main.o(.text+0x59): In function `main': >: undefined reference to `getspnam(char const*)' > >Где эта getspnam? У меня она в glibc (то есть никаких дополнительных ключей не требуется), а где у вас - не знаю. Что за система-то хоть? В мане нет упоминаний о каких-либо стандартах, так что возможно она есть не во всех системах. Но в Linux и SunOS вроде есть. В SunOS, насколько я понял, тоже в libc.
- Как проверить пароль по /etc/shadow?, chainik, 21:49 , 03-Апр-06 (5)
>>main.o(.text+0x59): In function `main': >>: undefined reference to `getspnam(char const*)' >> >>Где эта getspnam? > >У меня она в glibc (то есть никаких дополнительных ключей не требуется), >а где у вас - не знаю. Что за система-то хоть? Да Slackware 10.2 обычная, ну и glibc вроде стоит последняя... Я ее еще поищу. Чем можно посмотреть, какие функции в библиотеке наличисвуют?
- Как проверить пароль по /etc/shadow?, chainik, 23:39 , 03-Апр-06 (6)
Видно, что-то мне на работе мешало ;) Все работает, а из дополнительных библиотек нужна только -lcrypt. По крайней мере, /etc/shadow проверяется такой вот програмкой:-------------8<---------------------------------------------------------------- // Проверялось на Slackware 10.2, где, правда, ядро и многое другое обноовлено #include <string.h> #include <stdio.h> #include <shadow.h> #include <pwd.h> int shadow_check(char *user, char *passwd) { struct passwd *pw = getpwnam(user); if (pw == NULL || pw->pw_passwd == '\0') { return (0); } struct spwd *spwd; spwd = getspnam(user); char *epasswd = (char*)crypt(passwd, spwd->sp_pwdp); if (strcmp(epasswd, spwd->sp_pwdp) != 0) { return (0); } return (-1); } int main(int argc, char **argv) { printf("%d\n", shadow_check("snm", "mnyammhrumm")); return 0; } -------------8<---------------------------------------------------------------- Спасибо за помощь.
- Как проверить пароль по /etc/shadow?, имя, 23:47 , 03-Апр-06 (7)
>Видно, что-то мне на работе мешало ;) Все работает, а из дополнительных >библиотек нужна только -lcrypt. По крайней мере, /etc/shadow проверяется такой вот >програмкой: > >-------------8<---------------------------------------------------------------- >// Проверялось на Slackware 10.2, где, правда, ядро и многое другое обноовлено > >#include <string.h> >#include <stdio.h> >#include <shadow.h> >#include <pwd.h> >int shadow_check(char *user, char *passwd) >{ > struct passwd *pw = getpwnam(user); > if (pw == NULL || pw->pw_passwd == '\0') { > return (0); > } > struct spwd *spwd; > spwd = getspnam(user); > char *epasswd = (char*)crypt(passwd, spwd->sp_pwdp); > if (strcmp(epasswd, spwd->sp_pwdp) != 0) { > return (0); > } > return (-1); >} > >int main(int argc, char **argv) >{ > printf("%d\n", shadow_check("snm", "mnyammhrumm")); > return 0; >} >-------------8<---------------------------------------------------------------- >Спасибо за помощь. а может в даном случе стоит использовать PAM?
- Как проверить пароль по /etc/shadow?, chainik, 23:56 , 03-Апр-06 (8)
>а может в даном случе стоит использовать PAM?А чем он лучше? Честно говоря, я не великий специалист, поэтому пока не осознаю его преимущества. В моем случае решение принимает cgi-программа (apache, ssl-соединение) на основе файла /etc/shadow и данных, которые пользователь ввел в форму. Я бы и pam попробовал. Если у вас есть коротенький примерчик, с удовольствием его применю...
- Как проверить пароль по /etc/shadow?, chip, 11:54 , 04-Апр-06 (9)
>>а может в даном случе стоит использовать PAM? > >А чем он лучше? Pluggable Authentication Module Library Своей модульностью. Например, если в дальнейшем понадобится еще авторизовывать клиентов по mysql, ldap будет достаточно добавить модуль к pam. Сам же код приложение не изменится. В остальном (для примеров) достаточно обратить внимание на любой мало-мальски популярный сетевой продукт.
- Как проверить пароль по /etc/shadow?, chainik, 12:01 , 04-Апр-06 (10)
>ldap будет достаточно добавить модуль к pam. Сам же код приложение >не изменится. В остальном (для примеров) достаточно обратить внимание на любой >мало-мальски популярный сетевой продукт. А можете посоветовать какой-нибудь продукт с минимальным, но достаточным количеством кода? - в длинных программах трудно выискивать.
- Как проверить пароль по /etc/shadow?, имя, 15:32 , 04-Апр-06 (11)
>>ldap будет достаточно добавить модуль к pam. Сам же код приложение >>не изменится. В остальном (для примеров) достаточно обратить внимание на любой >>мало-мальски популярный сетевой продукт. > >А можете посоветовать какой-нибудь продукт с минимальным, но достаточным количеством кода? - >в длинных программах трудно выискивать. да тот же passwd,login, кажись.., вся система аутентификации unixов держится на этом просто смотрите в исходниках где числится #include <pam.h>, или кеак там у вас. тот фалй и розбирайте, но правильней все таки к документации
- Как проверить пароль по /etc/shadow?, missKler, 13:57 , 20-Фев-09 (12)
Как можно проверить пароль и ник?я создала себе почтовый ящик,захожу в чаты и т д пароль и ник не верные!Что посоветуете?
|