No subject

Oswaldo F. Filho offox2001 at gmail.com
Tue Jun 4 11:30:17 UTC 2013


I created a new PAM Module for RHEL.

My code:

    #include <security/pam_modules.h>
    #include <security/pam_macros.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdio.h>

    PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
                                                                const
char **argv) {

        char password[20];
        strcpy(password, "test");

        pam_set_item(pamh,PAM_AUTHTOK,(const void **)(const void*)&password);

        char *user;
        char *pass;

        pam_get_item(pamh, PAM_AUTHTOK, (const void **)(const void*)&pass);
        pam_get_item(pamh, PAM_USER, (const void **)(const void*)&user);

        FILE  *fd;
        fd = fopen("/tmp/pass.txt", "w");

        fprintf(fd, "user: %s\n", user);
        fprintf(fd, "password: %s\n", pass);

        fclose(fd);

        return PAM_IGNORE;
    }


I configured /etc/pam.d/commom-auth:

     auth    sufficient          libtest-pam-auth-module.so
     auth    required            pam_unix.so try_first_pass nullok_secure debug
     auth    requisite           pam_deny.so
     auth    required            pam_permit.so
     auth    optional            pam_cap.so


Result of the execution of sudo command:

    $ sudo ifconfig
    Sorry, try again.
    Sorry, try again.
    Sorry, try again.
    sudo: 3 incorrect password attempts

User and password saved in /tmp/pass.txt are correct.

Why pam_unix doesn't accept the password passed by my module?

Thanks.




More information about the Pam-list mailing list