+2010-03-18 Nicolas François <nicolas.francois@centraliens.net>
+
+ * src/pwck.c: Document the sections closed by #endif
+ * src/pwck.c, man/pwck.8.xml: No alternative shadow file can be
+ given when USE_TCB is enabled.
+
2010-03-18 Nicolas François <nicolas.francois@centraliens.net>
* src/pwck.c: Do not use pwd_file and spw_file. Always use the
The <command>pwck</command> command verifies the integrity of the
users and authentication information. It checks that all entries in
<filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>
+ <phrase condition="tcb">(or the files in
+ <filename>/etc/tcb</filename>, when <option>USE_TCB</option> is
+ enabled)</phrase>
have the proper format and contain valid data.
The user is prompted to delete entries that are
improperly formatted or which have other uncorrectable errors.
<filename>/etc/shadow</filename> by UID.
</para>
<para condition="tcb">
- This option has no effect when TCB is enabled.
+ This option has no effect when <option>USE_TCB</option> is enabled.
</para>
</listitem>
</varlistentry>
<para>
By default, <command>pwck</command> operates on the files
- <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>.
- The user may select alternate files with the <emphasis
- remap='I'>passwd</emphasis> and <emphasis remap='I'>shadow</emphasis>
- parameters.
+ <filename>/etc/passwd</filename> and
+ <filename>/etc/shadow</filename><phrase condition="tcb"> (or the
+ files in <filename>/etc/tcb</filename>)</phrase>.
+ The user may select alternate files with the
+ <replaceable>passwd</replaceable> and
+ <replaceable>shadow</replaceable> parameters.
+ </para>
+ <para condition="tcb">
+ Note that when <option>USE_TCB</option> is enabled, you cannot
+ specify an alternative <replaceable>shadow</replaceable> file. In
+ future releases, this paramater could be replaced by an alternate
+ TCB directory.
</para>
</refsect1>
#include "nscd.h"
#ifdef WITH_TCB
#include "tcbfuncs.h"
-#endif
+#endif /* WITH_TCB */
/*
* Exit codes
*/
static void usage (void)
{
- fprintf (stderr, _("Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"),
- Prog);
+#ifdef WITH_TCB
+ if (getdef_bool ("USE_TCB")) {
+ fprintf (stderr, _("Usage: %s [-q] [-r] [-s] [passwd]\n"),
+ Prog);
+ } else
+#endif /* WITH_TCB */
+ {
+ fprintf (stderr,
+ _("Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"),
+ Prog);
+ }
exit (E_USAGE);
}
use_system_pw_file = false;
}
if ((optind + 2) == argc) {
+#ifdef WITH_TCB
+ if (getdef_bool ("USE_TCB")) {
+ fprintf (stderr,
+ _("%s: no alternative shadow file allowed when USE_TCB is enabled.\n"),
+ Prog);
+ usage ();
+ }
+#endif /* WITH_TCB */
spw_setdbname (argv[optind + 1]);
is_shadow = true;
use_system_spw_file = false;
bool use_tcb = false;
#ifdef WITH_TCB
use_tcb = getdef_bool ("USE_TCB");
-#endif
+#endif /* WITH_TCB */
/*
* Lock the files if we aren't in "read-only" mode
}
spw_opened = true;
}
-#endif
+#endif /* WITH_TCB */
spw = (struct spwd *) spw_locate (pwd->pw_name);
if (NULL == spw) {
printf (_("no matching password file entry in %s\n"),
spw_locked = false;
}
}
-#endif
+#endif /* WITH_TCB */
}
}