X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/checkpath/blobdiff_plain/c25f05b8e3c97f1629fb5a685288881eff4cbf8d..c7ade76f8e82fb51068cfd9e41b8268b35c50b13:/chkpath.c diff --git a/chkpath.c b/chkpath.c index 08c39c7..a7158d3 100644 --- a/chkpath.c +++ b/chkpath.c @@ -43,6 +43,7 @@ #include #include "checkpath.h" +#include "utils.h" /*----- Main code ---------------------------------------------------------*/ @@ -56,7 +57,7 @@ static void report(unsigned what, int verbose, /* --- @usage@ --- */ static void usage(FILE *fp) - { fprintf(fp, "Usage: %s [-vqstp] [-g NAME] [PATH...]\n", QUIS); } + { fprintf(fp, "Usage: %s [-pqstv] [-g NAME] [PATH...]\n", QUIS); } /* --- @version@ --- */ @@ -82,13 +83,13 @@ Options provided are:\n\ -V, --version Display the program's version number.\n\ -u, --usage Show a terse usage summary.\n\ \n\ --v, --verbose Be verbose about the search progress (cumulative).\n\ +-g, --group NAME Consider members of group NAME trustworthy.\n\ +-p, --print Write the secure path elements to standard output.\n\ -q, --quiet Be quiet about the search progress (cumulative).\n\ -s, --sticky Consider sticky directories secure against\n\ modification by world and group (not recommended).\n\ --t, --trust-group Consider other members of your group trustworthy.\n\ --g, --group NAME Consider members of group NAME trustworthy.\n\ --p, --print Write the secure path elements to standard output.\n\ +-t, --trust-groups Consider other members of your group trustworthy.\n\ +-v, --verbose Be verbose about the search progress (cumulative).\n\ ", fp); } @@ -122,17 +123,18 @@ int main(int argc, char *argv[]) for (;;) { static struct option opts[] = { { "help", 0, 0, 'h' }, - { "version", 0, 0, 'V' }, + { "version", 0, 0, 'V' }, { "usage", 0, 0, 'u' }, - { "verbose", 0, 0, 'v' }, + { "group", OPTF_ARGREQ, 0, 'g' }, + { "print", 0, 0, 'p' }, { "quiet", 0, 0, 'q' }, { "sticky", 0, 0, 's' }, - { "trust-group", 0, 0, 't' }, - { "print", 0, 0, 'p' }, + { "trust-groups", 0, 0, 't' }, + { "verbose", 0, 0, 'v' }, { 0, 0, 0, 0 } }; - int i = mdwopt(argc, argv, "hVu" "vqstpg:", opts, 0, 0, 0); + i = mdwopt(argc, argv, "hVu" "g:pqstv", opts, 0, 0, 0); if (i < 0) break; switch (i) { @@ -145,8 +147,11 @@ int main(int argc, char *argv[]) case 'u': usage(stdout); exit(0); - case 'v': - cp.cp_verbose++; + case 'g': + allowgroup(&cp, optarg); + break; + case 'p': + f |= f_print; break; case 'q': if (cp.cp_verbose) @@ -159,11 +164,8 @@ int main(int argc, char *argv[]) if (checkpath_setgid(&cp) || checkpath_setgroups(&cp)) die(1, "too many groups"); break; - case 'g': - allowgroup(&cp, optarg); - break; - case 'p': - f |= f_print; + case 'v': + cp.cp_verbose++; break; default: bad = 1;