svn commit: samba r12722 - in trunk/source/nsswitch: .
gd at samba.org
gd at samba.org
Thu Jan 5 14:28:35 GMT 2006
Author: gd
Date: 2006-01-05 14:28:34 +0000 (Thu, 05 Jan 2006)
New Revision: 12722
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12722
Log:
Handle NT_STATUS_ACCOUNT_DISABLED on logon as well.
Guenther
Modified:
trunk/source/nsswitch/pam_winbind.c
Changeset:
Modified: trunk/source/nsswitch/pam_winbind.c
===================================================================
--- trunk/source/nsswitch/pam_winbind.c 2006-01-05 11:35:29 UTC (rev 12721)
+++ trunk/source/nsswitch/pam_winbind.c 2006-01-05 14:28:34 UTC (rev 12722)
@@ -125,6 +125,7 @@
{"NT_STATUS_INVALID_WORKSTATION", "You are not allowed to logon from this workstation"},
{"NT_STATUS_INVALID_LOGON_HOURS", "You are not allowed to logon at this time"},
{"NT_STATUS_ACCOUNT_EXPIRED", "Your account has expired. Please contact your System administrator"}, /* SCNR */
+ {"NT_STATUS_ACCOUNT_DISABLED", "Your account is disabled. Please contact your System administrator"}, /* SCNR */
{"NT_STATUS_ACCOUNT_LOCKED_OUT", "Your account has been locked. Please contact your System administrator"}, /* SCNR */
{"NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT", "Invalid Trust Account"},
{"NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT", "Invalid Trust Account"},
@@ -403,6 +404,7 @@
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_INVALID_WORKSTATION");
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_INVALID_LOGON_HOURS");
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_ACCOUNT_EXPIRED");
+ PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_ACCOUNT_DISABLED");
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_ACCOUNT_LOCKED_OUT");
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT");
PAM_WB_REMARK_CHECK_RESPONSE(pamh, response, "NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT");
@@ -999,6 +1001,8 @@
struct winbindd_response response;
const char *user;
const char *ccname = NULL;
+ struct passwd *pwd = NULL;
+
int retval;
ZERO_STRUCT(request);
@@ -1027,7 +1031,11 @@
fstrcpy(request.data.logoff.user, user);
fstrcpy(request.data.logoff.krb5ccname, ccname);
- request.data.logoff.uid = geteuid();
+ pwd = getpwnam(user);
+ if (pwd == NULL) {
+ return PAM_USER_UNKNOWN;
+ }
+ request.data.logoff.uid = pwd->pw_uid;
request.flags = WBFLAG_PAM_KRB5 | WBFLAG_PAM_CONTACT_TRUSTDOM;
More information about the samba-cvs
mailing list