![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Работаю с ОС Linux, изучаю в данный момент PAM. Составила простенькую программу и пытаюсь откомпилировать ее. Если кто знает, помогите разобраться в тех ошибках которые она выдает при компиляции.
Для начала привожу текст самой программы #include <security/pam_appl.h> #include <unistd.h> #include <pwd.h> #include <sys/types.h> #include <stdio.h> int su_conv(int num_msg, const struct pam_message **mes, struct pam_response **resp, void *appdata_ptr) { struct pam_message *m=*mes; struct pam_response *r=*resp; while (num_msg--) { switch(m->msg_style) { case PAM_PROMPT_ECHO_ON : fprintf(stdout,"%s",m->msg); r->resp=(char *)malloc(PAM_MAX_RESP_SIZE); fgets(r->resp,PAM_MAX_RESP_SIZE-1,stdin); m++; r++; break; case PAM_PROMPT_ECHO_OFF: r->resp=getpass(m->msg); m++; r++; break; case PAM_ERROR_MSG : fprintf(stderr,"%s",m->msg); m++; r++; break; case PAM_TEXT_INFO : fprintf(stdout,"%s",m->msg); m++; r++; break; default : break; } } return PAM_SUCCESS; } static struct pam_conv conv={su_conv, NULL}; int main(int argc, char *argv[]) { int ret; pam_handle_t *pamh; struct passwd *pwd; ret=pam_start("su",argv[1],&conv,&pamh); if (ret==PAM_SUCCESS) ret=pam_authenticate(pamh,0); if (ret==PAM_SUCCESS) ret=pam_acct_mgmt(pamh,0); if (ret==PAM_SUCCESS) if ((pwd=getpwnam(argv[1]))!=NULL) setuid(pwd->pw_uid); else { pam_end(pamh,PAM_AUTH_ERR); exit(1); } pam_end(pamh,PAM_SUCCESS); return (ret==PAM_SUCCESS?0:1); } При этом при компиляции получаю следующее my_pam.c: In function `su_conv': my_pam.c:10: warning: initialization discards qualifiers from pointer target type /tmp/ccXRTMg0.o(.text+0x171): In function `main': : undefined reference to `pam_start' /tmp/ccXRTMg0.o(.text+0x18a): In function `main': : undefined reference to `pam_authenticate' /tmp/ccXRTMg0.o(.text+0x1a3): In function `main': : undefined reference to `pam_acct_mgmt' /tmp/ccXRTMg0.o(.text+0x1eb): In function `main': : undefined reference to `pam_end' /tmp/ccXRTMg0.o(.text+0x205): In function `main': : undefined reference to `pam_end' collect2: ld returned 1 exit status В чем дело? Если кто знает пишите. ![]() |
|||
|
||||
gruy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 4.6.2004 Репутация: нет Всего: 3 |
При сборке библиотеку pam подключала -lpam ?
Это сообщение отредактировал(а) gruy - 6.9.2006, 12:56 |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
нужны ответы на:
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |