Author: idra
Date: 2006-05-16 17:40:28 +0000 (Tue, 16 May 2006)
New Revision: 15646

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

Log:

Implement an setdomainsid command as well


Modified:
   branches/SAMBA_3_0/source/utils/net.c
   branches/SAMBA_3_0/source/utils/net_help.c
   trunk/source/utils/net.c
   trunk/source/utils/net_help.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net.c       2006-05-16 17:04:56 UTC (rev 
15645)
+++ branches/SAMBA_3_0/source/utils/net.c       2006-05-16 17:40:28 UTC (rev 
15646)
@@ -596,6 +596,26 @@
        return 0;
 }
 
+static int net_setdomainsid(int argc, const char **argv)
+{
+       DOM_SID sid;
+
+       if ( (argc != 1)
+            || (strncmp(argv[0], "S-1-5-21-", strlen("S-1-5-21-")) != 0)
+            || (!string_to_sid(&sid, argv[0]))
+            || (sid.num_auths != 4)) {
+               d_printf("usage: net setdomainsid S-1-5-21-x-y-z\n");
+               return 1;
+       }
+
+       if (!secrets_store_domain_sid(lp_workgroup(), &sid)) {
+               DEBUG(0,("Can't store domain SID.\n"));
+               return 1;
+       }
+
+       return 0;
+}
+
 static int net_getdomainsid(int argc, const char **argv)
 {
        DOM_SID domain_sid;
@@ -793,6 +813,7 @@
        {"CACHE", net_cache},
        {"GETLOCALSID", net_getlocalsid},
        {"SETLOCALSID", net_setlocalsid},
+       {"SETDOMAINSID", net_setdomainsid},
        {"GETDOMAINSID", net_getdomainsid},
        {"MAXRID", net_maxrid},
        {"IDMAP", net_idmap},

Modified: branches/SAMBA_3_0/source/utils/net_help.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_help.c  2006-05-16 17:04:56 UTC (rev 
15645)
+++ branches/SAMBA_3_0/source/utils/net_help.c  2006-05-16 17:40:28 UTC (rev 
15646)
@@ -61,7 +61,7 @@
 "Valid functions are:\n"\
 "  RPC RAP ADS FILE SHARE SESSION SERVER DOMAIN PRINTQ USER GROUP VALIDATE\n"\
 "  GROUPMEMBER ADMIN SERVICE PASSWORD TIME LOOKUP GETLOCALSID SETLOCALSID\n"\
-"  CHANGESCRETPW LOOKUP SAM\n");
+"  SETDOMAINSID CHANGESCRETPW LOOKUP SAM\n");
        return -1;
 }
 
@@ -230,6 +230,7 @@
                 "  net cache\t\tto operate on cache tdb file\n"\
                 "  net getlocalsid [NAME]\tto get the SID for local name\n"\
                 "  net setlocalsid SID\tto set the local domain SID\n"\
+                "  net setdomainsid SID\tto set the domain SID on member 
servers\n"\
                 "  net changesecretpw\tto change the machine password in the 
local secrets database only\n"\
                 "                    \tthis requires the -f flag as a safety 
barrier\n"\
                 "  net status\t\tShow server status\n"\

Modified: trunk/source/utils/net.c
===================================================================
--- trunk/source/utils/net.c    2006-05-16 17:04:56 UTC (rev 15645)
+++ trunk/source/utils/net.c    2006-05-16 17:40:28 UTC (rev 15646)
@@ -596,6 +596,26 @@
        return 0;
 }
 
+static int net_setdomainsid(int argc, const char **argv)
+{
+       DOM_SID sid;
+
+       if ( (argc != 1)
+            || (strncmp(argv[0], "S-1-5-21-", strlen("S-1-5-21-")) != 0)
+            || (!string_to_sid(&sid, argv[0]))
+            || (sid.num_auths != 4)) {
+               d_printf("usage: net setdomainsid S-1-5-21-x-y-z\n");
+               return 1;
+       }
+
+       if (!secrets_store_domain_sid(lp_workgroup(), &sid)) {
+               DEBUG(0,("Can't store domain SID.\n"));
+               return 1;
+       }
+
+       return 0;
+}
+
 static int net_getdomainsid(int argc, const char **argv)
 {
        DOM_SID domain_sid;
@@ -793,6 +813,7 @@
        {"CACHE", net_cache},
        {"GETLOCALSID", net_getlocalsid},
        {"SETLOCALSID", net_setlocalsid},
+       {"SETDOMAINSID", net_setdomainsid},
        {"GETDOMAINSID", net_getdomainsid},
        {"MAXRID", net_maxrid},
        {"IDMAP", net_idmap},

Modified: trunk/source/utils/net_help.c
===================================================================
--- trunk/source/utils/net_help.c       2006-05-16 17:04:56 UTC (rev 15645)
+++ trunk/source/utils/net_help.c       2006-05-16 17:40:28 UTC (rev 15646)
@@ -61,7 +61,7 @@
 "Valid functions are:\n"\
 "  RPC RAP ADS FILE SHARE SESSION SERVER DOMAIN PRINTQ USER GROUP VALIDATE\n"\
 "  GROUPMEMBER ADMIN SERVICE PASSWORD TIME LOOKUP GETLOCALSID SETLOCALSID\n"\
-"  CHANGESCRETPW LOOKUP SAM\n");
+"  SETDOMAINSID CHANGESCRETPW LOOKUP SAM\n");
        return -1;
 }
 
@@ -230,6 +230,7 @@
                 "  net cache\t\tto operate on cache tdb file\n"\
                 "  net getlocalsid [NAME]\tto get the SID for local name\n"\
                 "  net setlocalsid SID\tto set the local domain SID\n"\
+                "  net setdomainsid SID\tto set the domain SID on member 
servers\n"\
                 "  net changesecretpw\tto change the machine password in the 
local secrets database only\n"\
                 "                    \tthis requires the -f flag as a safety 
barrier\n"\
                 "  net status\t\tShow server status\n"\

Reply via email to