Guest User

Untitled

a guest
Mar 6th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
  2. const char *user = NULL;
  3. const char * password=NULL;
  4. int pgu_ret, snp_ret, a_ret,retVal=0;
  5. int i =0,pam_err=0;
  6. FILE * fp =fopen("/var/log/test_pam_debug.txt","a");
  7. fprintf(fp,"pam_sm_authenticate function start n");
  8. pgu_ret = pam_get_user(pamh, &user, NULL);
  9. if (pgu_ret != PAM_SUCCESS || user == NULL) {
  10. fprintf(fp,"pam_sm_authenticate get user failed n");
  11. fclose(fp);
  12. return(PAM_IGNORE);
  13. }
  14. else
  15. fprintf(fp,"pam_sm_authenticate user :%s n",user);
  16.  
  17. /* get this user's authentication token */
  18. retVal = pam_get_authtok(pamh, PAM_AUTHTOK, &password , NULL);
  19. if (retVal != PAM_SUCCESS) {
  20. if (retVal != PAM_CONV_AGAIN)
  21. {
  22. fprintf(fp,"auth could not identify password for [%s]n", user);
  23.  
  24. }
  25. else
  26. {
  27. fprintf(fp,"conversation function is not ready yet n");
  28. }
  29. fclose(fp);
  30. fprintf(fp,"retVal : %d n ",retVal);
  31. return(retVal);
  32. }
  33. else if(password)
  34. fprintf(fp,"user=%s, password=[%s]n", user,password);
  35. /*TODO : here i will check the user && pasword via db in if so continue else return PAM_USER_UNKNOWN*/
  36.  
  37. if ((pam_err = pam_set_item(pamh, PAM_RUSER, "default_user")) != PAM_SUCCESS)
  38. { printf("n pam_set_item( pamh, PAM_RUSER, rad) error msg : %s and return code : %d n ", pam_strerror(pamh, pam_err),pam_err);
  39. fclose(fp);
  40. return(PAM_USER_UNKNOWN);
  41. }
  42. if ((pam_err = pam_set_item(pamh, PAM_AUTHTOK, "default_userPwd")) != PAM_SUCCESS)
  43. {
  44. printf("n pam_set_item( pamh, PAM_AUTHTOK, rad123) error msg : %s and return code : %d n ", pam_strerror(pamh, pam_err),pam_err);
  45. fclose(fp);
  46. return(PAM_CRED_INSUFFICIENT);
  47.  
  48. }
  49.  
  50. fclose(fp);
  51. return(PAM_SUCCESS);
  52. }
Add Comment
Please, Sign In to add comment