svn commit: samba r20851 - in branches: SAMBA_3_0/source/passdb SAMBA_3_0_24/source/passdb

vlendec at samba.org vlendec at samba.org
Wed Jan 17 15:47:36 GMT 2007


Author: vlendec
Date: 2007-01-17 15:47:36 +0000 (Wed, 17 Jan 2007)
New Revision: 20851

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20851

Log:
To read account policies from LDAP we need root.

Volker

Modified:
   branches/SAMBA_3_0/source/passdb/passdb.c
   branches/SAMBA_3_0_24/source/passdb/passdb.c


Changeset:
Modified: branches/SAMBA_3_0/source/passdb/passdb.c
===================================================================
--- branches/SAMBA_3_0/source/passdb/passdb.c	2007-01-17 14:49:36 UTC (rev 20850)
+++ branches/SAMBA_3_0/source/passdb/passdb.c	2007-01-17 15:47:36 UTC (rev 20851)
@@ -1382,6 +1382,7 @@
 	time_t LastBadPassword;
 	uint16 BadPasswordCount;
 	uint32 resettime; 
+	BOOL res;
 
 	BadPasswordCount = pdb_get_bad_password_count(sampass);
 	if (!BadPasswordCount) {
@@ -1389,7 +1390,11 @@
 		return True;
 	}
 
-	if (!pdb_get_account_policy(AP_RESET_COUNT_TIME, &resettime)) {
+	become_root_uid_only();
+	res = pdb_get_account_policy(AP_RESET_COUNT_TIME, &resettime);
+	unbecome_root_uid_only();
+
+	if (!res) {
 		DEBUG(0, ("pdb_update_bad_password_count: pdb_get_account_policy failed.\n"));
 		return False;
 	}
@@ -1422,6 +1427,7 @@
 {
 	uint32 duration;
 	time_t LastBadPassword;
+	BOOL res;
 
 	if (!(pdb_get_acct_ctrl(sampass) & ACB_AUTOLOCK)) {
 		DEBUG(9, ("pdb_update_autolock_flag: Account %s not autolocked, no check needed\n",
@@ -1429,7 +1435,11 @@
 		return True;
 	}
 
-	if (!pdb_get_account_policy(AP_LOCK_ACCOUNT_DURATION, &duration)) {
+	become_root_uid_only();
+	res = pdb_get_account_policy(AP_LOCK_ACCOUNT_DURATION, &duration);
+	unbecome_root_uid_only();
+
+	if (!res) {
 		DEBUG(0, ("pdb_update_autolock_flag: pdb_get_account_policy failed.\n"));
 		return False;
 	}

Modified: branches/SAMBA_3_0_24/source/passdb/passdb.c
===================================================================
--- branches/SAMBA_3_0_24/source/passdb/passdb.c	2007-01-17 14:49:36 UTC (rev 20850)
+++ branches/SAMBA_3_0_24/source/passdb/passdb.c	2007-01-17 15:47:36 UTC (rev 20851)
@@ -1366,6 +1366,7 @@
 	time_t LastBadPassword;
 	uint16 BadPasswordCount;
 	uint32 resettime; 
+	BOOL res;
 
 	BadPasswordCount = pdb_get_bad_password_count(sampass);
 	if (!BadPasswordCount) {
@@ -1373,7 +1374,11 @@
 		return True;
 	}
 
-	if (!pdb_get_account_policy(AP_RESET_COUNT_TIME, &resettime)) {
+	become_root();
+	res = pdb_get_account_policy(AP_RESET_COUNT_TIME, &resettime);
+	unbecome_root();
+
+	if (!res) {
 		DEBUG(0, ("pdb_update_bad_password_count: pdb_get_account_policy failed.\n"));
 		return False;
 	}
@@ -1406,6 +1411,7 @@
 {
 	uint32 duration;
 	time_t LastBadPassword;
+	BOOL res;
 
 	if (!(pdb_get_acct_ctrl(sampass) & ACB_AUTOLOCK)) {
 		DEBUG(9, ("pdb_update_autolock_flag: Account %s not autolocked, no check needed\n",
@@ -1413,7 +1419,11 @@
 		return True;
 	}
 
-	if (!pdb_get_account_policy(AP_LOCK_ACCOUNT_DURATION, &duration)) {
+	become_root();
+	res = pdb_get_account_policy(AP_LOCK_ACCOUNT_DURATION, &duration);
+	unbecome_root();
+
+	if (!res) {
 		DEBUG(0, ("pdb_update_autolock_flag: pdb_get_account_policy failed.\n"));
 		return False;
 	}



More information about the samba-cvs mailing list