From 064cb0cedaf081074d3221fe31d14eebe591337b Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Wed, 20 Feb 2013 10:47:31 -0500 Subject: [PATCH] For "sudo -l" start a new line if the runas list changes to make the output easier to read. --- plugins/sudoers/parse.c | 9 +++++---- plugins/sudoers/sudo_nss.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/sudoers/parse.c b/plugins/sudoers/parse.c index 06742edc5..d0ab7a2c8 100644 --- a/plugins/sudoers/parse.c +++ b/plugins/sudoers/parse.c @@ -359,12 +359,11 @@ sudo_file_display_priv_short(struct passwd *pw, struct userspec *us, if (hostlist_matches(&priv->hostlist) != ALLOW) continue; prev_cs = NULL; - lbuf_append(lbuf, " "); tq_foreach_fwd(&priv->cmndlist, cs) { - if (cs != tq_first(&priv->cmndlist)) - lbuf_append(lbuf, ", "); if (RUNAS_CHANGED(cs, prev_cs)) { - lbuf_append(lbuf, "("); + if (cs != tq_first(&priv->cmndlist)) + lbuf_append(lbuf, "\n"); + lbuf_append(lbuf, " ("); if (!tq_empty(&cs->runasuserlist)) { tq_foreach_fwd(&cs->runasuserlist, m) { if (m != tq_first(&cs->runasuserlist)) @@ -392,6 +391,8 @@ sudo_file_display_priv_short(struct passwd *pw, struct userspec *us, tags.nopasswd = UNSPEC; tags.log_input = UNSPEC; tags.log_output = UNSPEC; + } else if (cs != tq_first(&priv->cmndlist)) { + lbuf_append(lbuf, ", "); } sudo_file_append_cmnd(cs, &tags, lbuf); prev_cs = cs; diff --git a/plugins/sudoers/sudo_nss.c b/plugins/sudoers/sudo_nss.c index 91825ed46..72540cc07 100644 --- a/plugins/sudoers/sudo_nss.c +++ b/plugins/sudoers/sudo_nss.c @@ -277,7 +277,7 @@ display_privs(struct sudo_nss_list *snl, struct passwd *pw) if (fstat(STDOUT_FILENO, &sb) == 0 && S_ISFIFO(sb.st_mode)) cols = 0; lbuf_init(&defs, output, 4, NULL, cols); - lbuf_init(&privs, output, long_list ? 8 : 4, NULL, cols); + lbuf_init(&privs, output, 8, NULL, cols); /* Display defaults from all sources. */ lbuf_append(&defs, _("Matching Defaults entries for %s on this host:\n"), -- 2.50.0