From a2618aa8d5a46305c02a083b880ce299681810c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Fri, 29 Jun 2007 09:01:29 +0000 Subject: [PATCH] r23648: Allow to list a custom krb5 keytab file with: net ads keytab list /path/to/krb5.keytab Guenther (This used to be commit a2befee3f240543ea02ea99cebad886b54ae64eb) --- source3/libads/kerberos_keytab.c | 4 ++-- source3/utils/net_ads.c | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c index 95a3a37712e..a1038e1f2d2 100644 --- a/source3/libads/kerberos_keytab.c +++ b/source3/libads/kerberos_keytab.c @@ -801,7 +801,7 @@ done: List system keytab. ***********************************************************************/ -int ads_keytab_list(void) +int ads_keytab_list(const char *keytab_name) { krb5_error_code ret = 0; krb5_context context = NULL; @@ -819,7 +819,7 @@ int ads_keytab_list(void) return ret; } - ret = smb_krb5_open_keytab(context, NULL, False, &keytab); + ret = smb_krb5_open_keytab(context, keytab_name, False, &keytab); if (ret) { DEBUG(1,("ads_keytab_list: smb_krb5_open_keytab failed (%s)\n", error_message(ret))); goto out; diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c index a1206bbd524..29d7e386d87 100644 --- a/source3/utils/net_ads.c +++ b/source3/utils/net_ads.c @@ -2423,12 +2423,13 @@ static int net_ads_keytab_usage(int argc, const char **argv) " FLUSH Flushes out all keytab entries\n"\ " HELP Prints this help message\n"\ " LIST List the keytab\n"\ -"The ADD command will take arguments, the other commands\n"\ +"The ADD and LIST command will take arguments, the other commands\n"\ "will not take any arguments. The arguments given to ADD\n"\ "should be a list of principals to add. For example, \n"\ " net ads keytab add srv1 srv2\n"\ "will add principals for the services srv1 and srv2 to the\n"\ "system's keytab.\n"\ +"The LIST command takes a keytabname.\n"\ "\n" ); return -1; @@ -2479,15 +2480,21 @@ static int net_ads_keytab_create(int argc, const char **argv) static int net_ads_keytab_list(int argc, const char **argv) { - return ads_keytab_list(); + const char *keytab = NULL; + + if (argc >= 1) { + keytab = argv[0]; + } + + return ads_keytab_list(keytab); } int net_ads_keytab(int argc, const char **argv) { struct functable func[] = { - {"CREATE", net_ads_keytab_create}, {"ADD", net_ads_keytab_add}, + {"CREATE", net_ads_keytab_create}, {"FLUSH", net_ads_keytab_flush}, {"HELP", net_ads_keytab_usage}, {"LIST", net_ads_keytab_list}, -- 2.34.1