LINUX.ORG.RU

Проблема с pam_authenticate


0

1

Проверял на FreeBSD 6.0-RELEASE.Не работает :(

int is_password_correct(char *username, char *password)
{
        int                             result;

        do {

            pam_handle_t *      pamh;

            result = pam_start("ftpd", username, NULL, &pamh);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }
            result = pam_set_item(pamh, PAM_AUTHTOK, password);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }
            result = pam_authenticate(pamh, PAM_SILENT);
            pam_end(pamh, PAM_SUCCESS);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }

        } while(false);
        return result;
}

В чём могут быть грабли?

★★★

Ответ на: комментарий от amorpher

В чём баг? Что одинаково попробовать?

alman ★★★
() автор топика

Нашёл такой ответ:

http://mail.cc.umanitoba.ca/source/

pam_shadow_auth

This facility permits a server program, running as an ordinary user, to authenticate users against the /etc/shadow file or the corresponding NIS or NIS+ maps.

The RPC server runs as root, but listens only on the ticlts transport. This restricts client and server to the same hosts and prevents password capture by snooping. Password verification is performed on the RPC server to prevent rogue clients from obtaining all encrypted passwords.

Неужели нельзя в настройках PAM чего либо подкрутить, чтобы позволить авторизацию от простого пользователя?

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