r22412: Add a "deletelocalgroup" subcommand to net sam.
authorMichael Adam <obnox@samba.org>
Fri, 20 Apr 2007 12:23:36 +0000 (12:23 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:19:32 +0000 (12:19 -0500)
Thanks to Karolin Seeger <ks@sernet.de>.

source/utils/net_sam.c

index 3b7d604dc628766f0a31cee057204f8030841b61..4d3102b51f4e3d218200338ecb1164b84118b09b 100644 (file)
@@ -571,6 +571,46 @@ static int net_sam_createlocalgroup(int argc, const char **argv)
        return 0;
 }
 
+/*
+ * Delete a local group
+ */
+
+static int net_sam_deletelocalgroup(int argc, const char **argv)
+{
+       DOM_SID sid;
+        enum lsa_SidType type;
+        const char *dom, *name;
+       int ret;
+
+       if (argc != 1) {
+               d_fprintf(stderr, "usage: net sam deletelocalgroup <name>\n");
+               return -1;
+       }
+
+       if (!lookup_name(tmp_talloc_ctx(), argv[0], LOOKUP_NAME_ISOLATED,
+                        &dom, &name, &sid, &type)) {
+               d_fprintf(stderr, "Could not find name %s.\n", argv[0]);
+               return -1;
+       }
+
+       if (type != SID_NAME_ALIAS) {
+               d_fprintf(stderr, "%s is a %s, not a local group.\n", argv[0],
+                         sid_type_lookup(type));
+               return -1;
+       }
+
+       ret = pdb_delete_alias(&sid);
+
+       if ( !ret ) {
+               d_fprintf(stderr, "Could not delete local group %s.\n", argv[0]);
+               return -1;
+       }
+
+       d_printf("Deleted local group %s.\n", argv[0]);
+
+       return 0;
+}
+
 /*
  * Create a local group
  */
@@ -1341,6 +1381,8 @@ int net_sam(int argc, const char **argv)
                  "Create a new BUILTIN group" },
                { "createlocalgroup", net_sam_createlocalgroup,
                  "Create a new local group" },
+               { "deletelocalgroup", net_sam_deletelocalgroup,
+                 "Delete an existing local group" },
                { "mapunixgroup", net_sam_mapunixgroup,
                  "Map a unix group to a domain group" },
                { "addmem", net_sam_addmem,