Author: vlendec Date: 2005-02-10 17:40:02 +0000 (Thu, 10 Feb 2005) New Revision: 5317
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5317 Log: Get 'net afskey' into a subcommand of its own, 'net afs key'. Implement 'net afs impersonate', generate a token for a specified user. You obviously need to be root for this operation. Volker Modified: trunk/source/utils/net.c trunk/source/utils/net_help.c Changeset: Modified: trunk/source/utils/net.c =================================================================== --- trunk/source/utils/net.c 2005-02-10 17:38:49 UTC (rev 5316) +++ trunk/source/utils/net.c 2005-02-10 17:40:02 UTC (rev 5317) @@ -552,14 +552,16 @@ #ifdef WITH_FAKE_KASERVER -int net_afskey_usage(int argc, const char **argv) +int net_help_afs(int argc, const char **argv) { - d_printf(" net afskey filename\n" + d_printf(" net afs key filename\n" "\tImports a OpenAFS KeyFile into our secrets.tdb\n\n"); + d_printf(" net afs impersonate <user> <cell>\n" + "\tCreates a token for [EMAIL PROTECTED]"); return -1; } -static int net_afskey(int argc, const char **argv) +static int net_afs_key(int argc, const char **argv) { int fd; struct afs_keyfile keyfile; @@ -592,6 +594,42 @@ return 0; } +static int net_afs_impersonate(int argc, const char **argv) +{ + char *token; + + if (argc != 2) { + fprintf(stderr, "Usage: net afs impersonate <user> <cell>\n"); + exit(1); + } + + token = afs_createtoken_str(argv[0], argv[1]); + + if (token == NULL) { + fprintf(stderr, "Could not create token\n"); + exit(1); + } + + if (!afs_settoken_str(token)) { + fprintf(stderr, "Could not set token into kernel\n"); + exit(1); + } + + printf("Success: [EMAIL PROTECTED]", argv[0], argv[1]); + return 0; +} + +static int net_afs(int argc, const char **argv) +{ + struct functable func[] = { + {"key", net_afs_key}, + {"impersonate", net_afs_impersonate}, + {"help", net_help_afs}, + {NULL, NULL} + }; + return net_run_function(argc, argv, func, net_help_afs); +} + #endif /* WITH_FAKE_KASERVER */ static uint32 get_maxrid(void) @@ -707,7 +745,7 @@ {"STATUS", net_status}, {"USERSIDLIST", net_usersidlist}, #ifdef WITH_FAKE_KASERVER - {"AFSKEY", net_afskey}, + {"AFS", net_afs}, #endif {"HELP", net_help}, Modified: trunk/source/utils/net_help.c =================================================================== --- trunk/source/utils/net_help.c 2005-02-10 17:38:49 UTC (rev 5316) +++ trunk/source/utils/net_help.c 2005-02-10 17:40:02 UTC (rev 5317) @@ -269,7 +269,7 @@ {"LOOKUP", net_lookup_usage}, {"USERSIDLIST", net_usersidlist_usage}, #ifdef WITH_FAKE_KASERVER - {"AFSKEY", net_afskey_usage}, + {"AFS", net_help_afs}, #endif {"HELP", help_usage},