diff --git a/kadmin/kadmin.c b/kadmin/kadmin.c index 47a44345b..9869d46d4 100644 --- a/kadmin/kadmin.c +++ b/kadmin/kadmin.c @@ -82,6 +82,8 @@ static SL_cmd commands[] = { { "ext_keytab", ext_keytab, "ext_keytab principal..."}, { "get_entry", get_entry, "get_entry principal"}, { "rename", rename_entry, "rename source target"}, + { "get_privileges", get_privs, "show maximum privileges" }, + { "privileges" }, { "help", help, "help"}, { "?"}, { "exit", exit_kadmin, "exit"}, @@ -111,6 +113,23 @@ usage(int ret) exit (ret); } +int +get_privs(int argc, char **argv) +{ + u_int32_t privs; + char str[128]; + kadm5_ret_t ret; + + ret = kadm5_get_privs(kadm_handle, &privs); + if(ret) + krb5_warn(context, ret, "kadm5_get_privs"); + else{ + ret =_kadm5_privs_to_string(privs, str, sizeof(str)); + printf("%s\n", str); + } + return 0; +} + int main(int argc, char **argv) { diff --git a/kadmin/kadmin_locl.h b/kadmin/kadmin_locl.h index ca0d01ebd..567844021 100644 --- a/kadmin/kadmin_locl.h +++ b/kadmin/kadmin_locl.h @@ -95,6 +95,7 @@ DECL(ext_keytab); DECL(get_entry); DECL(rename_entry); DECL(help); +DECL(get_privs); DECL(exit_kadmin); #define ALLOC(X) ((X) = malloc(sizeof(*(X))))