]> granicus.if.org Git - shadow/commitdiff
* NEWS, src/userdel.c, man/userdel.8.xml: Add --root option. Open
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 6 Nov 2011 18:37:32 +0000 (18:37 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 6 Nov 2011 18:37:32 +0000 (18:37 +0000)
audit and syslog after the potential chroot. userdel's usage split
in smaller messages.

ChangeLog
NEWS
man/userdel.8.xml
src/userdel.c

index 2f449f74bbdf0059504a1394c308f7c227cfbd0e..a9de9ec90d3312c23c30485977636601489eebc1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,9 @@
        are applied to the chroot.
        * NEWS, src/useradd.c, man/useradd.8.xml: Add --root option. Open
        audit after the potential chroot.
+       * NEWS, src/userdel.c, man/userdel.8.xml: Add --root option. Open
+       audit and syslog after the potential chroot. userdel's usage split
+       in smaller messages.
 
 2011-10-22  Nicolas François  <nicolas.francois@centraliens.net>
 
diff --git a/NEWS b/NEWS
index 8262092562d8106ce732c18b142c31ad03963e94..1f802b6252d07ce9f5853eaf7091718b6cea91be 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,7 @@ shadow-4.1.4.3 -> shadow-4.1.5                                        UNRELEASED
     it. If it does not exist, a warning is issued, but no failure.
   * Do not remove a group with the same name as the user (usergroup) if
     this group isn't the user's primary group.
+  * Add --root option.
 - usermod
   * Accept options in any order (username not necessarily at the end)
   * When the shadow file exists but there are no shadow entries, an entry
index 1ee70b2a4003951601388ba9b8fe16b7516f49c0..7b85c48c6b5fcc42134144bf1acbbb84a8ff519b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
    Copyright (c) 1991 - 1994, Julianne Frances Haugh
-   Copyright (c) 2007 - 2009, Nicolas François
+   Copyright (c) 2007 - 2011, Nicolas François
    All rights reserved.
   
    Redistribution and use in source and binary forms, with or without
          </para>
        </listitem>
       </varlistentry>
+      <varlistentry>
+       <term>
+         <option>-R</option>, <option>--root</option>
+         <replaceable>CHROOT_DIR</replaceable>
+       </term>
+       <listitem>
+         <para>
+           Apply changes in the <replaceable>CHROOT_DIR</replaceable>
+           directory and use the configuration files from the
+           <replaceable>CHROOT_DIR</replaceable> directory.
+         </para>
+       </listitem>
+      </varlistentry>
     </variablelist>
   </refsect1>
 
index c1995f1398452fa8aa63ed22a2ecf13ce75c53a3..49d3292cd247996abb8e6cc0b8813a47159913cd 100644 (file)
@@ -122,14 +122,19 @@ static int remove_tcbdir (const char *user_name, uid_t user_id);
  */
 static void usage (int status)
 {
-       fputs (_("Usage: userdel [options] LOGIN\n"
-                "\n"
-                "Options:\n"
-                "  -f, --force                   force removal of files,\n"
-                "                                even if not owned by user\n"
-                "  -h, --help                    display this help message and exit\n"
-                "  -r, --remove                  remove home directory and mail spool\n"
-                "\n"), (E_SUCCESS != status) ? stderr : stdout);
+       FILE *usageout = (E_SUCCESS != status) ? stderr : stdout;
+       (void) fprintf (usageout,
+                       _("Usage: %s [options] LOGIN\n"
+                         "\n"
+                         "Options:\n"),
+                       Prog);
+       (void) fputs (_("  -f, --force                   force removal of files,\n"
+                       "                                even if not owned by user\n"),
+                     usageout);
+       (void) fputs (_("  -h, --help                    display this help message and exit\n"), usageout);
+       (void) fputs (_("  -r, --remove                  remove home directory and mail spool\n"), usageout);
+       (void) fputs (_("  -R, --root CHROOT_DIR         directory to chroot into\n"), usageout);
+       (void) fputs ("\n", usageout);
        exit (status);
 }
 
@@ -844,10 +849,6 @@ int main (int argc, char **argv)
 #endif                         /* USE_PAM */
 #endif                         /* ACCT_TOOLS_SETUID */
 
-#ifdef WITH_AUDIT
-       audit_help_open ();
-#endif                         /* WITH_AUDIT */
-
        /*
         * Get my name so that I can use it to report errors.
         */
@@ -856,6 +857,13 @@ int main (int argc, char **argv)
        (void) bindtextdomain (PACKAGE, LOCALEDIR);
        (void) textdomain (PACKAGE);
 
+       process_root_flag ("-R", argc, argv);
+
+       OPENLOG ("userdel");
+#ifdef WITH_AUDIT
+       audit_help_open ();
+#endif                         /* WITH_AUDIT */
+
        {
                /*
                 * Parse the command line options.
@@ -865,9 +873,10 @@ int main (int argc, char **argv)
                        {"force", no_argument, NULL, 'f'},
                        {"help", no_argument, NULL, 'h'},
                        {"remove", no_argument, NULL, 'r'},
+                       {"root", required_argument, NULL, 'R'},
                        {NULL, 0, NULL, '\0'}
                };
-               while ((c = getopt_long (argc, argv, "fhr",
+               while ((c = getopt_long (argc, argv, "fhrR:",
                                         long_options, NULL)) != -1) {
                        switch (c) {
                        case 'f':       /* force remove even if not owned by user */
@@ -879,6 +888,8 @@ int main (int argc, char **argv)
                        case 'r':       /* remove home dir and mailbox */
                                rflg = true;
                                break;
+                       case 'R': /* no-op, handled in process_root_flag () */
+                               break;
                        default:
                                usage (E_USAGE);
                        }
@@ -889,8 +900,6 @@ int main (int argc, char **argv)
                usage (E_USAGE);
        }
 
-       OPENLOG ("userdel");
-
 #ifdef ACCT_TOOLS_SETUID
 #ifdef USE_PAM
        {