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"\
