]> granicus.if.org Git - shadow/commitdiff
Add option -l to avoid adding the user to the lastlog and faillog databases
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 26 Dec 2007 10:15:20 +0000 (10:15 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 26 Dec 2007 10:15:20 +0000 (10:15 +0000)
Fix the release numbers for the current NEWS entries.

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

index 7d6196dafd04fc3aa46e44fbfb7d6b6b6ef3fc8c..0f31ffe1fb1d5ffc6a819c1465967d607a7e554f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-26  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * NEWS, src/useradd.c, man/useradd.8.xml: Add option -l to avoid adding
+       the user to the lastlog and faillog databases.
+
 2007-12-26  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/useradd.c, src/groupadd.c: NO_GETPWENT is no more supported. Remove
diff --git a/NEWS b/NEWS
index cb8b32fb0ee3c04fe9917e40c9841db3feaf63d1..ba25106b5c04f4f2c48c511963e0e4f7a6cf33af 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,12 @@
 $Id$
 
-shadow-4.0.18.2 -> shadow-4.1.0                                                UNRELEASED
+shadow-4.1.0 -> shadow-4.1.1                                           UNRELEASED
 
 *** general:
 - packaging
-  Do not install the shadow library per default.
+  * Do not install the shadow library per default.
+- useradd
+  * New option -l to avoid adding the user to the lastlog and faillog databases.
 
 shadow-4.0.18.2 -> shadow-4.1.0                                                09-12-2008
 
index 2167f8021db97b036771575823268152ea622e8b..99e500cccfc59092720a33fffa7fd98b04cedf0e 100644 (file)
          </para>
        </listitem>
       </varlistentry>
+      <varlistentry>
+       <term><option>-l</option></term>
+       <listitem>
+         <para>
+           Do not add the user to the lastlog and faillog databases.
+         </para>
+         <para>
+           By default, the user's entries in the lastlog and faillog
+           databases are resetted to avoid reusing the entry from a previously
+           deleted user.
+         </para>
+       </listitem>
+      </varlistentry>
       <varlistentry>
        <term>
          <option>-o</option>, <option>--non-unique</option>
index d2088bee334ac2705d548ecd8e17f9f67fd16f20..4bba6efd863a81bce1cdd98cc6e2bae4769b85b5 100644 (file)
@@ -123,6 +123,7 @@ static int
     gflg = 0,                  /* primary group ID for new account */
     Gflg = 0,                  /* secondary group set for new account */
     kflg = 0,                  /* specify a directory to fill new user directory */
+    lflg = 0,                  /* do not add user to lastlog database file */
     mflg = 0,                  /* create user's home directory if it doesn't exist */
     nflg = 0,                  /* create a group having the same name as the user */
     oflg = 0,                  /* permit non-unique user ID to be specified with -u */
@@ -630,6 +631,8 @@ static void usage (void)
                           "  -h, --help                    display this help message and exit\n"
                           "  -k, --skel SKEL_DIR           specify an alternative skel directory\n"
                           "  -K, --key KEY=VALUE           overrides /etc/login.defs defaults\n"
+                          "  -l,                           do not add the user to the lastlog and\n"
+                          "                                faillog databases\n"
                           "  -m, --create-home             create home directory for the new user\n"
                           "                                account\n"
                           "  -o, --non-unique              allow create user with duplicate\n"
@@ -974,7 +977,7 @@ static void process_flags (int argc, char **argv)
                        {NULL, 0, NULL, '\0'}
                };
                while ((c =
-                       getopt_long (argc, argv, "b:c:d:De:f:g:G:k:K:mMop:s:u:",
+                       getopt_long (argc, argv, "b:c:d:De:f:g:G:k:K:lmMop:s:u:",
                                     long_options, NULL)) != -1) {
                        switch (c) {
                        case 'b':
@@ -1108,6 +1111,9 @@ static void process_flags (int argc, char **argv)
                                if (putdef_str (optarg, cp) < 0)
                                        exit (E_BAD_ARG);
                                break;
+                       case 'l':
+                               lflg++;
+                               break;
                        case 'm':
                                mflg++;
                                break;
@@ -1468,7 +1474,7 @@ static void usr_update (void)
         * are left unchanged).  --marekm
         */
        /* local, no need for xgetpwuid */
-       if (!getpwuid (user_id)) {
+       if ((!lflg) && (getpwuid (user_id) == NULL)) {
                faillog_reset (user_id);
                lastlog_reset (user_id);
        }