When doing 'net groupmap add', default to algorithmic mapping for the rid.
authorVolker Lendecke <vlendec@samba.org>
Wed, 6 Aug 2003 09:24:11 +0000 (09:24 +0000)
committerVolker Lendecke <vlendec@samba.org>
Wed, 6 Aug 2003 09:24:11 +0000 (09:24 +0000)
Volker
(This used to be commit 7ce94d39add6e056e3b1deea21bf0438ba61e4cc)

source3/utils/net_groupmap.c

index 8831839e4eb979935e36403486e4a16f20a3d862..a50628a7c3b8819fafca377cde898db2c6885616 100644 (file)
@@ -252,11 +252,21 @@ static int net_groupmap_add(int argc, const char **argv)
                }
        }
 
-       if ( !unixgrp[0] || (!rid && !string_sid[0]) ) {
+       if ( !unixgrp[0] ) {
                d_printf("Usage: net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]\n");
                return -1;
        }
        
+       if ( (gid = nametogid(unixgrp)) == (gid_t)-1 ) {
+               d_printf("Can't lookup UNIX group %s\n", ntgroup);
+               return -1;
+       }
+       
+       if ( (rid == 0) || (string_sid[0] == '\0') ) {
+               d_printf("No rid or sid specified, choosing algorithmic mapping\n");
+               rid = pdb_gid_to_group_rid(gid);
+       }
+
        /* append the rid to our own domain/machine SID if we don't have a full SID */
        if ( !string_sid[0] ) {
                sid_copy(&sid, get_global_sam_sid());
@@ -267,11 +277,6 @@ static int net_groupmap_add(int argc, const char **argv)
        if (ntcomment[0])
                fstrcpy(ntcomment, "Local Unix group");
                
-       if ( (gid = nametogid(unixgrp)) == (gid_t)-1 ) {
-               d_printf("Can't lookup UNIX group %s\n", ntgroup);
-               return -1;
-       }
-       
        if ( !ntgroup[0] )
                fstrcpy( ntgroup, unixgrp );