fputs(_(" -C, --counter <name>:<expr> define custom counter for --summary output\n"), out);
fputs(_(" --dump-counters dump counter definitions\n"), out);
fputs(_(" --summary[=<when>] print summary information (only, append, or never)\n"), out);
+ fputs(_(" --_drop-privilege (testing purpose) do setuid(1) just after starting\n"), out);
fputs(USAGE_SEPARATOR, out);
fputs(_(" -H, --list-columns list the available columns\n"), out);
OPT_DEBUG_FILTER = CHAR_MAX + 1,
OPT_SUMMARY,
OPT_DUMP_COUNTERS,
+ OPT_DROP_PRIVILEGE,
};
static const struct option longopts[] = {
{ "noheadings", no_argument, NULL, 'n' },
{ "counter", required_argument, NULL, 'C' },
{ "dump-counters",no_argument, NULL, OPT_DUMP_COUNTERS },
{ "list-columns",no_argument, NULL, 'H' },
+ { "_drop-privilege",no_argument,NULL,OPT_DROP_PRIVILEGE },
{ NULL, 0, NULL, 0 },
};
case OPT_DUMP_COUNTERS:
dump_counters = true;
break;
+ case OPT_DROP_PRIVILEGE:
+ if (setuid(1) == -1)
+ err(EXIT_FAILURE, _("failed to drop privilege"));
+ break;
case 'V':
print_version(EXIT_SUCCESS);
case 'h':