svn commit: samba r22066 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0/source/passdb SAMBA_3_0_25/source/nsswitch SAMBA_3_0_25/source/passdb

jerry at samba.org jerry at samba.org
Wed Apr 4 02:57:03 GMT 2007


Author: jerry
Date: 2007-04-04 02:57:01 +0000 (Wed, 04 Apr 2007)
New Revision: 22066

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

Log:
Ensure that winbind can resolve SIDs in the S-1-22-{1,2}
domain to a uid.gid using the idmap_passdb backend.



Modified:
   branches/SAMBA_3_0/source/nsswitch/idmap.c
   branches/SAMBA_3_0/source/passdb/pdb_interface.c
   branches/SAMBA_3_0_25/source/nsswitch/idmap.c
   branches/SAMBA_3_0_25/source/passdb/pdb_interface.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/idmap.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/idmap.c	2007-04-04 00:03:12 UTC (rev 22065)
+++ branches/SAMBA_3_0/source/nsswitch/idmap.c	2007-04-04 02:57:01 UTC (rev 22066)
@@ -689,7 +689,9 @@
 
 	if ( (pdb_dom_num != -1) && 
 	     (sid_check_is_in_builtin(account_sid) ||
-	      sid_check_is_in_wellknown_domain(account_sid)) ) 
+	      sid_check_is_in_wellknown_domain(account_sid) ||
+	      sid_check_is_in_unix_groups(account_sid) ||
+	      sid_check_is_in_unix_users(account_sid)) ) 
 	{
 		return idmap_domains[pdb_dom_num];
 	}

Modified: branches/SAMBA_3_0/source/passdb/pdb_interface.c
===================================================================
--- branches/SAMBA_3_0/source/passdb/pdb_interface.c	2007-04-04 00:03:12 UTC (rev 22065)
+++ branches/SAMBA_3_0/source/passdb/pdb_interface.c	2007-04-04 02:57:01 UTC (rev 22066)
@@ -1305,6 +1305,26 @@
 		goto done;
 	}
 
+	/* check for "Unix User" */
+
+	if ( sid_peek_check_rid(&global_sid_Unix_Users, sid, &rid) ) {
+		id->uid = rid;
+		*type = SID_NAME_USER;
+		ret = True;		
+		goto done;		
+	}
+	
+	/* check for "Unix User" */
+
+	if ( sid_peek_check_rid(&global_sid_Unix_Groups, sid, &rid) ) {
+		id->gid = rid;
+		*type = SID_NAME_ALIAS;
+		ret = True;		
+		goto done;		
+	}
+	
+	/* BUILTIN */
+
 	if (sid_check_is_in_builtin(sid) ||
 	    sid_check_is_in_wellknown_domain(sid)) {
 		/* Here we only have aliases */
@@ -1328,7 +1348,7 @@
 		goto done;
 	}
 
-	DEBUG(5, ("Sid %s is neither ours nor builtin, don't know it\n",
+	DEBUG(5, ("Sid %s is neither ours, a Unix SID, nor builtin\n",
 		  sid_string_static(sid)));
 
  done:

Modified: branches/SAMBA_3_0_25/source/nsswitch/idmap.c
===================================================================
--- branches/SAMBA_3_0_25/source/nsswitch/idmap.c	2007-04-04 00:03:12 UTC (rev 22065)
+++ branches/SAMBA_3_0_25/source/nsswitch/idmap.c	2007-04-04 02:57:01 UTC (rev 22066)
@@ -689,7 +689,9 @@
 
 	if ( (pdb_dom_num != -1) && 
 	     (sid_check_is_in_builtin(account_sid) ||
-	      sid_check_is_in_wellknown_domain(account_sid)) ) 
+	      sid_check_is_in_wellknown_domain(account_sid) ||
+	      sid_check_is_in_unix_groups(account_sid) ||
+	      sid_check_is_in_unix_users(account_sid)) ) 
 	{
 		return idmap_domains[pdb_dom_num];
 	}

Modified: branches/SAMBA_3_0_25/source/passdb/pdb_interface.c
===================================================================
--- branches/SAMBA_3_0_25/source/passdb/pdb_interface.c	2007-04-04 00:03:12 UTC (rev 22065)
+++ branches/SAMBA_3_0_25/source/passdb/pdb_interface.c	2007-04-04 02:57:01 UTC (rev 22066)
@@ -1287,6 +1287,27 @@
 		goto done;
 	}
 
+	/* check for "Unix User" */
+
+	if ( sid_peek_check_rid(&global_sid_Unix_Users, sid, &rid) ) {
+		id->uid = rid;
+		*type = SID_NAME_USER;
+		ret = True;		
+		goto done;		
+	}
+	
+	/* check for "Unix User" */
+
+	if ( sid_peek_check_rid(&global_sid_Unix_Groups, sid, &rid) ) {
+		id->gid = rid;
+		*type = SID_NAME_ALIAS;
+		ret = True;		
+		goto done;		
+	}
+	
+
+	/* BUILTIN */
+
 	if (sid_peek_check_rid(&global_sid_Builtin, sid, &rid)) {
 		/* Here we only have aliases */
 		GROUP_MAP map;
@@ -1309,7 +1330,7 @@
 		goto done;
 	}
 
-	DEBUG(5, ("Sid %s is neither ours nor builtin, don't know it\n",
+	DEBUG(5, ("Sid %s is neither ours, a Unix SID, nor builtin\n",
 		  sid_string_static(sid)));
 
  done:



More information about the samba-cvs mailing list