break;
case COMMAND:
c = (struct sudo_command *) name;
+ if (c->digest != NULL) {
+ sudo_lbuf_append(lbuf, "%s:%s ",
+ digest_type_to_name(c->digest->digest_type),
+ c->digest->digest_str);
+ }
if (negated)
sudo_lbuf_append(lbuf, "!");
sudo_lbuf_append_quoted(lbuf, SUDOERS_QUOTED" \t", "%s", c->cmnd);
sudo_lbuf_append_quoted(lbuf, SUDOERS_QUOTED, "%s", c->args);
}
break;
+ case USERGROUP:
+ /* Special case for %#gid, %:non-unix-group, %:#non-unix-gid */
+ if (strpbrk(name, " \t") == NULL) {
+ if (*++name == ':') {
+ name++;
+ sudo_lbuf_append(lbuf, "%s", "%:");
+ } else {
+ sudo_lbuf_append(lbuf, "%s", "%");
+ }
+ }
+ goto print_word;
case ALIAS:
if (alias_type != UNSPEC) {
if ((a = alias_get(name, alias_type)) != NULL) {
}
/* FALLTHROUGH */
default:
+ print_word:
/* Do not quote UID/GID, all others get quoted. */
if (name[0] == '#' &&
name[strspn(name + 1, "0123456789") + 1] == '\0') {