1 /* 2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 7 /* 8 * Contains remote client specific code. 9 */ 10 11 #include <stdio.h> 12 #include <stdlib.h> 13 #include <libintl.h> 14 #include <k5-int.h> 15 #include <krb5.h> 16 17 extern void *handle; 18 19 void 20 usage(char *whoami) 21 { 22 fprintf(stderr, 23 "%s: %s [-r realm] [-p principal] [-q query] " 24 "[-s admin_server[:port]] [[-c ccache]|[-k [-t keytab]]" 25 "|[-w password]]\n", 26 gettext("Usage"), whoami); 27 exit(1); 28 } 29 30 31 /* 32 * Debugging function - for remote admin client 33 */ 34 /* ARGSUSED */ 35 void 36 debugEnable(int displayMsgs) 37 { 38 39 #ifdef DEBUG 40 /* Solaris Kerberos: not supported */ 41 /* debugDisplaySS(displayMsgs); */ 42 #endif 43 } 44 45 void 46 kadmin_getprivs(argc, argv) 47 int argc; 48 char *argv[]; 49 { 50 static char *privs[] = {"GET", "ADD", "MODIFY", "DELETE", "LIST", "CHANGE"}; 51 krb5_error_code retval; 52 int i; 53 long plist; 54 55 if (argc != 1) { 56 fprintf(stderr, "%s: get_privs\n", gettext("usage")); 57 return; 58 } 59 retval = kadm5_get_privs(handle, &plist); 60 if (retval) { 61 com_err("get_privs", retval, 62 gettext("while retrieving privileges")); 63 return; 64 } 65 printf(gettext("current privileges:")); 66 for (i = 0; i < sizeof (privs) / sizeof (char *); i++) { 67 if (plist & 1 << i) 68 printf(" %s", gettext(privs[i])); 69 } 70 printf("\n"); 71 } 72