-diff -Nur shadow-4.0.3.orig/lib/getdef.c shadow-4.0.3/lib/getdef.c
---- shadow-4.0.3.orig/lib/getdef.c 2002-01-06 15:08:00.000000000 +0100
-+++ shadow-4.0.3/lib/getdef.c 2003-06-20 19:34:37.000000000 +0200
-@@ -113,6 +113,10 @@
- { "SYSLOG_SG_ENAB", NULL },
- { "SYSLOG_SU_ENAB", NULL },
- #endif
-+ { "SYS_GID_MAX", NULL },
-+ { "SYS_GID_MIN", NULL },
-+ { "SYS_UID_MAX", NULL },
-+ { "SYS_UID_MIN", NULL },
- { "TTYGROUP", NULL },
- { "TTYPERM", NULL },
- { "TTYTYPE_FILE", NULL },
-diff -Nur shadow-4.0.3.orig/man/groupadd.8 shadow-4.0.3/man/groupadd.8
---- shadow-4.0.3.orig/man/groupadd.8 2003-06-20 19:06:15.000000000 +0200
-+++ shadow-4.0.3/man/groupadd.8 2003-06-20 19:29:11.000000000 +0200
-@@ -29,7 +29,7 @@
- .SH NAME
- groupadd \- Create a new group
- .SH SYNOPSIS
--\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgroup\fR
-+\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] [\fB-r\fR] \fIgroup\fR
- .SH DESCRIPTION
- The \fBgroupadd\fR command
- creates a new group account using the values specified on the
-@@ -47,6 +47,9 @@
- This option causes to just exit with success status if the specified
- group already exists. With \fB-g\fR, if specified gid already exists,
- other (unique) gid is chosen (i.e. \fB-g\fR is turned off).
-+.IP "\fB-r\fR"
-+This flag is used to create a system group, with gid lower than usual
-+(chosen between SYS_GID_MIN and SYS_GID_MAX).
- .SH FILES
- /etc/group \- group account information
- .br
-diff -Nur shadow-4.0.3.orig/man/pl/groupadd.8 shadow-4.0.3/man/pl/groupadd.8
---- shadow-4.0.3.orig/man/pl/groupadd.8 2003-06-20 19:06:15.000000000 +0200
-+++ shadow-4.0.3/man/pl/groupadd.8 2003-06-20 19:40:17.000000000 +0200
-@@ -30,7 +30,7 @@
- .SH NAZWA
- groupadd - twórz now± grupê
- .SH SK£ADNIA
--\fBgroupadd\fR [\fB-g\fR \fIgid\fR [\fB-o\fR]] [\fB-f\fR] \fIgrupa\fR
-+\fBgroupadd\fR [\fB-g\fR \fIgid\fR [\fB-o\fR]] [\fB-f\fR] [\fB-r\fR] \fIgrupa\fR
- .SH OPIS
- Polecenie \fBgroupadd\fR tworzy nowe konto grupy pos³uguj±c siê
- warto¶ciami podanymi w wierszu poleceñ i domy¶lnymi warto¶ciami z systemu.
-@@ -48,6 +48,10 @@
- Ta opcja powoduje zakoñczenie programu ze statusem oznaczaj±cym sukces je¶li
- podana groupa ju¿ istnieje. Z opcj± \fB-g\fR, je¶li podany gid ju¿ istnieje,
- wybierany jest inny (unikalny) gid (czyli \fB-g\fR jest wy³±czane).
-+.TP
-+.BI -r
-+Ta opcja s³u¿y do zak³adania grup systemowych, z identyfikatorami ni¿szymi
-+ni¿ zwykle (wybieranymi z przedzia³u od SYS_GID_MIN do SYS_GID_MAX).
- .SH PLIKI
- .IR /etc/group " - informacja o kontach grup"
- .br
-diff -Nur shadow-4.0.3.orig/man/pl/useradd.8 shadow-4.0.3/man/pl/useradd.8
---- shadow-4.0.3.orig/man/pl/useradd.8 2003-06-20 19:06:15.000000000 +0200
-+++ shadow-4.0.3/man/pl/useradd.8 2003-06-20 19:41:22.000000000 +0200
-@@ -106,12 +106,9 @@
- .IP "\fB-p \fIpasswd\fR"
- Zakodowane has³o w postaci zwracanej przez \fBcrypt\fR(3).
- Domy¶lnym dzia³aniem jest blokowanie konta.
--.\" .IP \fB-r\fR
--.\" Tworzenie konta systemowego. Ta opcja pozwala na utworzenie konta o UID
--.\" ni¿szym ni¿ UID_MIN zdefiniowane w fI/etc/login.defs\fR. O ile nie poda siê
--.\" dodatkowo opcji \fB-m\fR nie jest tworzony katalog domowy dla tak tworzonego
--.\" u¿ytkownika niezale¿nie od tego czy tworzenie katalogu jest ustawione czy
--.\" nie w \fI/etc/login.defs\fR.
-+.IP \fB-r\fR
-+Tworzenie konta systemowego, z identyfikatorem ni¿szym ni¿ zwykle
-+(wybieranym z przedzia³u od SYS_UID_MIN do SYS_UID_MAX).
- .IP "\fB-s \fIpow³oka\fR"
- Nazwa pow³oki (shell) u¿ytkownika. Ustawienie tego pola na puste
- powoduje, ¿e system wybierze domy¶ln± pow³okê logowania.
-diff -Nur shadow-4.0.3.orig/man/useradd.8 shadow-4.0.3/man/useradd.8
---- shadow-4.0.3.orig/man/useradd.8 2002-03-08 05:39:12.000000000 +0100
-+++ shadow-4.0.3/man/useradd.8 2003-06-20 19:32:04.000000000 +0200
-@@ -38,7 +38,7 @@
- .br
- [\fB-m\fR [\fB-k\fR \fIskeleton_dir\fR]] [\fB-o\fR] [\fB-p\fR \fIpasswd\fR]
- .br
--[\fB-s\fR \fIshell\fR] [\fB-u\fR \fIuid\fR] \fIlogin\fR
-+[\fB-r\fR] [\fB-s\fR \fIshell\fR] [\fB-u\fR \fIuid\fR] \fIlogin\fR
- .TP 8
- \fBuseradd\fR \fB-D\fR [\fB-g\fI default_group\fR] [\fB-b\fI default_home\fR]
- .br
-@@ -100,6 +100,9 @@
- .IP "\fB-p \fIpasswd\fR"
- The encrypted password, as returned by \fBcrypt\fR(3).
- The default is to disable the account.
-+.IP "\fB-r\fR"
-+This flag is used to create a system account, with uid lower than
-+usual (chosen between SYS_UID_MIN and SYS_UID_MAX).
- .IP "\fB-s \fIshell\fR"
- The name of the user's login shell.
- The default is to leave this field blank, which causes the system
-diff -Nur shadow-4.0.3.orig/po/cs.po shadow-4.0.3/po/cs.po
---- shadow-4.0.3.orig/po/cs.po 2003-06-20 19:06:15.000000000 +0200
-+++ shadow-4.0.3/po/cs.po 2003-06-20 19:23:08.000000000 +0200
-@@ -865,8 +865,8 @@
- msgstr "%s: nelze aktualizovat soubory s DBM databázemi stínových hesel\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "Pou¾ití: groupadd [-g gid [-o]] [-f] skupina\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "Pou¾ití: groupadd [-g gid [-o]] [-f] [-r] skupina\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1982,8 +1982,8 @@
- msgstr "[-A program] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p heslo] jméno\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p heslo] [-r] jméno\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/de.po shadow-4.0.3/po/de.po
---- shadow-4.0.3.orig/po/de.po 2003-06-20 19:06:15.000000000 +0200
-+++ shadow-4.0.3/po/de.po 2003-06-20 19:23:24.000000000 +0200
-@@ -867,8 +867,8 @@
- msgstr "%s : DBM-Shadow-Dateien können nicht aktualisiert werden\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "Syntax: groupadd [-g gid [-o]] [-f] Gruppe\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "Syntax: groupadd [-g gid [-o]] [-f] [-r] Gruppe\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1988,8 +1988,8 @@
- msgstr "[-A Programm] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p Kennwort] Name\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p Kennwort] [-r] Name\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/el.po shadow-4.0.3/po/el.po
---- shadow-4.0.3.orig/po/el.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/el.po 2003-06-20 19:23:39.000000000 +0200
-@@ -872,8 +872,8 @@
- msgstr "%s: áäõíáìßá áíáíÝùóçò ôùí DBM áñ÷åßùí óêéùäþí óõíèçìáôéêþí\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "÷ñÞóç: groupadd [-g gid [-o]] [-f] ïìÜäá\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "÷ñÞóç: groupadd [-g gid [-o]] [-f] [-r] ïìÜäá\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -2009,8 +2009,8 @@
- msgstr "[-A ðñüãñáììá] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p óõíèçìáôéêü] üíïìá\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p óõíèçìáôéêü] [-r] üíïìá\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/fr.po shadow-4.0.3/po/fr.po
---- shadow-4.0.3.orig/po/fr.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/fr.po 2003-06-20 19:23:52.000000000 +0200
-@@ -869,8 +869,8 @@
- msgstr "%s : impossible de mettre à jours les fichiers DBM shadow\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "usage: groupadd [-g gid [-o]] [-f] groupe\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "usage: groupadd [-g gid [-o]] [-f] [-r] groupe\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1988,8 +1988,8 @@
- msgstr "[-A program] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p mot-de-passe] nom\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p mot-de-passe] [-r] nom\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/ja.po shadow-4.0.3/po/ja.po
---- shadow-4.0.3.orig/po/ja.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/ja.po 2003-06-20 19:24:06.000000000 +0200
-@@ -867,8 +867,8 @@
- msgstr "%s: DBM ¥·¥ã¥É¥¦¡¦¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤Ç¤¤Þ¤»¤ó\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "»ÈÍÑË¡: groupadd [-g ¥°¥ë¡¼¥×ID [-o]] [-f] ¥°¥ë¡¼¥×\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "»ÈÍÑË¡: groupadd [-g ¥°¥ë¡¼¥×ID [-o]] [-f] [-r] ¥°¥ë¡¼¥×\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1979,8 +1979,8 @@
- msgstr "[-A ¥×¥í¥°¥é¥à] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p ¥Ñ¥¹¥ï¡¼¥É] ¥æ¡¼¥¶Ì¾\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p ¥Ñ¥¹¥ï¡¼¥É] [-r] ¥æ¡¼¥¶Ì¾\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/ko.po shadow-4.0.3/po/ko.po
---- shadow-4.0.3.orig/po/ko.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/ko.po 2003-06-20 19:25:14.000000000 +0200
-@@ -862,8 +862,8 @@
- msgstr "%s: DBM ½¦µµ¿ì ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® ÇÒ ¼ö ¾ø½À´Ï´Ù\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "»ç¿ë¹ý: groupadd [-g gid(±×·ì ¾ÆÀ̵ð) [-o]] [-f] ±×·ì¸í\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "»ç¿ë¹ý: groupadd [-g gid(±×·ì ¾ÆÀ̵ð) [-o]] [-f] [-r] ±×·ì¸í\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1978,8 +1978,8 @@
- msgstr "[-A ÇÁ·Î±×·¥] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p Æнº¿öµå] À̸§\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p Æнº¿öµå] [-r] À̸§\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/pl.po shadow-4.0.3/po/pl.po
---- shadow-4.0.3.orig/po/pl.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/pl.po 2003-06-20 19:25:27.000000000 +0200
-@@ -865,8 +865,8 @@
- msgstr "%s: nie mogê zaktualizowaæ pliku DBM z ukrytymi has³ami\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "u¿ycie: groupadd [-g gid [-o]] [-f] grupa\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "u¿ycie: groupadd [-g gid [-o]] [-f] [-r] grupa\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1979,8 +1979,8 @@
- msgstr "[-A program] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p has³o] nazwa\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p has³o] [-r] nazwa\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/sv.po shadow-4.0.3/po/sv.po
---- shadow-4.0.3.orig/po/sv.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/sv.po 2003-06-20 19:26:10.000000000 +0200
-@@ -864,8 +864,8 @@
- msgstr "%s: kan inte uppdatera DBM-skuggfiler\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "Användning: groupadd [-g gid [-o]] [-f] grupp\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "Användning: groupadd [-g gid [-o]] [-f] [-r] grupp\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1977,8 +1977,8 @@
- msgstr "[-A program] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p passwd] namn\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p passwd] [-r] namn\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/po/uk.po shadow-4.0.3/po/uk.po
---- shadow-4.0.3.orig/po/uk.po 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/po/uk.po 2003-06-20 19:26:33.000000000 +0200
-@@ -868,8 +868,8 @@
- msgstr "%s: ÎÅ ÍÏÖÕ ÏÎÏ×ÉÔÉ DBM ÆÁÊÌ Ú ÐÒÉÈÏ×ÁÎÉÍÉ ÐÁÒÏÌÑÍÉ\n"
-
- #: src/groupadd.c:101
--msgid "usage: groupadd [-g gid [-o]] [-f] group\n"
--msgstr "×ÉËÏÒÉÓÔÏ×ÕÊÔÅ: groupadd [-g gid [-o]] [-f] ÇÒÕÐÁ\n"
-+msgid "usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
-+msgstr "×ÉËÏÒÉÓÔÏ×ÕÊÔÅ: groupadd [-g gid [-o]] [-f] [-r] ÇÒÕÐÁ\n"
-
- #: src/groupadd.c:167 src/groupadd.c:192 src/groupmod.c:179 src/groupmod.c:228
- #: src/useradd.c:970 src/usermod.c:552 src/usermod.c:695
-@@ -1984,8 +1984,8 @@
- msgstr "[-A ÐÒÏÇÒÁÍÁ] "
-
- #: src/useradd.c:750
--msgid "[-p passwd] name\n"
--msgstr "[-p ÐÁÒÏÌØ] ¦Í'Ñ\n"
-+msgid "[-p passwd] [-r] name\n"
-+msgstr "[-p ÐÁÒÏÌØ] [-r] ¦Í'Ñ\n"
-
- #: src/useradd.c:753
- #, c-format
-diff -Nur shadow-4.0.3.orig/src/groupadd.c shadow-4.0.3/src/groupadd.c
---- shadow-4.0.3.orig/src/groupadd.c 2003-06-20 19:06:16.000000000 +0200
-+++ shadow-4.0.3/src/groupadd.c 2003-06-20 19:21:43.000000000 +0200
-@@ -71,6 +71,7 @@
- static int oflg = 0; /* permit non-unique group ID to be specified with -g */
- static int gflg = 0; /* ID value for the new group */
- static int fflg = 0; /* if group already exists, do nothing and exit(0) */
-+static int rflg = 0; /* add system group (with lower gid) */
-
- #ifdef NDBM
- extern int gr_dbm_mode;
-@@ -98,7 +99,7 @@
-
- static void usage (void)
- {
-- fprintf (stderr, _("usage: groupadd [-g gid [-o]] [-f] group\n"));
-+ fprintf (stderr, _("usage: groupadd [-g gid [-o]] [-f] [-r] group\n"));
- exit (E_USAGE);
- }
-
-@@ -224,8 +225,13 @@
- const struct group *grp;
- gid_t gid_min, gid_max;
-
-- gid_min = getdef_unum ("GID_MIN", 100);
-- gid_max = getdef_unum ("GID_MAX", 60000);
-+ if (!rflg) {
-+ gid_min = getdef_unum ("GID_MIN", 500);
-+ gid_max = getdef_unum ("GID_MAX", 60000);
-+ } else {
-+ gid_min = getdef_unum ("SYS_GID_MIN", 10);
-+ gid_max = getdef_unum ("SYS_GID_MAX", 499);
-+ }
-
- /*
- * Start with some GID value if the user didn't provide us with
-@@ -333,7 +339,7 @@
- char *cp;
- int arg;
-
-- while ((arg = getopt (argc, argv, "og:O:f")) != EOF) {
-+ while ((arg = getopt (argc, argv, "og:O:fr")) != EOF) {
- switch (arg) {
- case 'g':
- gflg++;
-@@ -379,6 +385,12 @@
- */
- fflg++;
- break;
-+ case 'r':
-+ /*
-+ * create system group
-+ */
-+ rflg++;
-+ break;
- default:
- usage ();
- }
-diff -Nur shadow-4.0.3.orig/src/useradd.c shadow-4.0.3/src/useradd.c
---- shadow-4.0.3.orig/src/useradd.c 2002-01-10 14:01:28.000000000 +0100
-+++ shadow-4.0.3/src/useradd.c 2003-06-20 19:19:40.000000000 +0200
-@@ -71,10 +71,10 @@
+--- shadow-4.0.16/lib/getdef.c~ 2006-06-08 00:19:27.452506888 +0300
++++ shadow-4.0.16/lib/getdef.c 2006-06-08 00:21:20.945057953 +0300
+@@ -59,6 +59,8 @@
+ {"FAKE_SHELL", NULL},
+ {"GID_MAX", NULL},
+ {"GID_MIN", NULL},
++ {"SYS_GID_MAX", NULL},
++ {"SYS_GID_MIN", NULL},
+ {"HUSHLOGIN_FILE", NULL},
+ {"KILLCHAR", NULL},
+ {"LOGIN_RETRIES", NULL},
+@@ -77,6 +79,8 @@
+ {"TTYTYPE_FILE", NULL},
+ {"UID_MAX", NULL},
+ {"UID_MIN", NULL},
++ {"SYS_UID_MAX", NULL},
++ {"SYS_UID_MIN", NULL},
+ {"UMASK", NULL},
+ {"USERDEL_CMD", NULL},
+ {"USERGROUPS_ENAB", NULL},
+--- shadow-4.0.6/src/useradd.c 2004-11-18 21:45:00.713398344 +0100
++++ shadow-4.0.16/src/useradd.c 2006-06-08 01:17:05.580340031 +0300
+@@ -72,10 +72,10 @@
/*
* These defaults are used if there is no defaults file.
*/
+static const char *def_home = "/home/users";
+static const char *def_shell = "/dev/null";
static const char *def_template = SKEL_DIR;
+ static const char *def_create_mail_spool = "no";
- #ifdef SHADOWPWD
-@@ -87,7 +87,7 @@
+@@ -89,7 +89,7 @@
#define VALID(s) (strcspn (s, ":\n") == strlen (s))
static const char *user_name = "";
static uid_t user_id;
static gid_t user_gid;
static const char *user_comment = "";
-@@ -120,6 +120,7 @@
- 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 */
-+ rflg = 0, /* create system account (with lower uid) */
- sflg = 0, /* shell program for new account */
- uflg = 0; /* specify user ID for new account */
-
-@@ -747,7 +748,7 @@
- #ifdef AUTH_METHODS
- fprintf (stderr, _("[-A program] "));
- #endif
-- fprintf (stderr, _("[-p passwd] name\n"));
-+ fprintf (stderr, _("[-p passwd] [-r] name\n"));
-
- fprintf (stderr,
- _(" %s\t-D [-g group] [-b base] [-s shell]\n"),
-@@ -1006,8 +1007,13 @@
- const struct passwd *pwd;
- uid_t uid_min, uid_max;
-
-- uid_min = getdef_unum ("UID_MIN", 100);
-- uid_max = getdef_unum ("UID_MAX", 60000);
+@@ -126,6 +126,7 @@
+ 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 */
++ rflg = 0, /* create system account (wuth lower uid) */
+ sflg = 0, /* shell program for new account */
+ uflg = 0; /* specify user ID for new account */
+
+@@ -632,6 +633,7 @@
+ " (non-unique) UID\n"
+ " -p, --password PASSWORD use encrypted password for the new user\n"
+ " account\n"
++ " -r create a system account, with uid lower than usual\n"
+ " -s, --shell SHELL the login shell for the new user account\n"
+ " -u, --uid UID force use the UID for the new user account\n"));
+ exit (E_USAGE);
+@@ -833,6 +835,13 @@
+
+ uid_min = getdef_unum ("UID_MIN", 1000);
+ uid_max = getdef_unum ("UID_MAX", 60000);
+ if (!rflg) {
-+ uid_min = getdef_unum ("UID_MIN", 500);
-+ uid_max = getdef_unum ("UID_MAX", 60000);
++ uid_min = getdef_unum ("UID_MIN", 500);
++ uid_max = getdef_unum ("UID_MAX", 60000);
+ } else {
-+ uid_min = getdef_unum ("SYS_UID_MIN", 1);
-+ uid_max = getdef_unum ("SYS_UID_MAX", 499);
-+ }
++ uid_min = getdef_unum ("SYS_UID_MIN", 1);
++ uid_max = getdef_unum ("SYS_UID_MAX", 499);
++ }
/*
* Start with some UID value if the user didn't provide us with
-@@ -1160,9 +1166,9 @@
- char *cp;
-
- #ifdef SHADOWPWD
--#define FLAGS "A:Du:og:G:d:s:c:mk:p:f:e:b:O:M"
-+#define FLAGS "A:Du:og:G:d:s:c:mk:p:f:e:b:O:Mr"
- #else
--#define FLAGS "A:Du:og:G:d:s:c:mk:p:b:O:M"
-+#define FLAGS "A:Du:og:G:d:s:c:mk:p:b:O:Mr"
- #endif
- while ((arg = getopt (argc, argv, FLAGS)) != EOF) {
- #undef FLAGS
-@@ -1328,6 +1334,9 @@
+@@ -1016,7 +1025,7 @@
+ {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:mMop:s:u:r",
+ long_options, NULL)) != -1) {
+ switch (c) {
+ case 'b':
+@@ -1169,6 +1178,9 @@
+ }
+ user_pass = optarg;
+ break;
++ case 'r': /* create system account */
++ rflg++;
++ break;
+ case 's':
+ if (!VALID (optarg)
+ || (optarg[0]
+--- shadow-4.0.16/src/groupadd.c~ 2006-06-09 21:23:35.786172809 +0300
++++ shadow-4.0.16/src/groupadd.c 2006-06-09 21:26:14.039716861 +0300
+@@ -72,6 +72,7 @@
+ static int oflg = 0; /* permit non-unique group ID to be specified with -g */
+ static int gflg = 0; /* ID value for the new group */
+ static int fflg = 0; /* if group already exists, do nothing and exit(0) */
++static int rflg = 0; /* add system group (with lower gid) */
+
+ #ifdef NDBM
+ extern int gr_dbm_mode;
+@@ -104,6 +104,7 @@
+ " -h, --help display this help message and exit\n"
+ " -K, --key KEY=VALUE overrides /etc/login.defs defaults\n"
+ " -o, --non-unique allow create group with duplicate\n"
++ " -r create a system account, with gid lower than usual\n"
+ " (non-unique) GID\n"));
+ exit (E_USAGE);
+ }
+@@ -197,8 +198,13 @@
+ const struct group *grp;
+ gid_t gid_min, gid_max;
+
+- gid_min = getdef_unum ("GID_MIN", 1000);
+- gid_max = getdef_unum ("GID_MAX", 60000);
++ if (!rflg) {
++ gid_min = getdef_unum ("GID_MIN", 500);
++ gid_max = getdef_unum ("GID_MAX", 60000);
++ } else {
++ gid_min = getdef_unum ("SYS_GID_MIN", 10);
++ gid_max = getdef_unum ("SYS_GID_MAX", 499);
++ }
+
+ /*
+ * Start with some GID value if the user didn't provide us with
+@@ -412,7 +418,7 @@
+ };
+
+ while ((c =
+- getopt_long (argc, argv, "fg:hK:o", long_options,
++ getopt_long (argc, argv, "fg:hK:or", long_options,
+ &option_index)) != -1) {
+ switch (c) {
+ case 'f':
+@@ -463,6 +469,10 @@
+ case 'o':
+ oflg++;
+ break;
++ case 'r':
++ /* create system group */
++ rflg++;
++ break;
+ default:
+ usage ();
}
- user_pass = optarg;
- break;
-+ case 'r': /* create system account */
-+ rflg++;
-+ break;
- case 's':
- if (!VALID (optarg) || (optarg[0] &&
- (optarg[0] != '/'
+--- shadow-4.0.16/man/groupadd.8.xml~ 2006-06-08 01:07:41.447664461 +0300
++++ shadow-4.0.16/man/groupadd.8.xml 2006-06-08 01:07:45.947765703 +0300
+@@ -20,6 +20,7 @@
+ </arg>
+ <arg choice='opt'>-f </arg>
+ <arg choice='opt'>-K <replaceable>KEY</replaceable>=<replaceable>VALUE</replaceable></arg>
++ <arg choice='opt'>-r </arg>
+ <arg choice='plain'>
+ <replaceable>group</replaceable>
+ </arg>
+@@ -54,6 +55,16 @@
+ </para>
+ </listitem>
+ </varlistentry>
++ <varlistentry>
++ <term>
++ <option>-r</option>
++ </term>
++ <listitem>
++ <para>This flag is used to create a system group, with gid lower than usual
++ (chosen between SYS_GID_MIN and SYS_GID_MAX).
++ </para>
++ </listitem>
++ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>GID</replaceable>
+--- shadow-4.0.16/man/pl/groupadd.8~ 2006-06-09 21:27:27.071352380 +0300
++++ shadow-4.0.16/man/pl/groupadd.8 2006-06-09 21:29:35.034218035 +0300
+@@ -29,7 +29,7 @@
+ .SH NAZWA
+ groupadd \- twórz nową grupę
+ .SH SKŁADNIA
+-\fBgroupadd\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-f\fR] \fIgrupa\fR
++\fBgroupadd\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-f\fR] [\fB-r\fR] \fIgrupa\fR
+ .SH OPIS
+ Polecenie \fBgroupadd\fR tworzy nowe konto grupy posługując się
+ wartościami podanymi w wierszu poleceń i domyślnymi wartościami z systemu.
+@@ -42,6 +42,10 @@
+ podana groupa już istnieje. Z opcją \fB\-g\fR, jeśli podany gid już istnieje,
+ wybierany jest inny (unikalny) gid (czyli \fB\-g\fR jest wyłączane).
+ .TP
++.BI -r
++Ta opcja s¿u¿y do zak¿adania grup systemowych, z identyfikatorami ni¿szymi
++ni¿ zwykle (wybieranymi z przedzia¿u od SYS_GID_MIN do SYS_GID_MAX).
++.TP
+ .BI \-g " gid"
+ Numeryczna wartość identyfikatora grupy. Wartość ta musi być niepowtarzalna,
+ chyba że użyto opcji \fB\-o\fR. Wartość ID grupy nie może być ujemna. Domyślnie
+--- shadow-4.0.16/man/pl/useradd.8~ 2006-06-09 22:52:54.696249131 +0300
++++ shadow-4.0.16/man/pl/useradd.8 2006-06-09 23:00:57.427074349 +0300
+@@ -98,6 +98,9 @@
+ .IP "\fB\-p\fR \fIpasswd\fR"
+ Zakodowane hasło w postaci zwracanej przez \fBcrypt\fR(3).
+ Domyślnym działaniem jest blokowanie konta.
++.IP \fB-r\fR
++Tworzenie konta systemowego, z identyfikatorem ni¿szym ni¿ zwykle
++(wybieranym z przedzia¿u od SYS_UID_MIN do SYS_UID_MAX).
+ .IP "\fB\-s\fR \fIpowłoka\fR"
+ Nazwa powłoki (shell) użytkownika. Ustawienie tego pola na puste
+ powoduje, że system wybierze domyślną powłokę logowania.
+--- shadow-4.0.16/man/useradd.8~ 2006-06-09 23:05:41.393444193 +0300
++++ shadow-4.0.16/man/useradd.8 2006-06-09 23:05:43.273486388 +0300
+@@ -118,6 +118,9 @@
+ The encrypted password, as returned by
+ \fBcrypt\fR(3). The default is to disable the account.
+ .TP 3n
++\fB-r\fR
++The number of days after a password has expired before the account will be disabled.
++.TP 3n
+ \fB\-s\fR, \fB\-\-shell\fR \fISHELL\fR
+ The name of the user's login shell. The default is to leave this field blank, which causes the system to select the default login shell.
+ .TP 3n
+--- shadow-4.0.7/po/ca.po.orig 2005-02-06 20:53:02.764551000 +0100
++++ shadow-4.0.7/po/ca.po 2005-02-06 21:16:22.244798552 +0100
+@@ -764,8 +764,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Forma d'ús: groupadd [-g gid [-o]] [-f] grup\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Forma d'ús: groupadd [-g gid [-o]] [-f] [-r] grup\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1714,8 +1714,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p contrasenya] nom\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p contrasenya] [-r] nom\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/cs.po 2004-11-18 15:47:10.872310304 +0100
++++ shadow-4.0.6/po/cs.po 2004-11-18 21:45:00.699400472 +0100
+@@ -793,8 +793,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Použití: groupadd [-g gid [-o]] [-f] skupina\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Použití: groupadd [-g gid [-o]] [-f] [-r] skupina\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1804,8 +1804,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p heslo] jméno\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p heslo] [-r] jméno\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/da.po.orig 2005-02-06 20:53:02.782549000 +0100
++++ shadow-4.0.7/po/da.po 2005-02-06 21:17:02.084741960 +0100
+@@ -777,8 +777,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Brug: groupadd [-g gid [-o]] [-f] gruppe\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Brug: groupadd [-g gid [-o]] [-f] [-r] gruppe\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1730,8 +1730,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p adgangskode] navn\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p adgangskode] [-r] navn\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/de.po 2004-11-18 15:47:10.873310152 +0100
++++ shadow-4.0.6/po/de.po 2004-11-18 21:45:00.700400320 +0100
+@@ -792,8 +792,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Syntax: groupadd [-g gid [-o]] [-f] Gruppe\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Syntax: groupadd [-g gid [-o]] [-f] [-r] Gruppe\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1802,8 +1802,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p Kennwort] Name\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p Kennwort] [-r] Name\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/el.po 2004-11-18 15:47:10.874310000 +0100
++++ shadow-4.0.6/po/el.po 2004-11-18 21:45:00.702400016 +0100
+@@ -800,8 +800,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Χρήση: groupadd [-g gid [-o]] [-f] ομάδα\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Χρήση: groupadd [-g gid [-o]] [-f] [-r] ομάδα\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1823,8 +1823,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p συνθηματικό] όνομα\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p συνθηματικό] [-r] όνομα\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/es.po.orig 2005-02-06 20:53:02.810544000 +0100
++++ shadow-4.0.7/po/es.po 2005-02-06 21:17:29.589560592 +0100
+@@ -785,8 +785,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Modo de uso: groupadd [-g gid [-o]] [-f] grupo\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Modo de uso: groupadd [-g gid [-o]] [-f] [-r] grupo\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1747,8 +1747,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p contraseña] nombre\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p contraseña] [-r] nombre\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/eu.po.orig 2005-02-06 20:53:02.818543000 +0100
++++ shadow-4.0.7/po/eu.po 2005-02-06 21:17:44.920229976 +0100
+@@ -760,8 +760,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Erabilera: groupadd [-g gid [-o]] [-f] taldea\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Erabilera: groupadd [-g gid [-o]] [-f] [-r] taldea\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1708,8 +1708,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p pasahitz] izena\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p pasahitz] [-r] izena\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/fi.po.orig 2005-02-06 20:53:02.828542000 +0100
++++ shadow-4.0.7/po/fi.po 2005-02-06 21:18:04.821204568 +0100
+@@ -779,8 +779,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Käyttö: groupadd [-g gid [-o]] [-f] ryhmä\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Käyttö: groupadd [-g gid [-o]] [-f] [-r] ryhmä\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1732,8 +1732,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p salansana] nimi\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p salansana] [-r] nimi\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/fr.po 2004-11-18 15:47:10.877309544 +0100
++++ shadow-4.0.6/po/fr.po 2004-11-18 21:45:00.703399864 +0100
+@@ -795,8 +795,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Usage: groupadd [-g gid [-o]] [-f] groupe\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Usage: groupadd [-g gid [-o]] [-f] [-r] groupe\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1804,8 +1804,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p mot-de-passe] nom\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p mot-de-passe] [-r] nom\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/id.po.orig 2005-02-06 20:53:02.954523000 +0100
++++ shadow-4.0.7/po/id.po 2005-02-06 21:18:31.035219432 +0100
+@@ -757,8 +757,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Penggunaan: groupadd [-g gid [-o]] [-f] grup\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Penggunaan: groupadd [-g gid [-o]] [-f] [-r] grup\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1704,8 +1704,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p kata_sandi] nama\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p kata_sandi] [-r] nama\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/it.po.orig 2005-02-06 20:53:02.963521000 +0100
++++ shadow-4.0.7/po/it.po 2005-02-06 21:18:46.662843672 +0100
+@@ -813,8 +813,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Uso: groupadd [-g GID [-o]] [-f] GRUPPO\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Uso: groupadd [-g GID [-o]] [-f] [-r] GRUPPO\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1775,8 +1775,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p PASSWORD] NOME\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p PASSWORD] [-r] NOME\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/ja.po 2004-11-18 15:47:10.879309240 +0100
++++ shadow-4.0.6/po/ja.po 2004-11-18 21:45:00.704399712 +0100
+@@ -794,8 +794,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "使用法: groupadd [-g グループID [-o]] [-f] グループ\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "使用法: groupadd [-g グループID [-o]] [-f] [-r] グループ\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1793,8 +1793,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p パスワード] ユーザ名\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p パスワード] [-r] ユーザ名\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/ko.po 2004-11-18 15:47:10.880309088 +0100
++++ shadow-4.0.6/po/ko.po 2004-11-18 21:45:00.706399408 +0100
+@@ -792,8 +792,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "사용법: groupadd [-g GID [-o]] [-f] 그룹명\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "사용법: groupadd [-g GID [-o]] [-f] [-r] 그룹명\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1800,8 +1800,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p 열쇠글] 이름\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p 열쇠글] [-r] 이름\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/nb.po.orig 2005-02-06 20:53:02.989517000 +0100
++++ shadow-4.0.7/po/nb.po 2005-02-06 21:19:10.761180168 +0100
+@@ -765,8 +765,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Bruk: groupadd [-g gid [-o]] [-f] gruppe\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Bruk: groupadd [-g gid [-o]] [-f] [-r] gruppe\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1710,8 +1710,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p passord] navn\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passord] [-r] navn\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/nl.po.orig 2005-02-06 20:53:02.998516000 +0100
++++ shadow-4.0.7/po/nl.po 2005-02-06 21:19:23.540237456 +0100
+@@ -784,8 +784,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Gebruik: groupadd [-g gid [-o]] [-f] groep\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Gebruik: groupadd [-g gid [-o]] [-f] [-r] groep\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1739,8 +1739,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p wachtwoord] naam\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p wachtwoord] [-r] naam\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/nn.po.orig 2005-02-06 20:53:03.008514000 +0100
++++ shadow-4.0.7/po/nn.po 2005-02-06 21:19:36.046336240 +0100
+@@ -757,8 +757,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Bruk: groupadd [-g gid [-o]] [-f] gruppe\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Bruk: groupadd [-g gid [-o]] [-f] [-r] gruppe\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1704,8 +1704,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p passord] namn\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passord] [-r] namn\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/pl.po 2004-11-18 15:47:10.882308784 +0100
++++ shadow-4.0.6/po/pl.po 2004-11-18 21:45:00.707399256 +0100
+@@ -795,8 +795,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Użycie: groupadd [-g gid [-o]] [-f] grupa\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Użycie: groupadd [-g gid [-o]] [-f] [-r] grupa\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1805,8 +1805,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p hasło] nazwa\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p hasło] [-r] nazwa\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/pt.po.orig 2005-02-06 20:53:03.025512000 +0100
++++ shadow-4.0.7/po/pt.po 2005-02-06 21:20:01.224508576 +0100
+@@ -782,8 +782,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Utilização: groupadd [-g gid [-o]] [-f] grupo\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Utilização: groupadd [-g gid [-o]] [-f] [-r] grupo\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1740,8 +1740,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p passwd] nome\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passwd] [-r] nome\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/pt_BR.po.orig 2005-02-06 20:53:03.035510000 +0100
++++ shadow-4.0.7/po/pt_BR.po 2005-02-06 21:20:14.226531968 +0100
+@@ -763,8 +763,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Uso : groupadd [-g gid [-o]] [-f] grupo\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Uso : groupadd [-g gid [-o]] [-f] [-r] grupo\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1711,8 +1711,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p passwd] nome\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passwd] [-r] nome\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/ro.po.orig 2005-02-06 20:53:03.144494000 +0100
++++ shadow-4.0.7/po/ro.po 2005-02-06 21:21:15.902155848 +0100
+@@ -768,9 +768,9 @@
+ msgstr "%s: nu pot actualiza fişierele criptate DBM\n"
+
+ #: src/groupadd.c:102
+-#, fuzzy, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "utilizare: groupadd [-g id_grup [-o]] grup\n"
++#, c-format
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Utilizare: groupadd [-g id_grup [-o]] [-f] [-r] grup\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1721,9 +1721,9 @@
+ msgstr "\t\t[-f inactivă] [-e expiră ]\n"
+
+ #: src/useradd.c:728
+-#, fuzzy, c-format
+-msgid " [-p passwd] name\n"
+-msgstr "[-p passwd] nume\n"
++#, c-format
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passwd] [-r] nume\n"
+
+ #: src/useradd.c:730
+ #, fuzzy, c-format
+--- shadow-4.0.6.orig/po/ru.po 2004-11-18 15:47:10.883308632 +0100
++++ shadow-4.0.6/po/ru.po 2004-11-18 21:45:00.708399104 +0100
+@@ -786,8 +786,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Запуск: groupadd [-g gid [-o]] [-f] группа\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Запуск: groupadd [-g gid [-o]] [-f] [-r] группа\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1792,8 +1792,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p пароль] имя\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p пароль] [-r] имя\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/sk.po.orig 2005-02-06 20:53:03.163491000 +0100
++++ shadow-4.0.7/po/sk.po 2005-02-06 21:21:37.557863680 +0100
+@@ -760,8 +760,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Použitie: groupadd [-g gid [-o]] [-f] skupina\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Použitie: groupadd [-g gid [-o]] [-f] [-r] skupina\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1712,8 +1712,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p heslo] meno\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p heslo] [-r] meno\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/sv.po 2004-11-18 15:47:10.884308480 +0100
++++ shadow-4.0.6/po/sv.po 2004-11-18 21:45:00.710398800 +0100
+@@ -790,8 +790,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Användning: groupadd [-g gid [-o]] [-f] grupp\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Användning: groupadd [-g gid [-o]] [-f] [-r] grupp\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1795,8 +1795,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p passwd] namn\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p passwd] [-r] namn\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/tr.po.orig 2005-02-06 20:53:03.189487000 +0100
++++ shadow-4.0.7/po/tr.po 2005-02-06 21:21:59.907466024 +0100
+@@ -760,8 +760,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Kullanım: groupadd [-g gid [-o]] [-f] grup\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Kullanım: groupadd [-g gid [-o]] [-f] [-r] grup\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1707,8 +1707,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p parola] isim\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p parola] [-r] isim\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.6.orig/po/uk.po 2004-11-18 15:47:10.886308176 +0100
++++ shadow-4.0.6/po/uk.po 2004-11-18 21:45:00.711398648 +0100
+@@ -795,8 +795,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "Використовуйте: groupadd [-g gid [-o]] [-f] група\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "Використовуйте: groupadd [-g gid [-o]] [-f] [-r] група\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1805,8 +1805,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p пароль] ім'я\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p пароль] [-r] ім'я\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/zh_CN.po.orig 2005-02-06 20:53:03.206484000 +0100
++++ shadow-4.0.7/po/zh_CN.po 2005-02-06 21:22:32.575499728 +0100
+@@ -755,8 +755,8 @@
+
+ #: src/groupadd.c:102
+ #, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "用法:groupadd [-g gid [-o]] [-f] 组\n"
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "用法:groupadd [-g gid [-o]] [-f] [-r] 组\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1700,8 +1700,8 @@
+
+ #: src/useradd.c:728
+ #, c-format
+-msgid " [-p passwd] name\n"
+-msgstr " [-p 密码] 名称\n"
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p 密码] [-r] 名称\n"
+
+ #: src/useradd.c:730
+ #, c-format
+--- shadow-4.0.7/po/zh_TW.po.orig 2005-02-06 20:53:03.214483000 +0100
++++ shadow-4.0.7/po/zh_TW.po 2005-02-06 21:23:09.122943672 +0100
+@@ -764,9 +764,9 @@
+ msgstr "%s:無法更新 DBM shadow檔案\n"
+
+ #: src/groupadd.c:102
+-#, fuzzy, c-format
+-msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+-msgstr "用法:groupadd [-g gid [-o]] 群組\n"
++#, c-format
++msgid "Usage: groupadd [-g gid [-o]] [-f] [-r] group\n"
++msgstr "用法:groupadd [-g gid [-o]] [-f] [-r] 群組\n"
+
+ #: src/groupadd.c:168 src/groupadd.c:193 src/groupmod.c:180 src/groupmod.c:229
+ #: src/useradd.c:937 src/usermod.c:533 src/usermod.c:676
+@@ -1715,9 +1715,9 @@
+ msgstr "\t\t[-f 無效日] [-e 過期日 ]\n"
+
+ #: src/useradd.c:728
+-#, fuzzy, c-format
+-msgid " [-p passwd] name\n"
+-msgstr "[-p 密碼] 名稱\n"
++#, c-format
++msgid " [-p passwd] [-r] name\n"
++msgstr " [-p 密碼] [-r] 名稱\n"
+
+ #: src/useradd.c:730
+ #, fuzzy, c-format