diff -ur qingy-0.9.9.orig/src/libraries/session.c qingy-0.9.9/src/libraries/session.c --- qingy-0.9.9.orig/src/libraries/session.c 2009-05-11 11:04:21.000000000 +0300 +++ qingy-0.9.9/src/libraries/session.c 2010-11-11 21:12:56.000000000 +0200 @@ -819,6 +819,13 @@ for (; args[i]; i++) WRITELOG(DEBUG, "Starting text session with argument #%d: %s\n", i, args[i]); +#ifdef USE_PAM + //pam_setcred(pamh, PAM_ESTABLISH_CRED); + pam_open_session(pamh, 0); +#else + LogEvent(pw, OPEN_SESSION); +#endif + proc_id = fork(); if (proc_id == -1) { @@ -830,13 +837,16 @@ { /* write to system logs */ dolastlog(pw, 0); - add_utmp_wtmp_entry(username); + + add_utmp_wtmp_entry(username); +#if 0 #ifdef USE_PAM //pam_setcred(pamh, PAM_ESTABLISH_CRED); pam_open_session(pamh, 0); #else LogEvent(pw, OPEN_SESSION); #endif +#endif /* remove last session file from user home dir, as previous qingy versions created it with root ownership @@ -1011,6 +1021,13 @@ free(my_x_server); free(vt); +#ifdef USE_PAM + //pam_setcred(pamh, PAM_ESTABLISH_CRED); + pam_open_session(pamh, 0); +#else + LogEvent(pw, OPEN_SESSION); +#endif + proc_id = fork(); if (proc_id == -1) { @@ -1025,12 +1042,14 @@ /* write to system logs */ dolastlog(pw, 1); add_utmp_wtmp_entry(username); +#if 0 #ifdef USE_PAM //pam_setcred(pamh, PAM_ESTABLISH_CRED); pam_open_session(pamh, 0); #else LogEvent(pw, OPEN_SESSION); #endif +#endif /* remove last session file from user home dir, as previous qingy versions created it with root ownership