]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
[svn-upgrade] Integrating new upstream version, shadow (4.0.8)
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 7 Oct 2007 11:46:07 +0000 (11:46 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 7 Oct 2007 11:46:07 +0000 (11:46 +0000)
414 files changed:
ChangeLog
Makefile.in
NEWS
TODO
aclocal.m4
config.guess
config.h.in
config.sub
configure
configure.in
contrib/Makefile.in
doc/INSTALL [deleted file]
doc/Makefile.am
doc/Makefile.in
doc/README.mirrors [deleted file]
doc/README.sun4 [deleted file]
etc/Makefile.in
etc/login.defs
etc/login.defs.linux
etc/pam.d/Makefile.in
install-sh
lib/.indent.pro
lib/Makefile.am
lib/Makefile.in
lib/commonio.c
lib/commonio.h
lib/defines.h
lib/encrypt.c
lib/faillog.h
lib/fputsx.c
lib/getdef.c
lib/getdef.h
lib/getpass.c
lib/grdbm.c [deleted file]
lib/groupio.c
lib/groupio.h
lib/grpack.c
lib/gsdbm.c [deleted file]
lib/gshadow.c
lib/gshadow_.h
lib/gspack.c
lib/lockpw.c
lib/port.c
lib/port.h
lib/prototypes.h
lib/pwauth.c
lib/pwauth.h
lib/pwdbm.c [deleted file]
lib/pwio.c
lib/pwio.h
lib/pwpack.c
lib/rad64.c [deleted file]
lib/rcsid.h
lib/sgetgrent.c
lib/sgetpwent.c
lib/sgroupio.c
lib/sgroupio.h
lib/shadow.c
lib/shadowio.c
lib/shadowio.h
lib/spdbm.c [deleted file]
lib/sppack.c
lib/utent.c
libmisc/Makefile.am
libmisc/Makefile.in
libmisc/addgrps.c
libmisc/age.c
libmisc/chkname.h
libmisc/chowndir.c
libmisc/chowntty.c
libmisc/copydir.c
libmisc/env.c
libmisc/failure.c
libmisc/failure.h
libmisc/getdate.c
libmisc/getdate.h
libmisc/hushed.c
libmisc/isexpired.c
libmisc/limits.c
libmisc/log.c
libmisc/login_desrpc.c [deleted file]
libmisc/login_krb.c [deleted file]
libmisc/loginprompt.c
libmisc/motd.c
libmisc/obscure.c
libmisc/pam_pass.c
libmisc/pwdcheck.c
libmisc/rlogin.c
libmisc/salt.c
libmisc/setugid.c
libmisc/setupenv.c
libmisc/shell.c
libmisc/strtoday.c
libmisc/sulog.c
libmisc/ttytype.c
libmisc/utmp.c
libmisc/xmalloc.c
ltmain.sh
man/Makefile.am
man/Makefile.in
man/chage.1
man/chfn.1
man/chpasswd.8
man/chsh.1
man/cs/Makefile.am
man/cs/Makefile.in
man/cs/groups.1 [new file with mode: 0644]
man/cs/id.1
man/cs/lastlog.8 [new file with mode: 0644]
man/cs/passwd.5
man/cs/shadow.5
man/cs/su.1 [new file with mode: 0644]
man/de/Makefile.am
man/de/Makefile.in
man/de/chfn.1
man/de/chsh.1
man/de/login.1
man/de/passwd.1
man/de/passwd.5 [new file with mode: 0644]
man/de/vipw.8
man/es/Makefile.in
man/es/login.1
man/es/passwd.1
man/es/su.1
man/expiry.1
man/faillog.5
man/faillog.8
man/fr/Makefile.in
man/fr/chage.1
man/fr/chpasswd.8
man/fr/chsh.1
man/fr/faillog.5
man/fr/gpasswd.1
man/fr/groups.1
man/fr/passwd.1
man/fr/passwd.5
man/fr/shadow.5
man/fr/useradd.8
man/fr/userdel.8
man/fr/usermod.8
man/gpasswd.1
man/groupadd.8
man/groupdel.8
man/groupmod.8
man/groups.1
man/grpck.8
man/gshadow.5 [new file with mode: 0644]
man/hu/Makefile.in
man/hu/chsh.1
man/hu/gpasswd.1
man/hu/groups.1
man/hu/login.1
man/hu/newgrp.1
man/hu/passwd.1
man/hu/su.1
man/id.1
man/id/Makefile.in
man/id/chsh.1
man/id/login.1
man/id/useradd.8
man/it/Makefile.am
man/it/Makefile.in
man/it/chfn.1 [deleted file]
man/it/chsh.1 [deleted file]
man/it/gpasswd.1 [deleted file]
man/it/groupadd.8 [deleted file]
man/it/groupdel.8 [deleted file]
man/it/groupmod.8 [deleted file]
man/it/groups.1 [deleted file]
man/it/grpck.8 [deleted file]
man/it/grpconv.8 [deleted file]
man/it/grpunconv.8 [deleted file]
man/it/lastlog.8 [deleted file]
man/it/login.1 [deleted file]
man/it/newgrp.1 [deleted file]
man/it/passwd.1 [deleted file]
man/it/passwd.5 [deleted file]
man/it/pwconv.8 [deleted file]
man/it/pwunconv.8 [deleted file]
man/it/shadow.5 [deleted file]
man/it/useradd.8 [deleted file]
man/it/userdel.8 [deleted file]
man/it/usermod.8 [deleted file]
man/it/vigr.8 [deleted file]
man/it/vipw.8 [deleted file]
man/ja/Makefile.in
man/ja/chage.1
man/ja/chfn.1
man/ja/chpasswd.8
man/ja/chsh.1
man/ja/expiry.1
man/ja/faillog.8
man/ja/gpasswd.1
man/ja/groupadd.8
man/ja/groupmod.8
man/ja/groups.1
man/ja/grpck.8
man/ja/id.1
man/ja/lastlog.8
man/ja/limits.5
man/ja/login.1
man/ja/login.access.5
man/ja/login.defs.5
man/ja/mkpasswd.8
man/ja/newgrp.1
man/ja/passwd.1
man/ja/porttime.5
man/ja/pw_auth.3
man/ja/pwck.8
man/ja/shadow.3
man/ja/su.1
man/ja/suauth.5
man/ja/sulogin.8
man/ja/useradd.8
man/ja/userdel.8
man/ja/usermod.8
man/ja/vipw.8
man/ko/Makefile.in
man/ko/chfn.1
man/ko/chsh.1
man/ko/groups.1
man/ko/login.1
man/ko/passwd.5
man/lastlog.8
man/limits.5
man/login.1
man/login.access.5
man/login.defs.5
man/logoutd.8
man/mkpasswd.8
man/newgrp.1
man/newusers.8
man/passwd.1
man/passwd.5
man/pl/Makefile.in
man/pl/chage.1
man/pl/chfn.1
man/pl/chpasswd.8
man/pl/chsh.1
man/pl/expiry.1
man/pl/faillog.5
man/pl/faillog.8
man/pl/gpasswd.1
man/pl/groupadd.8
man/pl/groupdel.8
man/pl/groupmod.8
man/pl/groups.1
man/pl/grpck.8
man/pl/id.1
man/pl/lastlog.8
man/pl/limits.5
man/pl/login.1
man/pl/login.access.5
man/pl/login.defs.5
man/pl/logoutd.8
man/pl/mkpasswd.8
man/pl/newgrp.1
man/pl/newusers.8
man/pl/passwd.1
man/pl/passwd.5
man/pl/porttime.5
man/pl/pw_auth.3
man/pl/pwck.8
man/pl/pwconv.8
man/pl/shadow.3
man/pl/shadow.5
man/pl/shadowconfig.8
man/pl/su.1
man/pl/suauth.5
man/pl/sulogin.8
man/pl/useradd.8
man/pl/userdel.8
man/pl/usermod.8
man/pl/vipw.8
man/porttime.5
man/pt_BR/Makefile.in
man/pt_BR/gpasswd.1
man/pt_BR/groupadd.8
man/pt_BR/groupdel.8
man/pt_BR/groupmod.8
man/pt_BR/shadow.5
man/pw_auth.3
man/pwck.8
man/pwconv.8
man/ru/Makefile.in
man/ru/passwd.5
man/shadow.3
man/shadow.5
man/su.1
man/suauth.5
man/sulogin.8
man/useradd.8
man/userdel.8
man/usermod.8
man/vipw.8
man/zh_CN/Makefile.in
man/zh_CN/chfn.1
man/zh_CN/chpasswd.8
man/zh_CN/chsh.1
man/zh_CN/groupadd.8
man/zh_CN/groupdel.8
man/zh_CN/groupmod.8
man/zh_CN/useradd.8
man/zh_CN/userdel.8
man/zh_CN/usermod.8
man/zh_TW/Makefile.in
man/zh_TW/chfn.1
man/zh_TW/chsh.1
man/zh_TW/groupadd.8
man/zh_TW/groupdel.8
man/zh_TW/groupmod.8
man/zh_TW/useradd.8
man/zh_TW/userdel.8
man/zh_TW/usermod.8
po/LINGUAS
po/POTFILES.in
po/bs.gmo
po/bs.po
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/da.gmo
po/da.po
po/de.gmo
po/de.po
po/el.gmo
po/el.po
po/es.gmo
po/es.po
po/eu.gmo
po/eu.po
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/he.gmo
po/he.po
po/id.gmo
po/id.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/ko.gmo
po/ko.po
po/nb.gmo
po/nb.po
po/nl.gmo
po/nl.po
po/nn.gmo
po/nn.po
po/pl.gmo
po/pl.po
po/pt.gmo
po/pt.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/shadow.pot
po/sk.gmo
po/sk.po
po/sq.gmo
po/sq.po
po/sv.gmo
po/sv.po
po/tl.gmo [new file with mode: 0644]
po/tl.po [new file with mode: 0644]
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/zh_CN.gmo
po/zh_CN.po
po/zh_TW.gmo
po/zh_TW.po
src/.indent.pro
src/Makefile.am
src/Makefile.in
src/chage.c
src/chfn.c
src/chpasswd.c
src/chsh.c
src/expiry.c
src/faillog.c
src/gpasswd.c
src/groupadd.c
src/groupdel.c
src/groupmod.c
src/groups.c
src/grpck.c
src/grpconv.c
src/grpunconv.c
src/lastlog.c
src/login.c
src/login_nopam.c [moved from libmisc/login_access.c with 95% similarity]
src/logoutd.c
src/mkpasswd.c
src/newgrp.c
src/newusers.c
src/passwd.c
src/pwck.c
src/pwconv.c
src/pwunconv.c
src/su.c
src/suauth.c
src/sulogin.c
src/useradd.c
src/userdel.c
src/usermod.c
src/vipw.c

index a86a265a32f540deae2937d48338c1ac62839039..9595c3b2837c0713febdc014d72617f90ce4851f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,563 @@
+2005-04-25  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/nl.po: kill fuzzy.
+
+       * man/chage.1:
+       reverte last commit (by mistake commited experimental version generated from XML file).
+
+       * NEWS, po/nl.po:
+       updated for 4.0.8 (by "cobaco (aka Bart Cornelis)" <cobaco@linux.be>).
+
+       * po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po:
+       two typos (s,specyfied,specified,; s,maiximum,maximum,).
+
+       * NEWS, po/sk.po:
+       updated for 4.0.8 (by Peter Mann <Peter.Mann@tuke.sk>).
+
+       * src/lastlog.c: typo (s,specyfied,specified,)
+
+       * src/faillog.c: typo (s,maiximum,maximum,).
+
+2005-04-22  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/chage.1.xml, man/chfn.1.xml, man/chsh.1.xml, man/expiry.1.xml, man/gpasswd.1.xml, man/groups.1.xml, man/id.1.xml, man/login.1.xml, man/passwd.1.xml, man/su.1.xml:
+       added <refmiscinfo class="sectdesc">User Commands</refmiscinfo> in <refmeta></refmeta>.
+
+       * man/chfn.1.xml, man/chpasswd.8.xml, man/chsh.1.xml, man/expiry.1.xml, man/faillog.5.xml, man/faillog.8.xml, man/gpasswd.1.xml, man/groupadd.8.xml, man/groupdel.8.xml, man/groupmems.8.xml, man/groupmod.8.xml, man/groups.1.xml, man/grpck.8.xml, man/gshadow.5.xml, man/id.1.xml, man/lastlog.8.xml, man/limits.5.xml, man/login.1.xml, man/login.access.5.xml, man/login.defs.5.xml, man/logoutd.8.xml, man/mkpasswd.8.xml, man/newusers.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pw_auth.3.xml, man/pwck.8.xml, man/pwconv.8.xml, man/shadow.3.xml, man/shadow.5.xml, man/shadowconfig.8.xml, man/su.1.xml, man/suauth.5.xml, man/sulogin.8.xml, man/useradd.8.xml, man/userdel.8.xml, man/vigr.8.xml:
+       Use encoding="UTF-8" and DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN".
+
+       * man/userdel.8.xml, man/usermod.8.xml, man/vigr.8.xml, man/vipw.8.xml, man/chage.1.xml, man/chfn.1.xml, man/chpasswd.8.xml, man/chsh.1.xml, man/expiry.1.xml, man/faillog.5.xml, man/faillog.8.xml, man/gpasswd.1.xml, man/groupadd.8.xml, man/groupdel.8.xml, man/groupmems.8.xml, man/groupmod.8.xml, man/groups.1.xml, man/grpck.8.xml, man/gshadow.5.xml, man/id.1.xml, man/lastlog.8.xml, man/limits.5.xml, man/login.1.xml, man/login.access.5.xml, man/login.defs.5.xml, man/logoutd.8.xml, man/mkpasswd.8.xml, man/newusers.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pw_auth.3.xml, man/pwck.8.xml, man/pwconv.8.xml, man/shadow.3.xml, man/shadow.5.xml, man/shadowconfig.8.xml, man/su.1.xml, man/suauth.5.xml, man/sulogin.8.xml, man/useradd.8.xml:
+       better formation using "xmlindent -l 80 -d 2".
+
+2005-04-21  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/it/chsh.1, man/it/expiry.1, man/it/faillog.5, man/it/faillog.8, man/it/getspnam.3, man/it/groups.1, man/it/grpck.8, man/it/grpconv.8, man/it/grpunconv.8, man/it/id.1, man/it/lastlog.8, man/it/login.1, man/it/logoutd.8, man/it/newgrp.1, man/it/porttime.5, man/it/pwck.8, man/it/shadow.3, man/it/shadow.5, man/it/shadowconfig.8, man/it/su.1, man/it/vipw.8, NEWS, man/it/Makefile.am, man/it/chage.1, man/it/chfn.1, man/it/chpasswd.8:
+       updated it man pages: chfn.1, chsh.1, groups.1, grpck.8, grpconv.8, grpunconv.8,
+       id.1, lastlog.8, login.1, newgrp.1, pwunconv.8, shadow.5, vigr.8, vipw.8.
+       new it man pages: chage.1, chpasswd.8, expiry.1, faillog.5, faillog.8,
+       getspnam.3, logoutd.8, porttime.5, pwck.8, shadow.3, shadowconfig.8, su.1.
+       (by Danilo Piazzalunga <danilopiazza@libero.it>)
+
+       * po/uk.po:
+       cleanups in plural forms (by Roman Festchook <roma@polesye.net>).
+
+       * man/chage.1, man/chfn.1.xml, man/chpasswd.8.xml, man/chsh.1.xml, man/expiry.1.xml, man/faillog.5.xml, man/faillog.8.xml, man/gpasswd.1.xml, man/groupadd.8.xml, man/groupdel.8.xml, man/groupmems.8.xml, man/groupmod.8.xml, man/groups.1.xml, man/grpck.8.xml, man/gshadow.5.xml, man/id.1.xml, man/lastlog.8.xml, man/limits.5.xml, man/login.1.xml, man/login.access.5.xml, man/login.defs.5.xml, man/logoutd.8.xml, man/mkpasswd.8.xml, man/newusers.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pw_auth.3.xml, man/pwck.8.xml, man/pwconv.8.xml, man/shadow.3.xml, man/shadow.5.xml, man/shadowconfig.8.xml, man/su.1.xml, man/suauth.5.xml, man/sulogin.8.xml, man/useradd.8.xml, man/userdel.8.xml, man/usermod.8.xml, man/vipw.8.xml:
+       reformated using xemacs.
+
+2005-04-20  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/fr.po, NEWS:
+       updated for 4.0.8 (by Christian Perrier <bubulle@kheops.frmug.org>).
+
+       * NEWS, po/eu.po: updated for 4.0.8 (by ^pi^ <piarres@gmail.com>).
+
+       * NEWS, po/uk.po:
+       updated for 4.0.8 (by Roman Festchook <roma@polesye.net>).
+
+       * po/cs.po:
+       updated for 4.0.8 (by Miroslav Kure <kurem@upcase.inf.upol.cz>).
+
+       * po/da.po, NEWS:
+       updated for 4.0.8 (by Claus Hindsgaul <claus_h@image.dk>).
+
+       * po/ko.po, NEWS:
+       updated for 4.0.8 (by Changwoo Ryu <cwryu@debian.org>).
+
+       * po/fi.po: kill one fuzzy (by Tommi Vainikainen <thv+debian@iki.fi>).
+
+2005-04-19  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/chpasswd.8.xml: Rewrited by hand & xemacs.
+
+       * man/chfn.1.xml: cleanups in <refentry> tag.
+
+       * man/chfn.1.xml: Rewrited by hand & xemacs.
+
+       * NEWS, po/pt.po:
+       updated for 4.0.8 (by Miguel Figueiredo <elmig@debianpt.org>).
+
+       * po/es.po, NEWS: updated (by Ruben Porras <nahoo@inicia.es>).
+
+2005-04-18  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/useradd.8:
+       fixed typos in useadd syntax (in SYNOPSIS section) catched using doclifter.
+
+       * man/chfn.1.xml, man/chpasswd.8.xml, man/chsh.1.xml, man/expiry.1.xml, man/faillog.5.xml, man/faillog.8.xml, man/getspnam.3.xml, man/gpasswd.1.xml, man/groupadd.8.xml, man/groupdel.8.xml, man/groupmems.8.xml, man/groupmod.8.xml, man/groups.1.xml, man/grpck.8.xml, man/grpconv.8.xml, man/grpunconv.8.xml, man/gshadow.5.xml, man/id.1.xml, man/lastlog.8.xml, man/limits.5.xml, man/login.1.xml, man/login.access.5.xml, man/login.defs.5.xml, man/logoutd.8.xml, man/mkpasswd.8.xml, man/newusers.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pw_auth.3.xml, man/pwck.8.xml, man/pwconv.8.xml, man/pwunconv.8.xml, man/sg.1.xml, man/shadow.3.xml, man/shadow.5.xml, man/shadowconfig.8.xml, man/su.1.xml, man/suauth.5.xml, man/sulogin.8.xml, man/useradd.8.xml, man/userdel.8.xml, man/usermod.8.xml, man/vigr.8.xml, man/vipw.8.xml:
+       raw version converted using doclifter.
+
+       * configure.in: remove handle --with-lib{opie,skey}.
+
+       * man/de/chsh.1:
+       synced with english version (by Simon Brandmair <sbrandmair@gmx.net>).
+
+       * man/usermod.8: improved -o description.
+
+       * man/de/passwd.1:
+       added translation EXIT VALUES section (by Simon Brandmair <sbrandmair@gmx.net>).
+
+       * NEWS, po/it.po:
+       updated it translation (by Danilo Piazzalunga <danilopiazza@libero.it>).
+
+2005-04-17  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po:
+       cleanups.
+
+       * po/pl.po: updated.
+
+       * src/usermod.c:
+       use the same error message ("%s: PAM authentication failed\n") on fail
+       authentication as in other tools.
+
+       * po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po:
+       run "make update-po".
+
+       * src/login.c, src/login_nopam.c:
+       fixed build with disabled PAM support: move bad_time_notify() and check_nologin()
+       back to src/login.c but use this functions #ifndef USE_PAM.
+
+       * NEWS, lib/Makefile.am, lib/pwauth.c:
+       remove not working OPIE and SKEY support.
+
+       * configure.in: typo (s,SELinuux,SELinux,).
+
+       * NEWS: typos.
+
+       * NEWS: chage, useradd, usermod: reduce multiple OPENLOG() calls.
+
+       * src/useradd.c, src/usermod.c: fix multiple OPENLOG() calls.
+
+       * src/chage.c: cleanups.
+
+       * src/chage.c: fix multiple OPENLOG() calls.
+
+       * src/chage.c:
+       use E_SUCCESS/E_NOPERM #defines instead 0/1 in exit() arguments.
+
+2005-04-15  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * src/passwd.c:
+       adjust also syslog message on usage -S option without permission.
+       Consolidate SELinix and non-SELinux code.
+
+       * po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, NEWS, src/passwd.c:
+       fix #61313 Debian bug: "passwd -S root" (as a normal user) should not
+       display "You may not change the password for root.
+
+       * NEWS, man/passwd.1:
+       fix #160477 Debian bug: improve -S output description.
+
+       * man/de/passwd.1:
+       new translation by Simon Brandmair <sbrandmair@gmx.net> with merged all
+       changes between revision 1.2 a 1.5.
+
+2005-04-14  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/passwd.1, man/pl/passwd.1: bold passwd and chage commands.
+
+       * NEWS, src/vipw.c:
+       fixed race condition in vipw (Debian #242407 bug; fix by Alexander Gattin
+       <arg@online.com.ua>).
+
+       * man/pl/chage.1, man/pl/chage.1.xml: synced with english version.
+
+       * man/chage.1, man/chage.1.xml:
+       add info about what mean -1 passed n expiredate parameter (based on #304542
+       Debian bug; submited by Federico Grau <grauf@rfa.org>).
+
+2005-04-13  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/fi.po, NEWS:
+       updated translation (by Tommi Vainikainen <tvainikan@cc.hut.fi>).
+
+       * man/hu/passwd.1, man/it/passwd.1, man/ja/passwd.1, man/pl/passwd.1, man/de/passwd.1, man/es/passwd.1, man/passwd.1:
+       cleanups and unifications in SEE ALSO section.
+
+2005-04-12  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * configure.in:
+       Info documentation says about AC_GNU_SOURCE: "should be called before any
+       macros that run the C compiler". So move this macro on top configure.in for
+       avoid autoconf warnings.
+
+       * configure.in:
+       AC_SYS_LARGEFILE() performs checking is fseeko() is avalaible so "fseeko" can
+       be removed from AC_CHECK_FUNCS() parameters.
+
+       * NEWS, configure.in: Remove using AC_PROG_GCC_TRADITIONAL macro.
+       Add using AC_GNU_SOURCE macro for kill compilation warnings about implicit
+       declaration of function `fseeko'.
+
+       * po/cs.po: killed fuzzy (by Miroslav Kure <kurem@debian.cz>).
+
+       * man/ja/newgrp.1, man/pl/newgrp.1, NEWS, man/hu/newgrp.1, man/newgrp.1:
+       newgrp uses /bin/sh (not bash).
+
+       * man/gpasswd.1, man/groupdel.8, man/groupmems.8, man/groupmod.8, man/groups.1, man/id.1, man/mkpasswd.8, man/newgrp.1, man/pwck.8, man/useradd.8, man/userdel.8, man/usermod.8:
+       describe /etc/group in FILES section as "group account information".
+
+       * man/grpck.8:
+       describe /etc/passwd in FILES section as "user account information".
+
+       * po/stats: small script for generate translations statistics.
+
+       * NEWS, po/cs.po: Updated by Miroslav Kure <kurem@debian.cz>.
+
+       * man/chage.1.xml, man/chage.1, man/expiry.1, man/login.1, man/mkpasswd.8, man/newgrp.1, man/passwd.1, man/pwck.8, man/shadow.3, man/shadow.5, man/su.1, man/sulogin.8:
+       describe /etc/shadow in FILES section as "secure user account information".
+
+       * man/newgrp.1: Reformated paragraph. s,Bourne shell,\fBbash\fR shell,
+
+       * NEWS, man/newgrp.1:
+       fix #251926, #166173, #113191 Debian bugs: explain why editing /etc/group
+       (without gshadow) doesn't permit to use newgrp.
+
+       * po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po:
+       added/fixed Plural-Forms: header entries. Run "make update-po".
+
+       * po/pl.po:
+       added Plural-Forms: header entry and updated for last change in
+       libmisc/failure.c.
+
+       * libmisc/failure.c:
+       break message text with failure login since last login.
+
+       * libmisc/failure.c:
+       Use ngettext instead of string concatenation and static number of cases.
+       Patch by Tommi Vainikainen <tvainika@cc.hut.fi>.
+
+2005-04-11  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/cs.po:
+       new translation maintainer: Miroslav Kure <kurem@debian.cz>.
+
+2005-04-10  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/pl.po: updated for 4.0.8.
+
+2005-04-09  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, NEWS, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, src/faillog.c:
+       changed faillog records display format for allow fit in 80 columns all
+       faillog atributies.
+
+       * po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po:
+       run "make update-po". Updated pl.po.
+
+       * src/faillog.c (usage): typo (s,IDAYS,DAYS,).
+
+       * man/faillog.8, NEWS:
+       updated after rewrite faillog command for use getopt_long().
+
+       * src/faillog.c:
+       Add handle -h,--help option. Show in usage output information about
+       -t,--time option. Remove handle -p option.
+
+       * po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po:
+       run "make update-po".
+
+       * po/POTFILES.in: updated.
+
+       * man/gpasswd.1: typo (s,fB,\fB,).
+
+2005-04-06  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, man/ja/login.1:
+       updated ja man page for Debian #95213 bug (by Kenshi Muto <kmuto@debian.org>).
+
+       * src/chage.c, src/chfn.c, src/chsh.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/grpck.c, src/passwd.c, src/pwck.c, src/useradd.c, src/userdel.c, src/usermod.c, NEWS, lib/grdbm.c, lib/gsdbm.c, lib/pwdbm.c, lib/spdbm.c, lib/Makefile.am, lib/gshadow.c, lib/shadow.c:
+       next round of cleanups: removed NDBM code (unused).
+
+       * src/login.c: consilidate some !USE_PAM lines.
+
+       * src/login.c, src/login_nopam.c:
+       move bad_time_notify() and check_nologin() to src/login_nopam.c.
+
+       * lib/prototypes.h: remove not used login_desrpc() prototype.
+
+       * lib/rad64.c, lib/encrypt.c, lib/prototypes.h, lib/Makefile.am:
+       remove lib/rad64 with not used c64i() and i64c() functions.
+
+       * lib/encrypt.c:
+       remove "#ifdef SW_CRYPT .. #endif" and "#ifdef DOUBLESIZE .. #endif" unused code.
+
+       * lib/encrypt.c: remove "#ifdef MD5_CRYPT .. #endif" unused code.
+
+       * libmisc/salt.c:
+       remove prototypes for *l64a() and add #include <stdlib.h>. Remove unused
+       now code (old style random salt generator).
+
+       * src/chage.c: cleanups.
+
+       * src/chpasswd.c:
+       remove prototypes for *l64a() and add #include <stdlib.h>.
+
+       * src/login.c: remove login_fbtab() prototype.
+
+       * src/chage.c:
+       remove prototypes for a64l() and *l64a() and add #include <stdlib.h>.
+
+2005-04-05  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/ru/passwd.5, man/zh_CN/chfn.1, man/zh_CN/chpasswd.8, man/zh_CN/chsh.1, man/zh_CN/groupadd.8, man/zh_CN/groupdel.8, man/zh_CN/groupmod.8, man/zh_CN/useradd.8, man/zh_CN/userdel.8, man/zh_CN/usermod.8, man/zh_TW/chfn.1, man/zh_TW/chsh.1, man/zh_TW/groupadd.8, man/zh_TW/groupdel.8, man/zh_TW/groupmod.8, man/zh_TW/useradd.8, man/zh_TW/userdel.8, man/zh_TW/usermod.8, man/ko/chfn.1, man/ko/chsh.1, man/ko/groups.1, man/ko/id.1, man/ko/login.1, man/ko/passwd.5, man/ko/su.1, man/pt_BR/gpasswd.1, man/pt_BR/groupadd.8, man/pt_BR/groupdel.8, man/pt_BR/groupmod.8, man/pt_BR/shadow.5, man/ja/chage.1, man/ja/chfn.1, man/ja/chpasswd.8, man/ja/chsh.1, man/ja/expiry.1, man/ja/faillog.8, man/ja/gpasswd.1, man/ja/groupadd.8, man/ja/groupmod.8, man/ja/groups.1, man/ja/grpck.8, man/ja/id.1, man/ja/lastlog.8, man/ja/limits.5, man/ja/login.1, man/ja/login.access.5, man/ja/login.defs.5, man/ja/mkpasswd.8, man/ja/newgrp.1, man/ja/passwd.1, man/ja/porttime.5, man/ja/pw_auth.3, man/ja/pwck.8, man/ja/shadow.3, man/ja/su.1, man/ja/suauth.5, man/ja/sulogin.8, man/ja/useradd.8, man/ja/userdel.8, man/ja/usermod.8, man/ja/vipw.8, man/hu/chfn.1, man/hu/chsh.1, man/hu/gpasswd.1, man/hu/groups.1, man/hu/id.1, man/hu/login.1, man/hu/newgrp.1, man/hu/passwd.1, man/hu/su.1, man/id/chsh.1, man/id/login.1, man/id/useradd.8, man/it/chfn.1, man/it/chsh.1, man/it/gpasswd.1, man/it/groupadd.8, man/it/groupdel.8, man/it/groupmod.8, man/it/groups.1, man/it/grpck.8, man/it/id.1, man/it/lastlog.8, man/it/login.1, man/it/passwd.5, man/it/shadow.5, man/it/useradd.8, man/it/userdel.8, man/it/usermod.8, man/it/vipw.8, man/de/chfn.1, man/de/chsh.1, man/de/login.1, man/de/passwd.1, man/de/passwd.5, man/de/su.1, man/de/vipw.8, man/es/login.1, man/es/passwd.1, man/es/su.1, man/fr/chage.1, man/fr/chpasswd.8, man/fr/chsh.1, man/fr/faillog.5, man/fr/gpasswd.1, man/fr/groups.1, man/fr/id.1, man/fr/passwd.1, man/fr/passwd.5, man/fr/shadow.5, man/fr/su.1, man/fr/useradd.8, man/fr/userdel.8, man/fr/usermod.8, man/cs/groups.1, man/cs/id.1, man/cs/lastlog.8, man/cs/passwd.5, man/cs/shadow.5, man/cs/su.1, man/pl/chage.1, man/pl/chfn.1, man/pl/chpasswd.8, man/pl/chsh.1, man/pl/expiry.1, man/pl/faillog.5, man/pl/faillog.8, man/pl/gpasswd.1, man/pl/groupadd.8, man/pl/groupdel.8, man/pl/groupmems.8, man/pl/groupmod.8, man/pl/groups.1, man/pl/grpck.8, man/pl/id.1, man/pl/lastlog.8, man/pl/limits.5, man/pl/login.1, man/pl/login.access.5, man/pl/login.defs.5, man/pl/logoutd.8, man/pl/mkpasswd.8, man/pl/newgrp.1, man/pl/newusers.8, man/pl/passwd.1, man/pl/passwd.5, man/pl/porttime.5, man/pl/pw_auth.3, man/pl/pwck.8, man/pl/pwconv.8, man/pl/shadow.3, man/pl/shadow.5, man/pl/shadowconfig.8, man/pl/su.1, man/pl/suauth.5, man/pl/sulogin.8, man/pl/useradd.8, man/pl/userdel.8, man/pl/vipw.8, man/chage.1, man/chfn.1, man/expiry.1, man/faillog.8, man/gpasswd.1, man/groupadd.8, man/groupmems.8, man/groupmod.8, man/grpck.8, man/lastlog.8, man/limits.5, man/login.1, man/login.defs.5, man/newgrp.1, man/passwd.1, man/porttime.5, man/pwck.8, man/shadow.3, man/su.1, man/suauth.5, man/sulogin.8, man/useradd.8, man/usermod.8, man/vipw.8:
+       more replaces "-" by "\-" (s,\\-,-,g; s,-,\\-,g).
+
+       * man/pl/usermod.8: finish sync with english version.
+
+       * man/hu/login.1, man/pl/login.1, NEWS, man/de/login.1, man/login.1:
+       removed fragment about abilities pass enviroment variables in login prompt.
+
+       * man/gpasswd.1, man/newgrp.1:
+       fixes by Nicolas Nicolas François <nicolas.francois@centraliens.net> (not all
+       commited).
+
+2005-04-02  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/login.1, man/login.access.5, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/newusers.8, man/passwd.1, man/passwd.5, man/porttime.5, man/pw_auth.3, man/pwck.8, man/shadow.3, man/shadow.5, man/su.1, man/suauth.5, man/sulogin.8, man/useradd.8, man/userdel.8, man/usermod.8, man/vipw.8, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, man/expiry.1, man/faillog.5, man/faillog.8, man/gpasswd.1, man/groupadd.8, man/groupmems.8, man/groupmod.8, man/groups.1, man/grpck.8, man/gshadow.5, man/id.1, man/lastlog.8, man/limits.5:
+       replace all "-" by "\-" (s,\\-,-,; s,-,\\-,).
+
+       * man/cs/groups.1: cleanups.
+
+       * NEWS, src/su.c:
+       fixed use of SU_WHEEL_ONLY in su. Now su realy is avalaible for wheel group
+       members. Thanks to Mike Frysinger <vapier@gentoo.org> for report:
+       http://bugs.gentoo.org/show_bug.cgi?id=80345
+
+       * man/pl/chage.1.xml:
+       converted from roff using doclifter. Rewrited by hand. Probably will be
+       removed after prepare infrastructure for translate man pages using gettext
+       but temporary I need this for some experiments.
+
+       * src/login.c: remove unused #ifded LOGIN_FBTAB .. #endif code.
+
+       * configure.in, libmisc/login_access.c, libmisc/Makefile.am, src/Makefile.am, src/login.c, src/login_nopam.c:
+       move libmisc/login_access.c to src/login_mopam.c.
+       Remove using LOGIN_ACCESS #define. Now LOGIN_ACCESS is equal to !USE_PAM.
+       In src/login_nopam.c will be cumulated non-PAM specyfic login code.
+
+       * src/lastlog.c, src/login.c, src/useradd.c, src/usermod.c, libmisc/log.c:
+       cleanups: remove using #include "lastlog_.h".
+
+       * src/login.c: fixed build with PAM support disabled.
+
+       * src/login.c: remove "#ifdef HUP_MESG_FILE .. #endif" code.
+
+       * src/login.c: reindent using -l80.
+
+       * man/chage.1, man/chage.1.xml: s/chage/chage command/ in DESCRIPTION.
+
+       * man/chage.1.xml:
+       converted from roff using doclifter. Rewrited by hand.
+
+       * man/chage.1, man/chfn.1, man/faillog.8, man/groupmod.8, man/pwconv.8, man/useradd.8, man/usermod.8:
+       cleanups.
+
+       * man/pwconv.8: fixed typo: s,fI,\fI,
+
+       * po/POTFILES.in: remove libmisc/login_{desrpc,krb}.c.
+
+       * lib/getdef.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/Makefile.am, src/login.c, NEWS, autogen.sh, configure.in:
+       drop never finished kerberos and des_rpc support.
+
+       * man/it/chfn.1: cleanups.
+
+2005-04-01  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, configure.in:
+       fixed UTMP path detection (by Kelledin <kelledin@users.sf.net>).
+
+       * man/fr/chsh.1: typo.
+
+       * man/de/Makefile.am, man/de/passwd.5:
+       imported from Deutscher manpages.
+
+       * man/cs/Makefile.am, man/cs/groups.1, man/cs/lastlog.8, man/cs/su.1:
+       new files imported from Czech man-pages.
+
+       * man/pl/faillog.8, man/pl/groupmems.8, man/pl/id.1, man/pt_BR/groupadd.8, man/pt_BR/groupmod.8, man/zh_CN/groupadd.8, man/zh_CN/groupmod.8, man/zh_CN/useradd.8, man/zh_CN/usermod.8, man/zh_TW/groupadd.8, man/zh_TW/groupmod.8, man/zh_TW/useradd.8, man/zh_TW/usermod.8, man/fr/chage.1, man/fr/chpasswd.8, man/fr/passwd.1, man/hu/chsh.1, man/it/groupadd.8, man/it/groupmod.8, man/it/usermod.8, man/ja/chage.1, man/ja/chfn.1, man/ja/chsh.1, man/ja/gpasswd.1, man/ja/groupadd.8, man/ja/groupmod.8, man/ja/login.1, man/ja/passwd.1, man/ja/useradd.8, man/ja/usermod.8, man/chage.1, man/chfn.1, man/chsh.1, man/de/chfn.1, man/de/chsh.1, man/de/login.1, man/de/passwd.1, man/gpasswd.1, man/groupadd.8, man/id.1, man/login.1, man/passwd.1, man/useradd.8:
+       cleanups: aded missing \fR.
+
+       * man/Makefile.am, man/gpasswd.1, man/gshadow.5, NEWS:
+       added new file (by Nicolas Nicolas François <nicolas.francois@centraliens.net>).
+
+2005-03-31  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/pl/chage.1, man/pl/chfn.1, man/pl/chsh.1, man/pl/gpasswd.1:
+       added missing \fR.
+
+       * man/pl/groupmod.8: typo: s,\fI,\fR,
+
+       * man/pl/login.1, man/pl/passwd.1: cleanups: aded missing \fR.
+
+       * man/pl/sulogin.8: cleanups.
+
+       * man/pl/useradd.8: cleanups: aded missing \fR.
+
+       * man/pl/usermod.8: partialy synced with english version.
+
+       * man/usermod.8: typo.
+
+       * NEWS, man/usermod.8:
+       fixed #302388 Debian bug: added separated -o option description.
+
+       * lib/getdef.c:
+       FAILLOG_ENAB, LOGIN_STRING moved to code "#ifndef USE_PAM" dependent.
+
+       * lib/pwauth.c, lib/pwauth.h: enable pw_auth() only #ifndef USE_PAM.
+
+       * src/userdel.c, src/usermod.c, src/vipw.c, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmems.c, src/groupmod.c, src/groups.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/suauth.c, src/sulogin.c, src/useradd.c, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, libmisc/login_access.c, libmisc/login_krb.c, libmisc/addgrps.c, libmisc/age.c, libmisc/chkname.h, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/copydir.c, libmisc/env.c, libmisc/failure.c, libmisc/failure.h, libmisc/getdate.h, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/loginprompt.c, libmisc/motd.c, libmisc/pam_pass.c, libmisc/pwdcheck.c, libmisc/rlogin.c, libmisc/setugid.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/utmp.c, libmisc/xmalloc.c, NEWS, lib/grdbm.c, lib/gsdbm.c, lib/pwdbm.c, lib/rad64.c, lib/spdbm.c, lib/commonio.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/faillog.h, lib/fputsx.c, lib/getdef.c, lib/getdef.h, lib/getpass.c, lib/groupio.c, lib/groupio.h, lib/grpack.c, lib/gshadow.c, lib/gshadow_.h, lib/gspack.c, lib/lockpw.c, lib/port.c, lib/port.h, lib/prototypes.h, lib/pwauth.c, lib/pwauth.h, lib/pwio.c, lib/pwio.h, lib/pwpack.c, lib/rcsid.h, lib/sgetgrent.c, lib/sgetpwent.c, lib/sgetspent.c, lib/sgroupio.c, lib/sgroupio.h, lib/shadow.c, lib/shadowio.c, lib/shadowio.h, lib/sppack.c, lib/utent.c:
+       reindent all source code using -l80.
+
+       * lib/gshadow.c, NEWS:
+       rewrited group count to dynamic (by John Newbigin <jnewbigin@ict.swin.edu.au >).
+
+       * po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po:
+       run "make update-po".
+
+       * src/login.c: use allways "\n%s login: " login prompt.
+
+       * src/login.c: removed radius support (even not compiles).
+
+       * doc/README.mirrors, doc/Makefile.am: removed.
+
+       * src/userdel.c (update_user): removed next redundant closing }.
+
+       * src/userdel.c: remove using unused NO_REMOVE_MAILBOX #define.
+
+       * src/userdel.c (update_user): removed redundant closing }.
+
+2005-03-30  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * lib/getdef.c:
+       move PASS_MAX_DAYS, PASS_MIN_DAYS and PASS_WARN_AGE to part PAM not dependent
+       (used in useradd, pwconv).
+
+       * configure.in, src/Makefile.am:
+       move define LOCALEDIR using AC_DEFINE_UNQUOTED() to src/Makefile.am::AM_CPPFLAGS.
+
+       * man/pwconv.8: typo in bold.
+
+       * doc/INSTALL: removed.
+
+       * doc/README.sun4, doc/Makefile.am: removed outdated README.sun4.
+
+2005-03-24  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/pl.po: put mine data in Last-Translator: field.
+
+       * src/newusers.c:
+       use the same as in useradd default UMASK (022 instead 077) if diffrent not
+       defined in login.defs.
+
+       * NEWS, libmisc/copydir.c:
+       added SELinux changes (based on Fedora patch).
+
+       * NEWS: typo.
+
+       * man/login.defs.5: typo in bold.
+
+       * src/chfn.c, src/chsh.c, lib/getdef.c:
+       move CHFN_AUTH, CHSH_AUTH variables from login.defs to part !USE_PAM dependent.
+       Use "auth required pam_unix.so" in /etc/pam.d/{chfn,chsh} for force enter password
+       on use chfn/chsh.
+
+       * lib/getdef.c: added CHSH_AUTH variable in def_table[] table.
+
+       * src/chsh.c: s/CHFN_AUTH/CHSH_AUTH/
+
+       * man/shadow.5, man/passwd.5:
+       add more accurate information about what contains field with encrypted password in
+       each passwd/shadow line (reported by Mike Brodbelt).
+
+       * autogen.sh: reorder.
+
+       * lib/getdef.c:
+       CRACKLIB_DICTPATH, ENV_HZ, ENV_PATH, ENV_ROOTPATH, ENV_SUPATH, ENV_TZ,
+       ENVIRON_FILE, FTMP_FILE, ISSUE_FILE, LASTLOG_ENAB, MAIL_CHECK_ENAB, MAIL_DIR,
+       MAIL_FILE, MD5_CRYPT_ENAB, MOTD_FILE, NOLOGINS_FILE, OBSCURE_CHECKS_ENAB,
+       PASS_ALWAYS_WARN, PASS_CHANGE_TRIES, PASS_MAX_DAYS, PASS_MAX_LEN, PASS_MIN_DAYS,
+       PASS_MIN_LEN, PASS_WARN_AGE, PORTTIME_CHECKS_ENAB, SU_WHEEL_ONLY, QMAIL_DIR,
+       QUOTAS_ENAB, ULIMIT variables moved to code "#ifndef USE_PAM" dependent.
+
+       * configure.in:
+       fix importand typo: added missing ",". Now LOGIN_ACCESS realy is defined only
+       when PAM is not enabled.
+
+       * libmisc/obscure.c, libmisc/limits.c:
+       all functions from this file are "#ifndef USE_PAM" dependent.
+
+       * libmisc/setugid.c (change_uid):
+       removed dead code depndent on "#ifdef BSD".
+
+       * libmisc/ttytype.c (ttytype):
+       removed dead code depend on "defined(SUN) || defined(BSD) || defined(SUN4)".
+
+       * src/login.c (setup_tty): remove dead code.
+
+       * libmisc/rlogin.c:
+       fix compilation warning: replace #include <unistd.h> by #include <netdb.h>
+       where ruserok() is declared.
+
+2005-03-23  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/pl.po: kill one fuzzy entry.
+
+2005-03-09  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, libmisc/log.c:
+       fixed create lastlog entry fo users never loged in on non-PAM
+       variant of login (fix by <oracular@ziplip.com>).
+
+2005-03-07  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, etc/login.defs, etc/login.defs.linux, lib/getdef.c, man/pl/login.defs.5:
+       remove handle login.defs::NOLOGIN_STR (never used).
+
+2005-02-25  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * man/shadow.5:
+       added missing '\&' in line starting with '\.', which causes groff to skip
+       it entirely (fix submited by Danilo Piazzalunga <danilopiazza@libero.it>).
+
+       * TODO: cleanups.
+
+2005-02-23  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * src/useradd.c, NEWS:
+       useradd: fixes a potential security problem when mailbox is created in
+       useradd.
+       Patch and comment by Koblinger Egmont <egmont@uhulinux.hu>:
+       Only two arguments are passed to the open() call though it expects three
+       because O_CREAT is present. Hence the permission of the file first becomes
+       some random garbage found on the stack, and an attacker can perhaps open
+       this file and hold it open for reading or writing before the proper
+       fchmod() is executed. (Actually, we could also pass the final "mode" to
+       the open() call and then save the consequent fchmod().)
+
+2005-02-17  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, po/LINGUAS, po/tl.po:
+       added tl translation (fron Debian resources).
+
+2005-02-14  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, src/chage.c, src/chfn.c, src/chsh.c, src/passwd.c:
+       SELinux changes: added changes in chage, chfn, chsh, passwd for allow
+       construct more grained user password/accuunt properties on SELinux
+       policies level. Patch originally based on RH changes (submited by Chris
+       PeBenito <pebenito@gentoo.org>)
+
+2005-02-09  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * po/fr.po, NEWS:
+       updated translation (by Jean-Luc Coulon <jean-luc.coulon@wanadoo.fr>) from
+       Debian resources.
+
+2005-01-26  Tomasz K³oczko  <kloczek@pld.org.pl>
+
+       * NEWS, configure.in: open work on 4.0.8.
+
 2005-01-24  Tomasz K³oczko  <kloczek@pld.org.pl>
 
        * po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po:
 
        * libmisc/shell.c (shell): do not gettexitize DEBUG message.
 
-       * src/chsh.c, src/grpconv.c, src/login.c, src/logoutd.c, src/sulogin.c, src/vipw.c, libmisc/getdate.y, libmisc/limits.c, libmisc/login_access.c, libmisc/obscure.c, libmisc/setupenv.c, lib/getpass.c, lib/pwauth.c:
+       * src/chsh.c, src/grpconv.c, src/login.c, src/logoutd.c, src/sulogin.c, src/vipw.c, libmisc/login_access.c, libmisc/getdate.y, libmisc/limits.c, libmisc/obscure.c, libmisc/setupenv.c, lib/getpass.c, lib/pwauth.c:
        Removed "#if 0 .. #endif" dead code.
 
        * libmisc/utmp.c: Fixed unterminated #if.
 
 2003-04-22  Tomasz K³oczko  <kloczek@pld.org.pl>
 
-       * libmisc/getdate.c, libmisc/nscd.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/motd.c, libmisc/myname.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/pwd2spwd.c, libmisc/pwd_init.c, libmisc/pwdcheck.c, libmisc/rlogin.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, libmisc/addgrps.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chkshell.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c:
+       * libmisc/getdate.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/nscd.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/motd.c, libmisc/myname.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/pwd2spwd.c, libmisc/pwd_init.c, libmisc/pwdcheck.c, libmisc/rlogin.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, libmisc/addgrps.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chkshell.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c:
        Indent all using current .indent.pro settings.
 
        * po/Makevars: New file neccessary for gettext >=0.11.5.
 
 2000-08-26  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * contrib/Makefile.am, contrib/groupmems.shar, doc/LSM, po/el.po, po/fr.po, po/pl.po, po/sv.po, doc/README.mirrors, src/vipw.c, src/dpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/usermod.c, lib/dialchk.h, lib/dialup.h, lib/tcfsio.h, lib/Makefile.am, lib/commonio.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/getdef.h, lib/groupio.c, lib/groupio.h, lib/prototypes.h, lib/pwauth.c, lib/pwio.c, lib/pwio.h, lib/rad64.c, lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.h, libmisc/suauth.c, libmisc/chkname.h, libmisc/chowndir.c, libmisc/copydir.c, libmisc/entry.c, libmisc/failure.h, libmisc/getdate.h, libmisc/hushed.c, libmisc/loginprompt.c, libmisc/setupenv.c, libmisc/sulog.c, man/dpasswd.8, man/pwauth.8, man/Makefile.am, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, man/faillog.5, man/faillog.8, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/login.1, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/newusers.8, man/passwd.1, man/passwd.5, man/pl/Makefile.am, man/pl/groupadd.8, man/pl/groupdel.8, man/pl/groupmod.8, man/pl/useradd.8, man/pl/userdel.8, man/pl/usermod.8, man/porttime.5, man/pw_auth.3, man/pwck.8, man/shadow.3, man/shadow.5, man/su.1, man/sulogin.8, man/useradd.8, man/userdel.8, man/usermod.8, etc/login.defs.hurd, etc/login.defs.linux, doc/ANNOUNCE, doc/CHANGES, doc/README, doc/README.linux, doc/README.pam, doc/WISHLIST, debian/login.copyright, debian/passwd.copyright, debian/secure-su.copyright, mkinstalldirs, configure.in, Makefile.am:
+       * contrib/Makefile.am, contrib/groupmems.shar, doc/LSM, po/el.po, po/fr.po, po/pl.po, po/sv.po, doc/README.mirrors, src/vipw.c, src/dpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/usermod.c, lib/dialchk.h, lib/dialup.h, lib/rad64.c, lib/tcfsio.h, lib/Makefile.am, lib/commonio.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/getdef.h, lib/groupio.c, lib/groupio.h, lib/prototypes.h, lib/pwauth.c, lib/pwio.c, lib/pwio.h, lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.h, libmisc/suauth.c, libmisc/chkname.h, libmisc/chowndir.c, libmisc/copydir.c, libmisc/entry.c, libmisc/failure.h, libmisc/getdate.h, libmisc/hushed.c, libmisc/loginprompt.c, libmisc/setupenv.c, libmisc/sulog.c, man/dpasswd.8, man/pwauth.8, man/Makefile.am, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, man/faillog.5, man/faillog.8, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/login.1, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/newusers.8, man/passwd.1, man/passwd.5, man/pl/Makefile.am, man/pl/groupadd.8, man/pl/groupdel.8, man/pl/groupmod.8, man/pl/useradd.8, man/pl/userdel.8, man/pl/usermod.8, man/porttime.5, man/pw_auth.3, man/pwck.8, man/shadow.3, man/shadow.5, man/su.1, man/sulogin.8, man/useradd.8, man/userdel.8, man/usermod.8, etc/login.defs.hurd, etc/login.defs.linux, doc/ANNOUNCE, doc/CHANGES, doc/README, doc/README.linux, doc/README.pam, doc/WISHLIST, debian/login.copyright, debian/passwd.copyright, debian/secure-su.copyright, mkinstalldirs, configure.in, Makefile.am:
        *** empty log message ***
 
 1999-08-27  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1999-06-07  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * redhat/shadow-utils.spec.in, src/dpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/usermod.c, contrib/Makefile.am, contrib/README, contrib/udbachk.tgz, debian/changelog, debian/rules, doc/CHANGES, doc/LSM, doc/README.linux, doc/README.mirrors, doc/README.platforms, doc/WISHLIST, lib/Makefile.am, lib/fputsx.c, lib/getpass.c, lib/pam_defs.h, lib/prototypes.h, lib/rcsid.h, libmisc/login_desrpc.c, libmisc/pam_pass.c, libmisc/utmp.c, man/login.1, po/el.po, po/pl.po, acconfig.h, configure.in:
+       * redhat/shadow-utils.spec.in, src/dpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/usermod.c, contrib/Makefile.am, contrib/README, contrib/udbachk.tgz, debian/changelog, debian/rules, doc/CHANGES, doc/README.mirrors, doc/LSM, doc/README.linux, doc/README.platforms, doc/WISHLIST, lib/Makefile.am, lib/fputsx.c, lib/getpass.c, lib/pam_defs.h, lib/prototypes.h, lib/rcsid.h, libmisc/login_desrpc.c, libmisc/pam_pass.c, libmisc/utmp.c, man/login.1, po/el.po, po/pl.po, acconfig.h, configure.in:
        *** empty log message ***
 
 1999-03-07  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1998-07-24  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/passwd.c, src/su.c, src/userdel.c, src/Makefile.am, src/chage.c, src/faillog.c, src/login.c, lib/tcfsio.c, lib/tcfsio.h, lib/pwauth.c, libmisc/chowntty.c, libmisc/pam_pass.c, libmisc/setugid.c, etc/pam.d/passwd, etc/pam.d/su, lib/Makefile.am, lib/commonio.c, lib/defines.h, lib/prototypes.h, doc/Makefile.am, doc/README.linux, doc/README.mirrors, doc/README.platforms, doc/WISHLIST, etc/Makefile.am, etc/pam.d/Makefile.am, doc/CHANGES, debian/changelog, configure.in, acconfig.h:
+       * src/passwd.c, src/su.c, src/userdel.c, src/Makefile.am, src/chage.c, src/faillog.c, src/login.c, lib/tcfsio.c, lib/tcfsio.h, lib/pwauth.c, libmisc/chowntty.c, libmisc/pam_pass.c, libmisc/setugid.c, etc/pam.d/passwd, etc/pam.d/su, lib/Makefile.am, lib/commonio.c, lib/defines.h, lib/prototypes.h, doc/README.mirrors, doc/Makefile.am, doc/README.linux, doc/README.platforms, doc/WISHLIST, etc/Makefile.am, etc/pam.d/Makefile.am, doc/CHANGES, debian/changelog, configure.in, acconfig.h:
        *** empty log message ***
 
 1998-06-26  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/passwd.c, src/usermod.c, man/faillog.8, man/pwconv.8, src/logoutd.c, lib/getpass.c, libmisc/copydir.c, doc/README.linux, doc/README.mirrors, doc/WISHLIST, lib/commonio.c, debian/changelog, doc/CHANGES, configure.in:
+       * src/passwd.c, src/usermod.c, man/faillog.8, man/pwconv.8, src/logoutd.c, lib/getpass.c, libmisc/copydir.c, doc/README.mirrors, doc/README.linux, doc/WISHLIST, lib/commonio.c, debian/changelog, doc/CHANGES, configure.in:
        *** empty log message ***
 
 1998-05-29  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1998-04-16  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/useradd.c, src/userdel.c, src/usermod.c, src/passwd.c, src/sulogin.c, src/groupdel.c, src/login.c, src/logoutd.c, src/newgrp.c, src/dpasswd.c, src/chage.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, redhat/shadow-970616-rh.patch, redhat/shadow-970616-utuser.patch, redhat/shadow-970616.login.defs, redhat/shadow-970616.useradd, redhat/shadow-utils-970616.spec, src/Makefile.am, libmisc/utmp.c, redhat/Makefile.am, redhat/README, redhat/shadow-970616-fix.patch, redhat/shadow-970616-glibc.patch, libmisc/limits.c, libmisc/log.c, libmisc/login_desrpc.c, libmisc/loginprompt.c, libmisc/obscure.c, libmisc/strtoday.c, libmisc/chkname.c, libmisc/chowndir.c, libmisc/copydir.c, libmisc/failure.c, lib/dialchk.c, lib/defines.h, lib/pwauth.c, lib/pwpack.c, doc/CHANGES, doc/README.linux, doc/WISHLIST, doc/cracklib26.diff, lib/commonio.c, acconfig.h, configure.in, debian/tar.c:
+       * src/useradd.c, src/userdel.c, src/usermod.c, src/passwd.c, src/sulogin.c, src/groupdel.c, src/login.c, src/logoutd.c, src/newgrp.c, src/dpasswd.c, src/chage.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, redhat/shadow-970616-rh.patch, redhat/shadow-970616-utuser.patch, redhat/shadow-970616.login.defs, redhat/shadow-970616.useradd, redhat/shadow-utils-970616.spec, src/Makefile.am, libmisc/utmp.c, redhat/Makefile.am, redhat/README, redhat/shadow-970616-fix.patch, redhat/shadow-970616-glibc.patch, libmisc/login_desrpc.c, libmisc/limits.c, libmisc/log.c, libmisc/loginprompt.c, libmisc/obscure.c, libmisc/strtoday.c, libmisc/chkname.c, libmisc/chowndir.c, libmisc/copydir.c, libmisc/failure.c, lib/dialchk.c, lib/defines.h, lib/pwauth.c, lib/pwpack.c, doc/CHANGES, doc/README.linux, doc/WISHLIST, doc/cracklib26.diff, lib/commonio.c, acconfig.h, configure.in, debian/tar.c:
        *** empty log message ***
 
 1998-04-02  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/groupmod.c, libmisc/sulog.c, lib/sgetspent.c, lib/sgetpwent.c, lib/sgetgrent.c, lib/putgrent.c, lib/gshadow.c, lib/getdef.c, lib/fputsx.c, lib/commonio.c, doc/README.linux, doc/README.mirrors, doc/CHANGES, configure.in:
+       * src/groupmod.c, libmisc/sulog.c, lib/sgetspent.c, lib/sgetpwent.c, lib/sgetgrent.c, lib/putgrent.c, lib/gshadow.c, lib/getdef.c, lib/fputsx.c, lib/commonio.c, doc/README.mirrors, doc/README.linux, doc/CHANGES, configure.in:
        *** empty log message ***
 
 1998-01-30  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * install-sh, src/userdel.c, src/usermod.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/useradd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/groupmod.c, src/login.c, src/logoutd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, redhat/README, redhat/shadow-utils.spec.in, src/Makefile.am, src/chage.c, man/login.defs.5, man/useradd.8, man/usermod.8, redhat/Makefile.am, libmisc/pam_pass.c, libmisc/strtoday.c, libmisc/tz.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/obscure.c, libmisc/age.c, libmisc/env.c, libmisc/limits.c, lib/strstr.c, lib/shadow.c, lib/shadowio.c, lib/shadowio.h, lib/utent.c, lib/rmdir.c, lib/pwio.c, lib/pwio.h, lib/sgetspent.c, lib/sgroupio.c, lib/mkdir.c, lib/putgrent.c, lib/prototypes.h, lib/pwauth.c, lib/md5crypt.c, lib/getpass.c, lib/groupio.c, lib/gshadow.c, lib/lockpw.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/getdef.h, doc/automake-1.0.diff, doc/README.mirrors, doc/WISHLIST, lib/Makefile.am, lib/commonio.c, doc/ANNOUNCE, doc/CHANGES, doc/Makefile.am, doc/README.limits, doc/README.linux, debian/Makefile.am, debian/changelog, debian/login.copyright, debian/rules, mkinstalldirs, shadow-utils.spec, contrib/README, aclocal.m4, acconfig.h, configure.in, Makefile.am:
+       * install-sh, src/userdel.c, src/usermod.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/useradd.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/groupmod.c, src/login.c, src/logoutd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/expiry.c, redhat/README, redhat/shadow-utils.spec.in, src/Makefile.am, src/chage.c, man/login.defs.5, man/useradd.8, man/usermod.8, redhat/Makefile.am, libmisc/pam_pass.c, libmisc/strtoday.c, libmisc/tz.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/obscure.c, libmisc/age.c, libmisc/env.c, libmisc/limits.c, lib/strstr.c, lib/shadow.c, lib/shadowio.c, lib/shadowio.h, lib/utent.c, lib/rmdir.c, lib/pwio.c, lib/pwio.h, lib/sgetspent.c, lib/sgroupio.c, lib/mkdir.c, lib/putgrent.c, lib/prototypes.h, lib/pwauth.c, lib/md5crypt.c, lib/getpass.c, lib/groupio.c, lib/gshadow.c, lib/lockpw.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/getdef.h, doc/README.mirrors, doc/automake-1.0.diff, doc/WISHLIST, lib/Makefile.am, lib/commonio.c, doc/ANNOUNCE, doc/CHANGES, doc/Makefile.am, doc/README.limits, doc/README.linux, debian/Makefile.am, debian/changelog, debian/login.copyright, debian/rules, mkinstalldirs, shadow-utils.spec, contrib/README, aclocal.m4, acconfig.h, configure.in, Makefile.am:
        *** empty log message ***
 
 1998-01-25  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1997-12-14  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * doc/CHANGES, debian/checksums, debian/rules, debian/Makefile.am, src/Makefile.am, src/userdel.c, src/usermod.c, src/pwck.c, src/useradd.c, src/mkpasswd.c, src/gpasswd.c, src/grpck.c, src/login.c, src/chage.c, src/chfn.c, src/chsh.c, man/shadowconfig.8, man/vipw.8, old/Makefile.am, old/pwunconv.8, man/Makefile.am, man/login.defs.5, man/pwconv.8, man/pwunconv.8, libmisc/limits.c, libmisc/rlogin.c, lib/pwent.c, lib/prototypes.h, lib/pwdbm.c, lib/shadow.c, doc/LSM, doc/WISHLIST, etc/limits, lib/grent.c, shadow-utils.spec, debian/changelog, configure.in:
+       * doc/CHANGES, debian/checksums, debian/rules, debian/Makefile.am, src/Makefile.am, src/userdel.c, src/usermod.c, src/pwck.c, src/useradd.c, src/mkpasswd.c, src/gpasswd.c, src/grpck.c, src/login.c, src/chage.c, src/chfn.c, src/chsh.c, man/shadowconfig.8, man/vipw.8, old/Makefile.am, old/pwunconv.8, man/Makefile.am, man/login.defs.5, man/pwconv.8, man/pwunconv.8, libmisc/limits.c, libmisc/rlogin.c, lib/pwdbm.c, lib/pwent.c, lib/prototypes.h, lib/shadow.c, doc/LSM, doc/WISHLIST, etc/limits, lib/grent.c, shadow-utils.spec, debian/changelog, configure.in:
        *** empty log message ***
 
 1997-12-08  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/userdel.c, src/usermod.c, src/shadowconfig.sh, src/su.c, src/sulogin.c, src/useradd.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/newgrp.c, src/newusers.c, src/logoutd.c, src/mkpasswd.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/dpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, old/Makefile.am, old/pwconv.8, old/vipw.8, man/Makefile.am, man/limits.5, man/pwconv.8, man/shadowconfig.8, man/vipw.8, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, libmisc/suauth.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/rlogin.c, libmisc/motd.c, libmisc/myname.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/pwd2spwd.c, libmisc/pwd_init.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/getdate.c, libmisc/failure.h, libmisc/fields.c, libmisc/getdate.h, libmisc/getdate.y, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chkname.h, libmisc/chkshell.c, lib/strdup.c, lib/strerror.c, lib/strstr.c, lib/utent.c, libmisc/Makefile.am, libmisc/addgrps.c, lib/sgroupio.c, lib/shadow.c, lib/shadowio.c, lib/spdbm.c, lib/sppack.c, lib/rename.c, lib/rmdir.c, lib/sgetgrent.c, lib/sgetpwent.c, lib/sgetspent.c, lib/rad64.c, lib/pwent.c, lib/pwauth.c, lib/pwdbm.c, lib/pwio.c, lib/pwpack.c, lib/mkdir.c, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/port.c, lib/prototypes.h, lib/md5.c, lib/md5crypt.c, lib/gsdbm.c, lib/gshadow.c, lib/gspack.c, lib/lockpw.c, lib/grent.c, lib/grdbm.c, lib/groupio.c, lib/grpack.c, lib/getpass.c, lib/dialup.c, lib/encrypt.c, lib/fputsx.c, lib/getdef.c, lib/dialchk.c, lib/dialchk.h, lib/commonio.c, lib/commonio.h, lib/defines.h, doc/automake-1.0.diff, etc/limits, etc/login.defs.linux, lib/Makefile.am, doc/CHANGES, doc/README.linux, doc/README.mirrors, doc/WISHLIST, debian/login.conffiles, debian/login.postinst, debian/passwd.postinst, debian/porttime, debian/rules, debian/secure-su.README, debian/securetty, contrib/pwdauth.c, debian/changelog, debian/control, aclocal.m4, shadow-utils.spec, acconfig.h, configure.in, Makefile.am:
+       * src/userdel.c, src/usermod.c, src/shadowconfig.sh, src/su.c, src/sulogin.c, src/useradd.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/pwunconv.c, src/newgrp.c, src/newusers.c, src/logoutd.c, src/mkpasswd.c, src/grpconv.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/grpck.c, src/dpasswd.c, src/chsh.c, src/expiry.c, src/faillog.c, src/gpasswd.c, src/Makefile.am, src/chage.c, src/chfn.c, src/chpasswd.c, old/Makefile.am, old/pwconv.8, old/vipw.8, man/Makefile.am, man/limits.5, man/pwconv.8, man/shadowconfig.8, man/vipw.8, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, libmisc/suauth.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/rlogin.c, libmisc/motd.c, libmisc/myname.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/pwd2spwd.c, libmisc/pwd_init.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/getdate.c, libmisc/failure.h, libmisc/fields.c, libmisc/getdate.h, libmisc/getdate.y, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chkname.h, libmisc/chkshell.c, lib/strdup.c, lib/strerror.c, lib/strstr.c, lib/utent.c, libmisc/Makefile.am, libmisc/addgrps.c, lib/spdbm.c, lib/sgroupio.c, lib/shadow.c, lib/shadowio.c, lib/sppack.c, lib/rename.c, lib/rmdir.c, lib/sgetgrent.c, lib/sgetpwent.c, lib/sgetspent.c, lib/rad64.c, lib/pwdbm.c, lib/pwent.c, lib/pwauth.c, lib/pwio.c, lib/pwpack.c, lib/mkdir.c, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/port.c, lib/prototypes.h, lib/gsdbm.c, lib/md5.c, lib/md5crypt.c, lib/gshadow.c, lib/gspack.c, lib/lockpw.c, lib/grdbm.c, lib/grent.c, lib/groupio.c, lib/grpack.c, lib/getpass.c, lib/dialup.c, lib/encrypt.c, lib/fputsx.c, lib/getdef.c, lib/dialchk.c, lib/dialchk.h, lib/commonio.c, lib/commonio.h, lib/defines.h, doc/automake-1.0.diff, etc/limits, etc/login.defs.linux, lib/Makefile.am, doc/CHANGES, doc/README.mirrors, doc/README.linux, doc/WISHLIST, debian/login.conffiles, debian/login.postinst, debian/passwd.postinst, debian/porttime, debian/rules, debian/secure-su.README, debian/securetty, contrib/pwdauth.c, debian/changelog, debian/control, aclocal.m4, shadow-utils.spec, acconfig.h, configure.in, Makefile.am:
        *** empty log message ***
 
 1997-10-01  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * debian/changelog, src/chpasswd.c, libmisc/login_access.c, lib/commonio.h, lib/sgroupio.c, lib/shadowio.c, etc/login.defs.linux, doc/CHANGES, doc/LSM, doc/README.mirrors, doc/WISHLIST, shadow-utils.spec:
+       * debian/changelog, src/chpasswd.c, libmisc/login_access.c, lib/commonio.h, lib/sgroupio.c, lib/shadowio.c, etc/login.defs.linux, doc/CHANGES, doc/README.mirrors, doc/LSM, doc/WISHLIST, shadow-utils.spec:
        *** empty log message ***
 
 1997-09-30  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/useradd.c, src/userdel.c, src/usermod.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/newusers.c, src/passwd.c, src/pwck.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/login.c, src/groupmod.c, src/dpasswd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/Makefile.am, old/install-sh, old/pwconv-old.8, old/pwunconv-old.8, old/Makefile.am, man/pwconv.8, man/pwunconv.8, libmisc/setugid.c, libmisc/shell.c, libmisc/utmp.c, libmisc/mail.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/salt.c, libmisc/isexpired.c, libmisc/login_access.c, libmisc/env.c, libmisc/fields.c, libmisc/addgrps.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, lib/strerror.c, lib/snprintf.c, lib/snprintf.h, lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.c, lib/shadowio.h, lib/putgrent.c, lib/pwent.c, lib/pwauth.c, lib/grent.c, lib/getpass.c, lib/prototypes.h, lib/commonio.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/Makefile.am, etc/login.defs.linux, doc/README.linux, doc/README.mirrors, doc/WISHLIST, doc/CHANGES, doc/LSM, doc/Makefile.am, debian/rules, debian/changelog, contrib/adduser.c, configure.in, acconfig.h:
+       * src/useradd.c, src/userdel.c, src/usermod.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/newusers.c, src/passwd.c, src/pwck.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/login.c, src/groupmod.c, src/dpasswd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/chage.c, src/chfn.c, src/chpasswd.c, src/chsh.c, src/Makefile.am, old/install-sh, old/pwconv-old.8, old/pwunconv-old.8, old/Makefile.am, man/pwconv.8, man/pwunconv.8, libmisc/setugid.c, libmisc/shell.c, libmisc/utmp.c, libmisc/mail.c, libmisc/obscure.c, libmisc/pam_pass.c, libmisc/salt.c, libmisc/login_access.c, libmisc/isexpired.c, libmisc/env.c, libmisc/fields.c, libmisc/addgrps.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, lib/strerror.c, lib/snprintf.c, lib/snprintf.h, lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.c, lib/shadowio.h, lib/putgrent.c, lib/pwent.c, lib/pwauth.c, lib/grent.c, lib/getpass.c, lib/prototypes.h, lib/commonio.c, lib/commonio.h, lib/defines.h, lib/encrypt.c, lib/getdef.c, lib/Makefile.am, etc/login.defs.linux, doc/README.mirrors, doc/README.linux, doc/WISHLIST, doc/CHANGES, doc/LSM, doc/Makefile.am, debian/rules, debian/changelog, contrib/adduser.c, configure.in, acconfig.h:
        *** empty log message ***
 
 1997-09-29  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1997-06-16  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * doc/console.c.spec, doc/Makefile.am, doc/WISHLIST, doc/console.c.spec.txt, doc/CHANGES, debian/changelog, src/shadowconfig.sh, redhat/Makefile.am, redhat/README, redhat/shadow-970502-config.patch, redhat/shadow-utils.spec, doc/README.shadow-paper, doc/README.mirrors, doc/README.linux, debian/login.copyright, debian/passwd.copyright, debian/secure-su.copyright, shadow-utils.spec, Makefile.am, configure.in:
+       * doc/console.c.spec, doc/Makefile.am, doc/WISHLIST, doc/console.c.spec.txt, doc/CHANGES, debian/changelog, src/shadowconfig.sh, redhat/Makefile.am, redhat/README, redhat/shadow-970502-config.patch, redhat/shadow-utils.spec, doc/README.mirrors, doc/README.shadow-paper, doc/README.linux, debian/login.copyright, debian/passwd.copyright, debian/secure-su.copyright, shadow-utils.spec, Makefile.am, configure.in:
        *** empty log message ***
 
 1997-06-01  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1997-05-02  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/shadowconfig.sh, src/Makefile.am, man/Makefile.am, libmisc/mail.c, libmisc/salt.c, lib/sgroupio.c, lib/shadowio.c, lib/groupio.c, lib/pwio.c, etc/Makefile.am, doc/WISHLIST, doc/CHANGES, debian/shadowconfig, debian/Makefile.am, debian/changelog, debian/control, debian/rules, configure.in, configure, shlib/Makefile.in, man/Makefile.in, libmisc/Makefile.in, lib/Makefile.in, etc/Makefile.in, doc/Makefile.in, contrib/Makefile.in, Makefile.in, man/userdel.8, man/usermod.8, man/shadow.5, man/su.1, man/sulogin.8, man/useradd.8, man/pwauth.8, man/pw_auth.3, man/pwck.8, man/pwconv.8, man/pwunconv.8, man/shadow.3, man/newusers.8, man/passwd.1, man/passwd.5, man/porttime.5, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/limits.5, man/login.1, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/faillog.5, man/faillog.8, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/dpasswd.8, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, libmisc/valid.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/utmp.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/setugid.c, libmisc/obscure.c, libmisc/pwd2spwd.c, libmisc/rlogin.c, libmisc/login_access.c, libmisc/loginprompt.c, libmisc/motd.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/copydir.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/age.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, lib/utent.c, lib/shadow_.h, lib/strstr.c, lib/spdbm.c, lib/sppack.c, lib/shadow.c, lib/sgetpwent.c, lib/sgetspent.c, lib/rename.c, lib/rmdir.c, lib/pwpack.c, lib/rad64.c, lib/sgetgrent.c, lib/pwent.c, lib/pwauth.h, lib/pwdbm.c, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/port.h, lib/pwauth.c, lib/lastlog_.h, lib/mkdir.c, lib/lockpw.c, lib/port.c, lib/grpack.c, lib/gsdbm.c, lib/gshadow.c, lib/gshadow_.h, lib/gspack.c, lib/grent.c, lib/getdef.c, lib/getpass.c, lib/grdbm.c, lib/dialup.h, lib/encrypt.c, lib/faillog.h, lib/fputsx.c, lib/dialchk.c, lib/dialup.c, lib/commonio.c, lib/defines.h, etc/login.defs, etc/login.defs.linux, doc/README.linux, doc/LICENSE, doc/Makefile.am, doc/README, doc/HOWTO, doc/ANNOUNCE, debian/secure-su.README, debian/secure-su.conffiles, debian/secure-su.copyright, debian/secure-su.postrm, debian/secure-su.preinst, debian/securetty, debian/passwd.conffiles, debian/passwd.copyright, debian/passwd.postinst, debian/porttime, debian/login.conffiles, debian/login.copyright, debian/login.postinst, debian/login.postrm, debian/login.preinst, debian/login.prerm, debian/logoutd, config.h.in, acconfig.h, Makefile.am, old/Makefile.in, old/scologin.c, old/orig-config.h, old/pwconv-old.c, old/pwd.h.m4, old/pwunconv-old.c, old/config.h.sun4, old/config.h.svr4, old/config.h.xenix, old/config.h.linux, old/Makefile.sun4, old/Makefile.svr4, old/Makefile.xenix, old/Makefile.am, old/Makefile.linux, src/Makefile.in, src/pwconv.c, src/userdel.c, src/usermod.c, src/useradd.c, src/su.c, src/sulogin.c, src/pwconv5.c, src/scologin.c, src/pwck.c, src/pwunconv.c, src/patchlevel.h, src/newusers.c, src/passwd.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/grpck.c, src/grpconv.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/dpasswd.c, src/chsh.c, src/expiry.c, src/chfn.c, src/chpasswd.c, src/chage.c:
+       * src/shadowconfig.sh, src/Makefile.am, man/Makefile.am, libmisc/mail.c, libmisc/salt.c, lib/sgroupio.c, lib/shadowio.c, lib/groupio.c, lib/pwio.c, etc/Makefile.am, doc/WISHLIST, doc/CHANGES, debian/shadowconfig, debian/Makefile.am, debian/changelog, debian/control, debian/rules, configure.in, configure, shlib/Makefile.in, man/Makefile.in, libmisc/Makefile.in, lib/Makefile.in, etc/Makefile.in, doc/Makefile.in, contrib/Makefile.in, Makefile.in, man/userdel.8, man/usermod.8, man/shadow.5, man/su.1, man/sulogin.8, man/useradd.8, man/pwauth.8, man/pw_auth.3, man/pwck.8, man/pwconv.8, man/pwunconv.8, man/shadow.3, man/newusers.8, man/passwd.1, man/passwd.5, man/porttime.5, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/limits.5, man/login.1, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/faillog.5, man/faillog.8, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/dpasswd.8, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, libmisc/valid.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/utmp.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/setugid.c, libmisc/obscure.c, libmisc/pwd2spwd.c, libmisc/rlogin.c, libmisc/login_access.c, libmisc/loginprompt.c, libmisc/motd.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/copydir.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/age.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, lib/utent.c, lib/shadow_.h, lib/spdbm.c, lib/strstr.c, lib/sppack.c, lib/shadow.c, lib/sgetpwent.c, lib/sgetspent.c, lib/rad64.c, lib/rename.c, lib/rmdir.c, lib/pwpack.c, lib/sgetgrent.c, lib/pwdbm.c, lib/pwent.c, lib/pwauth.h, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/port.h, lib/pwauth.c, lib/lastlog_.h, lib/mkdir.c, lib/lockpw.c, lib/port.c, lib/gsdbm.c, lib/grpack.c, lib/gshadow.c, lib/gshadow_.h, lib/gspack.c, lib/grdbm.c, lib/grent.c, lib/getdef.c, lib/getpass.c, lib/dialup.h, lib/encrypt.c, lib/faillog.h, lib/fputsx.c, lib/dialchk.c, lib/dialup.c, lib/commonio.c, lib/defines.h, etc/login.defs, etc/login.defs.linux, doc/README.linux, doc/LICENSE, doc/Makefile.am, doc/README, doc/HOWTO, doc/ANNOUNCE, debian/secure-su.README, debian/secure-su.conffiles, debian/secure-su.copyright, debian/secure-su.postrm, debian/secure-su.preinst, debian/securetty, debian/passwd.conffiles, debian/passwd.copyright, debian/passwd.postinst, debian/porttime, debian/login.conffiles, debian/login.copyright, debian/login.postinst, debian/login.postrm, debian/login.preinst, debian/login.prerm, debian/logoutd, config.h.in, acconfig.h, Makefile.am, old/Makefile.in, old/scologin.c, old/orig-config.h, old/pwconv-old.c, old/pwd.h.m4, old/pwunconv-old.c, old/config.h.sun4, old/config.h.svr4, old/config.h.xenix, old/config.h.linux, old/Makefile.sun4, old/Makefile.svr4, old/Makefile.xenix, old/Makefile.am, old/Makefile.linux, src/Makefile.in, src/pwconv.c, src/userdel.c, src/usermod.c, src/useradd.c, src/su.c, src/sulogin.c, src/pwconv5.c, src/scologin.c, src/pwck.c, src/pwunconv.c, src/patchlevel.h, src/newusers.c, src/passwd.c, src/logoutd.c, src/mkpasswd.c, src/newgrp.c, src/grpunconv.c, src/id.c, src/lastlog.c, src/login.c, src/grpck.c, src/grpconv.c, src/groupdel.c, src/groupmod.c, src/groups.c, src/faillog.c, src/gpasswd.c, src/groupadd.c, src/dpasswd.c, src/chsh.c, src/expiry.c, src/chfn.c, src/chpasswd.c, src/chage.c:
        *** empty log message ***
 
 1997-02-11  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
 1996-09-25  Marek Micha³kiewicz  <marekm@pld.org.pl>
 
-       * src/usermod.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/su.c, src/pwconv5.c, src/newgrp.c, src/passwd.c, src/pwck.c, src/grpck.c, src/login.c, src/logoutd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/chfn.c, src/chsh.c, src/chage.c, libmisc/strtoday.c, libmisc/env.c, libmisc/fields.c, libmisc/isexpired.c, libmisc/setupenv.c, lib/getdef.c, lib/prototypes.h, lib/rad64.c, lib/defines.h, etc/login.defs.linux, doc/README.linux, doc/WISHLIST, doc/CHANGES, configure, configure.in, config.h.in:
+       * src/usermod.c, src/sulogin.c, src/useradd.c, src/userdel.c, src/su.c, src/pwconv5.c, src/newgrp.c, src/passwd.c, src/pwck.c, src/grpck.c, src/login.c, src/logoutd.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/chfn.c, src/chsh.c, src/chage.c, libmisc/strtoday.c, libmisc/env.c, libmisc/fields.c, libmisc/isexpired.c, libmisc/setupenv.c, lib/rad64.c, lib/getdef.c, lib/prototypes.h, lib/defines.h, etc/login.defs.linux, doc/README.linux, doc/WISHLIST, doc/CHANGES, configure, configure.in, config.h.in:
        *** empty log message ***
 
 1996-09-20  Marek Micha³kiewicz  <marekm@pld.org.pl>
        * old/Makefile.am, old/Makefile.linux, old/Makefile.sun4, old/Makefile.svr4, old/Makefile.xenix, old/config.h.linux, old/config.h.sun4, old/config.h.svr4, old/config.h.xenix, old/install-sh, old/orig-config.h, old/pwd.h.m4, shlib/Makefile.am, shlib/Makefile.in, shlib/Makefile.in.saved:
        New file.
 
-       * contrib/adduser-old.c, contrib/adduser.sh, contrib/adduser2.sh, contrib/atudel, doc/README.sun4:
+       * contrib/adduser-old.c, contrib/adduser.sh, contrib/adduser2.sh, contrib/atudel:
        960810 - first version under cvs
 
-       * contrib/Makefile.in, contrib/Makefile.am, contrib/README, contrib/adduser.c, contrib/pwdauth.c, doc/ANNOUNCE, doc/CHANGES, doc/Makefile.in, doc/automake-1.0.diff, doc/console.c.spec, doc/HOWTO, doc/LICENSE, doc/Makefile.am, doc/README, doc/README.limits, doc/README.linux, doc/WISHLIST, etc/Makefile.in, etc/Makefile.am, etc/login.access, etc/login.defs, etc/login.defs.linux, old/Makefile.in, src/patchlevel.h, src/pwconv5.c, src/scologin.c, src/chage.c, src/chfn.c, src/chsh.c, src/expiry.c, src/gpasswd.c, src/groups.c, src/grpconv.c, src/id.c, src/login.c, src/newgrp.c, src/passwd.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, lib/dialup.h, lib/grent.c, lib/lastlog_.h, lib/md5.c, lib/md5.h, lib/md5crypt.c, lib/mkdir.c, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/pwent.c, lib/rename.c, lib/rmdir.c, lib/shadow_.h, lib/strdup.c, lib/strstr.c, lib/defines.h, lib/faillog.h, lib/getdef.h, lib/grdbm.c, lib/groupio.h, lib/grpack.c, lib/gsdbm.c, lib/gshadow_.h, lib/gspack.c, lib/port.h, lib/prototypes.h, lib/pwauth.h, lib/pwdbm.c, lib/pwio.h, lib/pwpack.c, lib/rcsid.h, lib/sgetgrent.c, lib/sgetpwent.c, lib/sgetspent.c, lib/sgroupio.h, lib/shadow.c, lib/shadowio.c, lib/shadowio.h, lib/spdbm.c, lib/sppack.c, lib/utent.c, src/Makefile.in, src/dpasswd.c, src/Makefile.am, src/chpasswd.c, src/faillog.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/grpck.c, src/lastlog.c, src/logoutd.c, src/mkpasswd.c, src/newusers.c, src/pwck.c, src/useradd.c, src/userdel.c, src/usermod.c, lib/Makefile.in, lib/dialchk.c, lib/dialup.c, lib/Makefile.am, lib/commonio.c, lib/encrypt.c, lib/fputsx.c, lib/getdef.c, lib/getpass.c, lib/groupio.c, lib/gshadow.c, lib/lockpw.c, lib/port.c, lib/pwauth.c, lib/pwio.c, lib/rad64.c, lib/sgroupio.c, libmisc/suauth.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/motd.c, libmisc/obscure.c, libmisc/pwd2spwd.c, libmisc/rlogin.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, man/Makefile.in, man/dpasswd.8, man/pwauth.8, man/Makefile.am, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, man/faillog.5, man/faillog.8, man/gpasswd.1, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/login.1, man/login.access.5, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/newusers.8, man/passwd.1, man/passwd.5, man/porttime.5, man/pw_auth.3, man/pwck.8, man/pwconv.8, man/pwunconv.8, man/shadow.3, man/shadow.5, man/su.1, man/suauth.5, man/sulogin.8, man/useradd.8, man/userdel.8, man/usermod.8, Makefile.in, aclocal.m4, config.h.in, configure, install-sh, mkinstalldirs, stamp-h.in, Makefile.am, README, acconfig.h, configure.in, libmisc/Makefile.in, libmisc/Makefile.am, libmisc/addgrps.c:
+       * contrib/Makefile.in, contrib/Makefile.am, contrib/README, contrib/adduser.c, contrib/pwdauth.c, doc/ANNOUNCE, doc/CHANGES, doc/Makefile.in, doc/README.sun4, doc/automake-1.0.diff, doc/console.c.spec, doc/HOWTO, doc/LICENSE, doc/Makefile.am, doc/README, doc/README.limits, doc/README.linux, doc/WISHLIST, etc/Makefile.in, etc/Makefile.am, etc/login.access, etc/login.defs, etc/login.defs.linux, old/Makefile.in, src/patchlevel.h, src/pwconv5.c, src/scologin.c, src/chage.c, src/chfn.c, src/chsh.c, src/expiry.c, src/gpasswd.c, src/groups.c, src/grpconv.c, src/id.c, src/login.c, src/newgrp.c, src/passwd.c, src/pwconv.c, src/pwunconv.c, src/su.c, src/sulogin.c, lib/dialup.h, lib/grdbm.c, lib/grent.c, lib/gsdbm.c, lib/lastlog_.h, lib/md5.c, lib/md5.h, lib/md5crypt.c, lib/mkdir.c, lib/putgrent.c, lib/putpwent.c, lib/putspent.c, lib/pwdbm.c, lib/pwent.c, lib/rename.c, lib/rmdir.c, lib/shadow_.h, lib/spdbm.c, lib/strdup.c, lib/strstr.c, lib/defines.h, lib/faillog.h, lib/getdef.h, lib/groupio.h, lib/grpack.c, lib/gshadow_.h, lib/gspack.c, lib/port.h, lib/prototypes.h, lib/pwauth.h, lib/pwio.h, lib/pwpack.c, lib/rcsid.h, lib/sgetgrent.c, lib/sgetpwent.c, lib/sgetspent.c, lib/sgroupio.h, lib/shadow.c, lib/shadowio.c, lib/shadowio.h, lib/sppack.c, lib/utent.c, src/Makefile.in, src/dpasswd.c, src/Makefile.am, src/chpasswd.c, src/faillog.c, src/groupadd.c, src/groupdel.c, src/groupmod.c, src/grpck.c, src/lastlog.c, src/logoutd.c, src/mkpasswd.c, src/newusers.c, src/pwck.c, src/useradd.c, src/userdel.c, src/usermod.c, lib/Makefile.in, lib/dialchk.c, lib/dialup.c, lib/rad64.c, lib/Makefile.am, lib/commonio.c, lib/encrypt.c, lib/fputsx.c, lib/getdef.c, lib/getpass.c, lib/groupio.c, lib/gshadow.c, lib/lockpw.c, lib/port.c, lib/pwauth.c, lib/pwio.c, lib/sgroupio.c, libmisc/login_access.c, libmisc/login_desrpc.c, libmisc/login_krb.c, libmisc/suauth.c, libmisc/age.c, libmisc/basename.c, libmisc/chkname.c, libmisc/chowndir.c, libmisc/chowntty.c, libmisc/console.c, libmisc/copydir.c, libmisc/entry.c, libmisc/env.c, libmisc/failure.c, libmisc/fields.c, libmisc/hushed.c, libmisc/isexpired.c, libmisc/limits.c, libmisc/list.c, libmisc/log.c, libmisc/loginprompt.c, libmisc/mail.c, libmisc/motd.c, libmisc/obscure.c, libmisc/pwd2spwd.c, libmisc/rlogin.c, libmisc/salt.c, libmisc/setugid.c, libmisc/setup.c, libmisc/setupenv.c, libmisc/shell.c, libmisc/strtoday.c, libmisc/sub.c, libmisc/sulog.c, libmisc/ttytype.c, libmisc/tz.c, libmisc/ulimit.c, libmisc/utmp.c, libmisc/valid.c, libmisc/xmalloc.c, man/Makefile.in, man/dpasswd.8, man/pwauth.8, man/Makefile.am, man/chage.1, man/chfn.1, man/chpasswd.8, man/chsh.1, man/faillog.5, man/faillog.8, man/gpasswd.1, man/groupadd.8, man/groupdel.8, man/groupmod.8, man/groups.1, man/grpck.8, man/id.1, man/lastlog.8, man/login.1, man/login.access.5, man/login.defs.5, man/logoutd.8, man/mkpasswd.8, man/newgrp.1, man/newusers.8, man/passwd.1, man/passwd.5, man/porttime.5, man/pw_auth.3, man/pwck.8, man/pwconv.8, man/pwunconv.8, man/shadow.3, man/shadow.5, man/su.1, man/suauth.5, man/sulogin.8, man/useradd.8, man/userdel.8, man/usermod.8, Makefile.in, aclocal.m4, config.h.in, configure, install-sh, mkinstalldirs, stamp-h.in, Makefile.am, README, acconfig.h, configure.in, libmisc/Makefile.in, libmisc/Makefile.am, libmisc/addgrps.c:
        New file.
 
index 55744a9e7e13a72ef85b14b5fde8380141863b8c..513096cfff500a817afd449a06def03e7c676524 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -107,17 +107,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -270,7 +269,13 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -282,7 +287,7 @@ $(RECURSIVE_TARGETS):
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -290,7 +295,13 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        case "$@" in \
          distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -311,7 +322,7 @@ maintainer-clean-recursive:
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
diff --git a/NEWS b/NEWS
index b562efdaab28a6d321e9fa4fdbf8001a0f47de89..cfd5d067e342a85d185c23f168cd3ea64e3c07c1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,62 @@
-$Id: NEWS,v 1.104 2005/01/21 20:55:46 kloczek Exp $
+$Id: NEWS,v 1.147 2005/04/25 10:39:48 kloczek Exp $
+
+shadow-4.0.7 -> shadow-4.0.8
+
+*** general:
+- remove not working OPIE and SKEY support,
+- chage, useradd, usermod: reduce multiple OPENLOG() calls,
+- passwd: fix #61313 Debian bug: "passwd -S root" (as a normal user) should not
+  display "You may not change the password for root.",
+- vipw: fixed race condition (Debian #242407 bug; fix by Alexander Gattin
+  <arg@online.com.ua>),
+- configure.in: add using AC_GNU_SOURCE macro for kill compilation warnings about
+  implicit declaration of function `fseeko',
+- faillog: changed faillog record display format for allow fit in 80 columns all
+  faillog atributies,
+- removed NDBM code (unused),
+- fixed use of SU_WHEEL_ONLY in su. Now su realy is avalaible for wheel group
+  members. Thanks to Mike Frysinger <vapier@gentoo.org> for report:
+  http://bugs.gentoo.org/show_bug.cgi?id=80345
+- drop never finished kerberos and des_rpc support (for kerberos support back firs
+  must be prepared modularization),
+- fixed UTMP path detection (by Kelledin <kelledin@users.sf.net>),
+- useradd: rewrited group count to dynamic (by John Newbigin
+  <jnewbigin@ict.swin.edu.au>),
+- login: fixed create lastlog entry fo users never loged in on non-PAM
+  variant of login (fix by <oracular@ziplip.com>),
+- remove handle login.defs::NOLOGIN_STR (never used),
+- useradd: fixes a potential security problem when mailbox is created in
+  useradd.
+  Patch and comment by Koblinger Egmont <egmont@uhulinux.hu>:
+  Only two arguments are passed to the open() call though it expects three
+  because O_CREAT is present. Hence the permission of the file first becomes
+  some random garbage found on the stack, and an attacker can perhaps open
+  this file and hold it open for reading or writing before the proper
+  fchmod() is executed. (Actually, we could also pass the final "mode" to
+  the open() call and then save the consequent fchmod().)
+- SELinux changes: added changes in chage, chfn, chsh, passwd for allow
+  construct more grained user password/accuunt properties on SELinux
+  policies level. Patch originally based on RH changes (submited by Chris
+  PeBenito <pebenito@gentoo.org>),
+- added SELinux changes: in libmisc/copydir.c (based on Fedora patch),
+- updated translations: cs, da, es, eu, fi, fr, it, ko, nl, pl, pt, sk, uk,
+- added new translations: tl,
+- reindent all source code using -l80,
+*** documentation:
+- it man pages (by Danilo Piazzalunga <danilopiazza@libero.it>):
+-- updated: chfn.1, chsh.1, groups.1, grpck.8, grpconv.8,
+   grpunconv.8, id.1, lastlog.8, login.1, newgrp.1, pwunconv.8, shadow.5,
+   vigr.8, vipw.8,
+-- new: chage.1, chpasswd.8, expiry.1, faillog.5, faillog.8, getspnam.3,
+   logoutd.8, porttime.5, pwck.8, shadow.3, shadowconfig.8, su.1,
+- passwd(1): fix #160477 Debian bug: improve -S output description,
+- newgrp(1): fix #251926, #166173, #113191 Debian bugs: explain why editing /etc/group   
+  (without gshadow) doesn't permit to use newgrp,
+- newgrp(1): newgrp uses /bin/sh (not bash),
+- faillog(8): updated after rewrite faillog command for use getopt_long(),
+- login(1): removed fragment about abilities pass enviroment variables in login prompt,
+- gshadow(5): new file (by Nicolas Nicolas François <nicolas.francois@centraliens.net>),
+- usermod(8): fixed #302388 Debian bug: added separated -o option description,
 
 shadow-4.0.6 -> shadow-4.0.7
 
@@ -10,7 +68,7 @@ shadow-4.0.6 -> shadow-4.0.7
 - added ro, sq translations (from Debian resources),
 - fixed large file support in lastlog and faillog:
 -- added AC_SYS_LARGEFILE macro to autoconf,
--- use fseeko() instead fseek() and remove casting file ofsets to unsigned
+-- use fseeko() instead fseek() and remove casting file offsets to unsigned
    long.
 - lastlog:
 -- rewrited source code using the same style as in chpasswd.c,
diff --git a/TODO b/TODO
index efa6a7a3e2ab52f9abf91d3ed2c6571776ff2d0e..bb35d6f83746a53b933808bb45646401c831e951 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,9 +5,9 @@
 ALL:
 - move base passwd/shadow/group/gshadow operation to module for allow write
   diffrent backend modules for db, NIS, LDAP and others. Default backend it
-  will be choose depending on /etc/nsswitch.conf and allow overwride this by
-  -r <repository> options (where the <repository> can be file, db, nis
-  nisplus, ldap .. like on /etc/nsswitch.conf in service column).
+  will be goot if will be choosen depending on /etc/nsswitch.conf and allow
+  overwride this by -r <repository> options (where the <repository> can be
+  file, db, nis nisplus, ldap .. like on /etc/nsswitch.conf in service column).
   passwd have old piece of code with handling -r option and it will be good
   finish this and propagate on other shadow tools for allow operate on other
   user databases by well known tools.
index bd30d3080ff3bc01e1bbb048c7bc227e2043c143..287770e15472cba528fa1a4c3d351e8e60b688db 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-#                                                        -*- Autoconf -*-
-# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
-# Generated from amversion.in; do not edit by hand.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+# gettext.m4 serial 36 (gettext-0.14.3)
+dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
 
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-        [AM_AUTOMAKE_VERSION([1.9.4])])
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-# AM_AUX_DIR_EXPAND
+dnl Macro to add for using GNU gettext.
 
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl    default (if it is not specified or empty) is 'no-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl    implementations (in libc or libintl) without the ngettext() function
+dnl    will be ignored.  If NEEDSYMBOL is specified and is
+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries.  If empty,
+dnl    the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl    and used.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl    Catalog format: none
+dnl    Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+  dnl Argument checking.
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+  define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
+  define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
+  ifelse(gt_included_intl, yes, [
+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
+  ])
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
+  dnl Ideally we would do this search only after the
+  dnl      if test "$USE_NLS" = "yes"; then
+  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+  dnl the configure script would need to contain the same shell code
+  dnl again, outside any 'if'. There are two solutions:
+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+  dnl documented, we avoid it.
+  ifelse(gt_included_intl, yes, , [
+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+  ])
 
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory.  The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run.  This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-#    fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-#    fails if $ac_aux_dir is absolute,
-#    fails when called from a subdirectory in a VPATH build with
-#          a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
-#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-#   MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH.  The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
+  dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+  gt_INTL_MACOSX
 
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
+  dnl Set USE_NLS.
+  AM_NLS
 
-# AM_CONDITIONAL                                              -*- Autoconf -*-
+  ifelse(gt_included_intl, yes, [
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
+  ])
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+    ifelse(gt_included_intl, yes, [
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+    ])
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If GNU gettext is available we use this.  Else we have
+        dnl to fall back to GNU NLS library.
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+        dnl Add a version number to the cache macros.
+        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+         [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+            [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            gt_cv_func_gnugettext_libc=yes,
+            gt_cv_func_gnugettext_libc=no)])
 
-# serial 6
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
-  $1_TRUE=
-  $1_FALSE='#'
-else
-  $1_TRUE='#'
-  $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
-  AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# serial 7                                             -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery.  Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
+          ifelse(gt_included_intl, yes, , [
+            AM_ICONV_LINK
+          ])
+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+          dnl even if libiconv doesn't exist.
+          AC_LIB_LINKFLAGS_BODY([intl])
+          AC_CACHE_CHECK([for GNU gettext in libintl],
+            gt_cv_func_gnugettext_libintl,
+           [gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+            dnl Now see whether libintl exists and does not depend on libiconv.
+            AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+              [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+              gt_cv_func_gnugettext_libintl=yes,
+              gt_cv_func_gnugettext_libintl=no)
+            dnl Now see whether libintl exists and depends on libiconv.
+            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+                [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+               [LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext_libintl=yes
+               ])
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"])
+        fi
 
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if test "$gt_cv_func_gnugettext_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+          dnl Reset the values set by searching for libintl.
+          LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
 
+    ifelse(gt_included_intl, yes, [
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+          dnl GNU gettext is not found in the C library.
+          dnl Fall back on included GNU gettext library.
+          nls_cv_use_gnu_gettext=yes
+        fi
+      fi
 
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+      CATOBJEXT=
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions to use GNU gettext tools.
+        CATOBJEXT=.gmo
+      fi
+    ])
 
-AC_CACHE_CHECK([dependency style of $depcc],
-               [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Some extra flags are needed during linking.
+        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
 
-  am_cv_$1_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [Define to 1 if translation of program messages to the user's native language
+   is requested.])
+    else
+      USE_NLS=no
+    fi
   fi
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    case $depmode in
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
+  AC_MSG_CHECKING([whether to use NLS])
+  AC_MSG_RESULT([$USE_NLS])
+  if test "$USE_NLS" = "yes"; then
+    AC_MSG_CHECKING([where the gettext function comes from])
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        gt_source="external libintl"
       else
-       break
-      fi
-      ;;
-    none) break ;;
-    esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
-    if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_$1_dependencies_compiler_type=$depmode
-        break
+        gt_source="libc"
       fi
+    else
+      gt_source="included intl directory"
     fi
-  done
+    AC_MSG_RESULT([$gt_source])
+  fi
 
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
+  if test "$USE_NLS" = "yes"; then
 
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        AC_MSG_CHECKING([how to link with libintl])
+        AC_MSG_RESULT([$LIBINTL])
+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+      fi
 
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
+      dnl For backward compatibility. Some packages may be using this.
+      AC_DEFINE(HAVE_GETTEXT, 1,
+       [Define if the GNU gettext() function is already present or preinstalled.])
+      AC_DEFINE(HAVE_DCGETTEXT, 1,
+       [Define if the GNU dcgettext() function is already present or preinstalled.])
+    fi
 
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
 
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
-])
+  ifelse(gt_included_intl, yes, [
+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+    dnl to 'yes' because some of the testsuite requires it.
+    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
 
-# Generate code to set up dependency tracking.   -*- Autoconf -*-
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATOBJEXT)
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-#   Free Software Foundation, Inc.
+    dnl For backward compatibility. Some configure.ins may be using this.
+    nls_cv_header_intl=
+    nls_cv_header_libgt=
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+    dnl For backward compatibility. Some Makefiles may be using this.
+    DATADIRNAME=share
+    AC_SUBST(DATADIRNAME)
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INSTOBJEXT=.mo
+    AC_SUBST(INSTOBJEXT)
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+    dnl For backward compatibility. Some Makefiles may be using this.
+    GENCAT=gencat
+    AC_SUBST(GENCAT)
 
-#serial 2
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INTLOBJS=
+    if test "$USE_INCLUDED_LIBINTL" = yes; then
+      INTLOBJS="\$(GETTOBJS)"
+    fi
+    AC_SUBST(INTLOBJS)
 
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`AS_DIRNAME("$mf")`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`AS_DIRNAME(["$file"])`
-    AS_MKDIR_P([$dirpart/$fdir])
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
-  done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+    dnl Enable libtool support if the surrounding package wishes it.
+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+  ])
 
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INTLLIBS="$LIBINTL"
+  AC_SUBST(INTLLIBS)
 
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
-     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+  dnl Make all documented variables known to autoconf.
+  AC_SUBST(LIBINTL)
+  AC_SUBST(LTLIBINTL)
+  AC_SUBST(POSUB)
 ])
 
-# gettext.m4 serial 28 (gettext-0.13)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Macro to add for using GNU gettext.
 
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl    default (if it is not specified or empty) is 'no-libtool'.
-dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl    $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl    implementations (in libc or libintl) without the ngettext() function
-dnl    will be ignored.  If NEEDSYMBOL is specified and is
-dnl    'need-formatstring-macros', then GNU gettext implementations that don't
-dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries.  If empty,
-dnl    the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl    and used.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl    Catalog format: none
-dnl    Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
 [
-  dnl Argument checking.
-  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
-    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
-  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
-    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
-  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
-  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+  AC_REQUIRE([gt_GLIBC2])dnl
+  AC_REQUIRE([AC_PROG_RANLIB])dnl
+  AC_REQUIRE([AC_ISC_POSIX])dnl
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_C_CONST])dnl
+  AC_REQUIRE([bh_C_SIGNED])dnl
+  AC_REQUIRE([AC_C_INLINE])dnl
+  AC_REQUIRE([AC_TYPE_OFF_T])dnl
+  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
+  AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
+  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+  AC_REQUIRE([gt_TYPE_WINT_T])dnl
+  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+  AC_REQUIRE([gt_TYPE_INTMAX_T])
+  AC_REQUIRE([gt_PRINTF_POSIX])
+  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+  AC_REQUIRE([AC_FUNC_MMAP])dnl
+  AC_REQUIRE([gl_GLIBC21])dnl
+  AC_REQUIRE([gt_INTDIV0])dnl
+  AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+  AC_REQUIRE([gt_INTTYPES_PRI])dnl
+  AC_REQUIRE([gl_XSIZE])dnl
+  AC_REQUIRE([gt_INTL_MACOSX])dnl
 
-  AC_REQUIRE([AM_PO_SUBDIRS])dnl
-  ifelse(gt_included_intl, yes, [
-    AC_REQUIRE([AM_INTL_SUBDIR])dnl
-  ])
+  AC_CHECK_TYPE([ptrdiff_t], ,
+    [AC_DEFINE([ptrdiff_t], [long],
+       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+    ])
+  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+  AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
+__fsetlocking])
 
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
+  dnl Use the _snprintf function only if it is declared (because on NetBSD it
+  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+  gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
 
-  dnl Sometimes libintl requires libiconv, so first search for libiconv.
-  dnl Ideally we would do this search only after the
-  dnl      if test "$USE_NLS" = "yes"; then
-  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
-  dnl the configure script would need to contain the same shell code
-  dnl again, outside any 'if'. There are two solutions:
-  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
-  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
-  dnl documented, we avoid it.
-  ifelse(gt_included_intl, yes, , [
-    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-  ])
+  dnl Use the *_unlocked functions only if they are declared.
+  dnl (because some of them were defined without being declared in Solaris
+  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+  dnl on Solaris 2.5.1 to run on Solaris 2.6).
+  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+  gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
 
-  dnl Set USE_NLS.
-  AM_NLS
+  case $gt_cv_func_printf_posix in
+    *yes) HAVE_POSIX_PRINTF=1 ;;
+    *) HAVE_POSIX_PRINTF=0 ;;
+  esac
+  AC_SUBST([HAVE_POSIX_PRINTF])
+  if test "$ac_cv_func_asprintf" = yes; then
+    HAVE_ASPRINTF=1
+  else
+    HAVE_ASPRINTF=0
+  fi
+  AC_SUBST([HAVE_ASPRINTF])
+  if test "$ac_cv_func_snprintf" = yes; then
+    HAVE_SNPRINTF=1
+  else
+    HAVE_SNPRINTF=0
+  fi
+  AC_SUBST([HAVE_SNPRINTF])
+  if test "$ac_cv_func_wprintf" = yes; then
+    HAVE_WPRINTF=1
+  else
+    HAVE_WPRINTF=0
+  fi
+  AC_SUBST([HAVE_WPRINTF])
 
-  ifelse(gt_included_intl, yes, [
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-  ])
-  LIBINTL=
-  LTLIBINTL=
-  POSUB=
+  AM_ICONV
+  AM_LANGINFO_CODESET
+  if test $ac_cv_header_locale_h = yes; then
+    gt_LC_MESSAGES
+  fi
 
-  dnl If we use NLS figure out what method
-  if test "$USE_NLS" = "yes"; then
-    gt_use_preinstalled_gnugettext=no
-    ifelse(gt_included_intl, yes, [
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+  if test -n "$INTL_MACOSX_LIBS"; then
+    CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+  fi
 
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-    ])
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If GNU gettext is available we use this.  Else we have
-        dnl to fall back to GNU NLS library.
-
-        dnl Add a version number to the cache macros.
-        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
-        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
-        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
-        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-         [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
-            [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
-            gt_cv_func_gnugettext_libc=yes,
-            gt_cv_func_gnugettext_libc=no)])
-
-        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-          dnl Sometimes libintl requires libiconv, so first search for libiconv.
-          ifelse(gt_included_intl, yes, , [
-            AM_ICONV_LINK
-          ])
-          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
-          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
-          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
-          dnl even if libiconv doesn't exist.
-          AC_LIB_LINKFLAGS_BODY([intl])
-          AC_CACHE_CHECK([for GNU gettext in libintl],
-            gt_cv_func_gnugettext_libintl,
-           [gt_save_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $INCINTL"
-            gt_save_LIBS="$LIBS"
-            LIBS="$LIBS $LIBINTL"
-            dnl Now see whether libintl exists and does not depend on libiconv.
-            AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
-              [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-              gt_cv_func_gnugettext_libintl=yes,
-              gt_cv_func_gnugettext_libintl=no)
-            dnl Now see whether libintl exists and depends on libiconv.
-            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
-              LIBS="$LIBS $LIBICONV"
-              AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+  dnl because plural.y uses bison specific features. It requires at least
+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+  dnl compile.
+  dnl bison is only needed for the maintainer (who touches plural.y). But in
+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+  dnl the rule in general Makefile. Now, some people carelessly touch the
+  dnl files or have a broken "make" program, hence the plural.c rule will
+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+  dnl present or too old.
+  AC_CHECK_PROGS([INTLBISON], [bison])
+  if test -z "$INTLBISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
 changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
-                [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-               [LIBINTL="$LIBINTL $LIBICONV"
-                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                gt_cv_func_gnugettext_libintl=yes
-               ])
-            fi
-            CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"])
-        fi
-
-        dnl If an already present or preinstalled GNU gettext() is found,
-        dnl use it.  But if this macro is used in GNU gettext, and GNU
-        dnl gettext is already preinstalled in libintl, we update this
-        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-        if test "$gt_cv_func_gnugettext_libc" = "yes" \
-           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-                && test "$PACKAGE" != gettext-runtime \
-                && test "$PACKAGE" != gettext-tools; }; then
-          gt_use_preinstalled_gnugettext=yes
-        else
-          dnl Reset the values set by searching for libintl.
-          LIBINTL=
-          LTLIBINTL=
-          INCINTL=
-        fi
-
-    ifelse(gt_included_intl, yes, [
-        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-          dnl GNU gettext is not found in the C library.
-          dnl Fall back on included GNU gettext library.
-          nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        BUILD_INCLUDED_LIBINTL=yes
-        USE_INCLUDED_LIBINTL=yes
-        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
-        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
-        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
-
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions to use GNU gettext tools.
-        CATOBJEXT=.gmo
-      fi
-    ])
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-       || test "$nls_cv_use_gnu_gettext" = "yes"; then
-      AC_DEFINE(ENABLE_NLS, 1,
-        [Define to 1 if translation of program messages to the user's native language
-   is requested.])
-    else
-      USE_NLS=no
-    fi
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
   fi
-
-  AC_MSG_CHECKING([whether to use NLS])
-  AC_MSG_RESULT([$USE_NLS])
-  if test "$USE_NLS" = "yes"; then
-    AC_MSG_CHECKING([where the gettext function comes from])
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-        gt_source="external libintl"
-      else
-        gt_source="libc"
-      fi
-    else
-      gt_source="included intl directory"
-    fi
-    AC_MSG_RESULT([$gt_source])
+  if test $ac_verc_fail = yes; then
+    INTLBISON=:
   fi
+])
 
-  if test "$USE_NLS" = "yes"; then
 
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-        AC_MSG_CHECKING([how to link with libintl])
-        AC_MSG_RESULT([$LIBINTL])
-        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
-      fi
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+  dnl Check for API introduced in MacOS X 10.2.
+  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+    gt_cv_func_CFPreferencesCopyAppValue,
+    [gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     AC_TRY_LINK([#include <CFPreferences.h>],
+       [CFPreferencesCopyAppValue(NULL, NULL)],
+       [gt_cv_func_CFPreferencesCopyAppValue=yes],
+       [gt_cv_func_CFPreferencesCopyAppValue=no])
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+  fi
+  dnl Check for API introduced in MacOS X 10.3.
+  AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+    [gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     AC_TRY_LINK([#include <CFLocale.h>], [CFLocaleCopyCurrent();],
+       [gt_cv_func_CFLocaleCopyCurrent=yes],
+       [gt_cv_func_CFLocaleCopyCurrent=no])
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"])
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+  AC_SUBST([INTL_MACOSX_LIBS])
+])
 
-      dnl For backward compatibility. Some packages may be using this.
-      AC_DEFINE(HAVE_GETTEXT, 1,
-       [Define if the GNU gettext() function is already present or preinstalled.])
-      AC_DEFINE(HAVE_DCGETTEXT, 1,
-       [Define if the GNU dcgettext() function is already present or preinstalled.])
-    fi
 
-    dnl We need to process the po/ directory.
-    POSUB=po
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+  AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+    [AC_TRY_COMPILE([$2], [
+#ifndef $1
+  char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+  if test $ac_cv_have_decl_$1 = yes; then
+    gt_value=1
+  else
+    gt_value=0
   fi
+  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
 
-  ifelse(gt_included_intl, yes, [
-    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-    dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
 
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATOBJEXT)
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
 
-    dnl For backward compatibility. Some configure.ins may be using this.
-    nls_cv_header_intl=
-    nls_cv_header_libgt=
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
-    dnl For backward compatibility. Some Makefiles may be using this.
-    DATADIRNAME=share
-    AC_SUBST(DATADIRNAME)
+dnl From Bruno Haible.
 
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INSTOBJEXT=.mo
-    AC_SUBST(INSTOBJEXT)
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
 
-    dnl For backward compatibility. Some Makefiles may be using this.
-    GENCAT=gencat
-    AC_SUBST(GENCAT)
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([iconv])
+])
 
-    dnl For backward compatibility. Some Makefiles may be using this.
-    if test "$USE_INCLUDED_LIBINTL" = yes; then
-      INTLOBJS="\$(GETTOBJS)"
-    fi
-    AC_SUBST(INTLOBJS)
-
-    dnl Enable libtool support if the surrounding package wishes it.
-    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
-  ])
-
-  dnl For backward compatibility. Some Makefiles may be using this.
-  INTLLIBS="$LIBINTL"
-  AC_SUBST(INTLLIBS)
-
-  dnl Make all documented variables known to autoconf.
-  AC_SUBST(LIBINTL)
-  AC_SUBST(LTLIBINTL)
-  AC_SUBST(POSUB)
-])
-
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-  AC_REQUIRE([AC_PROG_RANLIB])dnl
-  AC_REQUIRE([AC_ISC_POSIX])dnl
-  AC_REQUIRE([AC_HEADER_STDC])dnl
-  AC_REQUIRE([AC_C_CONST])dnl
-  AC_REQUIRE([bh_C_SIGNED])dnl
-  AC_REQUIRE([AC_C_INLINE])dnl
-  AC_REQUIRE([AC_TYPE_OFF_T])dnl
-  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
-  AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
-  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
-  AC_REQUIRE([gt_TYPE_WINT_T])dnl
-  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-  AC_REQUIRE([gt_TYPE_INTMAX_T])
-  AC_REQUIRE([gt_PRINTF_POSIX])
-  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-  AC_REQUIRE([AC_FUNC_MMAP])dnl
-  AC_REQUIRE([jm_GLIBC21])dnl
-  AC_REQUIRE([gt_INTDIV0])dnl
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
-  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
-  AC_REQUIRE([gt_INTTYPES_PRI])dnl
-  AC_REQUIRE([gl_XSIZE])dnl
-
-  AC_CHECK_TYPE([ptrdiff_t], ,
-    [AC_DEFINE([ptrdiff_t], [long],
-       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
-    ])
-  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
-  AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
-mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
-strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
-  dnl Use the _snprintf function only if it is declared (because on NetBSD it
-  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-  gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
-  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-
-  dnl Use the *_unlocked functions only if they are declared.
-  dnl (because some of them were defined without being declared in Solaris
-  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
-  dnl on Solaris 2.5.1 to run on Solaris 2.6).
-  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
-  gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
-  gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
-  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
-
-  case $gt_cv_func_printf_posix in
-    *yes) HAVE_POSIX_PRINTF=1 ;;
-    *) HAVE_POSIX_PRINTF=0 ;;
-  esac
-  AC_SUBST([HAVE_POSIX_PRINTF])
-  if test "$ac_cv_func_asprintf" = yes; then
-    HAVE_ASPRINTF=1
-  else
-    HAVE_ASPRINTF=0
-  fi
-  AC_SUBST([HAVE_ASPRINTF])
-  if test "$ac_cv_func_snprintf" = yes; then
-    HAVE_SNPRINTF=1
-  else
-    HAVE_SNPRINTF=0
-  fi
-  AC_SUBST([HAVE_SNPRINTF])
-  if test "$ac_cv_func_wprintf" = yes; then
-    HAVE_WPRINTF=1
-  else
-    HAVE_WPRINTF=0
-  fi
-  AC_SUBST([HAVE_WPRINTF])
-
-  AM_ICONV
-  AM_LANGINFO_CODESET
-  if test $ac_cv_header_locale_h = yes; then
-    AM_LC_MESSAGES
-  fi
-
-  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-  dnl because plural.y uses bison specific features. It requires at least
-  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-  dnl compile.
-  dnl bison is only needed for the maintainer (who touches plural.y). But in
-  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-  dnl the rule in general Makefile. Now, some people carelessly touch the
-  dnl files or have a broken "make" program, hence the plural.c rule will
-  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-  dnl present or too old.
-  AC_CHECK_PROGS([INTLBISON], [bison])
-  if test -z "$INTLBISON"; then
-    ac_verc_fail=yes
-  else
-    dnl Found it, now check the version.
-    AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
-    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-    case $ac_prog_version in
-      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
-         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-    esac
-    AC_MSG_RESULT([$ac_prog_version])
-  fi
-  if test $ac_verc_fail = yes; then
-    INTLBISON=:
-  fi
-])
-
-
-dnl gt_CHECK_DECL(FUNC, INCLUDES)
-dnl Check whether a function is declared.
-AC_DEFUN([gt_CHECK_DECL],
-[
-  AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
-    [AC_TRY_COMPILE([$2], [
-#ifndef $1
-  char *p = (char *) $1;
-#endif
-], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
-  if test $ac_cv_have_decl_$1 = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
-    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-
-  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-  dnl accordingly.
-  AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
-  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-  dnl those with the standalone portable GNU libiconv installed).
+AC_DEFUN([AM_ICONV_LINK],
+[
+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+  dnl those with the standalone portable GNU libiconv installed).
 
   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
   dnl accordingly.
@@ -988,234 +663,48 @@ size_t iconv();
   fi
 ])
 
-# Do all the work for Automake.                            -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
-# serial 11
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
 
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out.  PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition.  After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
 
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
   else
-    CYGPATH_W=echo
+    PATH_SEPARATOR=:
   fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-                            [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
-                  [_AM_DEPENDENCIES(CC)],
-                  [define([AC_PROG_CC],
-                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                  [_AM_DEPENDENCIES(CXX)],
-                  [define([AC_PROG_CXX],
-                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated.  The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $1 | $1:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-#                                                          -*- Autoconf -*-
-# Copyright (C) 2003  Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot.  For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# lib-ld.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
-*)
-  acl_cv_prog_gnu_ld=no ;;
-esac])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+  rm -f conf$$.sh
 fi
 ac_prog=ld
 if test "$GCC" = yes; then
@@ -1285,16 +774,16 @@ test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
 AC_LIB_PROG_LD_GNU
 ])
 
-# lib-link.m4 serial 4 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# lib-link.m4 serial 6 (gettext-0.14.3)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
+AC_PREREQ(2.50)
+
 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
 dnl the libraries corresponding to explicit and implicit dependencies.
 dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
@@ -1382,6 +871,8 @@ dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
 dnl hardcode_direct, hardcode_minus_L.
 AC_DEFUN([AC_LIB_RPATH],
 [
+  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
@@ -1637,7 +1128,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                 if test "X$additional_includedir" = "X/usr/local/include"; then
                   if test -n "$GCC"; then
                     case $host_os in
-                      linux*) haveit=yes;;
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                     esac
                   fi
                 fi
@@ -1686,7 +1177,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                       if test "X$additional_libdir" = "X/usr/local/lib"; then
                         if test -n "$GCC"; then
                           case $host_os in
-                            linux*) haveit=yes;;
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                           esac
                         fi
                       fi
@@ -1837,13 +1328,11 @@ AC_DEFUN([AC_LIB_APPENDTOVAR],
   done
 ])
 
-# lib-prefix.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# lib-prefix.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
@@ -1910,7 +1399,7 @@ AC_DEFUN([AC_LIB_PREFIX],
         if test "X$additional_includedir" = "X/usr/local/include"; then
           if test -n "$GCC"; then
             case $host_os in
-              linux*) haveit=yes;;
+              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
             esac
           fi
         fi
@@ -2651,7 +2140,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* )
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -2663,8 +2152,20 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     # And add a safety zone
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
     ;;
-
- *)
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    # 
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  *)
     # If test is not a shell built-in, we'll probably end up computing a
     # maximum length that is only half of the actual maximum length, but
     # we can't tell.
@@ -3095,21 +2596,6 @@ if test "$GCC" = yes; then
   else
     sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
-  # sanitize
-  new_sys_lib_search_path_spec=
-  for d in $sys_lib_search_path_spec ; do
-    # check if exists
-    if test -d $d -a -x $d ; then
-      # normalize
-      new_d=$(cd $d ; pwd)
-      # uniq
-      if ! echo "$new_sys_lib_search_path_spec" | grep -q -F -e " $new_d " ; then
-        new_sys_lib_search_path_spec="$new_sys_lib_search_path_spec $new_d "
-      fi
-    fi
-  done
-  # compress spaces
-  sys_lib_search_path_spec=`echo "$new_sys_lib_search_path_spec" | $SED -e 's/^ *//g;s/ \+/ /g;s/ $//g'`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -3244,7 +2730,7 @@ cygwin* | mingw* | pw32*)
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
     ;;
@@ -3302,7 +2788,9 @@ kfreebsd*-gnu)
   dynamic_linker='GNU ld.so'
   ;;
 
-freebsd*)
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
   version_type=freebsd-$objformat
   case $version_type in
@@ -3321,7 +2809,7 @@ freebsd*)
   freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
@@ -3445,10 +2933,27 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+    if AC_TRY_EVAL(ac_compile); then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -3677,7 +3182,7 @@ if test -f "$ltmain" && test -n "$tagnames"; then
       case $tagname in
       CXX)
        if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-           ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 
+           ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
            (test "X$CXX" != "Xg++"))) ; then
          AC_LIBTOOL_LANG_CXX_CONFIG
        else
@@ -4148,13 +3653,13 @@ darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | kfreebsd*-gnu)
+freebsd* | kfreebsd*-gnu | dragonfly*)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
       lt_cv_file_magic_cmd=/usr/bin/file
       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
       ;;
@@ -4423,7 +3928,7 @@ AC_DEFUN([_LT_AC_PROG_CXXCPP],
 [
 AC_REQUIRE([AC_PROG_CXX])
 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
     (test "X$CXX" != "Xg++"))) ; then
   AC_PROG_CXXCPP
 fi
@@ -4760,7 +4265,7 @@ case $host_os in
     _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
 
     if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
       # We only want to do this on AIX 4.2 and lower, the check
       # below for broken collect2 doesn't work under 4.3+
        collect2name=`${CC} -print-prog-name=collect2`
@@ -4781,6 +4286,9 @@ case $host_os in
        fi
       esac
       shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+       shared_flag="$shared_flag "'${wl}-G'
+      fi
     else
       # not using gcc
       if test "$host_cpu" = ia64; then
@@ -4944,14 +4452,14 @@ case $host_os in
        ;;
     esac
     ;;
-  freebsd[12]*)
+  freebsd[[12]]*)
     # C++ shared libraries reported to be fairly broken before switch to ELF
     _LT_AC_TAGVAR(ld_shlibs, $1)=no
     ;;
   freebsd-elf*)
     _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
     ;;
-  freebsd* | kfreebsd*-gnu)
+  freebsd* | kfreebsd*-gnu | dragonfly*)
     # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
     # conventions
     _LT_AC_TAGVAR(ld_shlibs, $1)=yes
@@ -4982,7 +4490,7 @@ case $host_os in
       # explicitly linking system object files so we need to strip them
       # from the output so that they don't get included in the library
       # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
       ;;
     *)
       if test "$GXX" = yes; then
@@ -5140,8 +4648,12 @@ case $host_os in
          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
          ;;
        *)  # Version 8.0 or newer
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+         tmp_idyn=
+         case $host_cpu in
+           ia64*) tmp_idyn=' -i_dynamic';;
+         esac
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
          ;;
        esac
        _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -5149,6 +4661,14 @@ case $host_os in
        _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
        _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
        ;;
+      pgCC)
+        # Portland Group C++ compiler
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+        ;;
       cxx)
        # Compaq C++
        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
@@ -5387,7 +4907,7 @@ case $host_os in
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
        _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
        case $host_os in
-         solaris2.[0-5] | solaris2.[0-5].*) ;;
+         solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
          *)
            # The C++ compiler is used as linker so we must use $wl
            # flag to pass the commands to the underlying system
@@ -5764,7 +5284,7 @@ _LT_AC_TAGVAR(objext, $1)=$objext
 lt_simple_compile_test_code="class foo {}\n"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 _LT_AC_SYS_COMPILER
@@ -6006,6 +5526,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -6356,9 +5882,6 @@ symcode='[[BCDEGRST]]'
 # Regexp to match symbols that can be accessed directly from C.
 sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
 
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
 # Transform an extracted symbol line into a proper C declaration
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
 
@@ -6418,8 +5941,11 @@ esac
 # Try without a prefix undercore, then with it.
 for ac_symprfx in "" "_"; do
 
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
   # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6637,7 +6163,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
            ;;
        esac
        ;;
-      freebsd* | kfreebsd*-gnu)
+      freebsd* | kfreebsd*-gnu | dragonfly*)
        # FreeBSD uses GNU C++
        ;;
       hpux9* | hpux10* | hpux11*)
@@ -6683,12 +6209,18 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
            _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
            _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
            ;;
-         icpc)
+         icpc* | ecpc*)
            # Intel C++
            _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
            ;;
+         pgCC)
+           # Portland Group C++ compiler.
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
          cxx)
            # Compaq C++
            # Make sure the PIC flag is empty.  It appears that all Alpha
@@ -6922,12 +6454,19 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       ;;
 
     linux*)
-      case $CC in
+      case $cc_basename in
       icc* | ecc*)
        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
+      pgcc | pgf77 | pgf90)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
       ccc*)
         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
         # All Alpha code is PIC.
@@ -6972,6 +6511,11 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
       fi
       ;;
 
+    unicos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
     uts4*)
       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -7032,7 +6576,7 @@ ifelse([$1],[CXX],[
     _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
   ;;
   cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   *)
     _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -7145,7 +6689,7 @@ EOF
       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_AC_TAGVAR(always_export_symbols, $1)=no
       _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -7159,7 +6703,7 @@ EOF
        fi~
        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
       else
-       ld_shlibs=no
+       _LT_AC_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
@@ -7203,11 +6747,21 @@ EOF
 
   linux*)
     if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
+      tmp_addflag=
+      case $CC,$host_cpu in
+      pgf77* | pgf90* )                        # Portland Group f77 and f90 compilers
+        tmp_addflag=' -fpic' ;;
+      ecc*,ia64* | icc*,ia64*)         # Intel C compiler on ia64
+        tmp_addflag=' -i_dynamic' ;;
+      efc*,ia64* | ifort*,ia64*)       # Intel Fortran compiler on ia64
+        tmp_addflag=' -i_dynamic -nofor_main' ;;
+      ifc* | ifort*)                   # Intel Fortran compiler
+       tmp_addflag=' -nofor_main' ;;
+      esac
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       supports_anon_versioning=no
       case `$LD -v 2>/dev/null` in
-        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
         *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
         *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
         *\ 2.11.*) ;; # other 2.11 versions
@@ -7217,9 +6771,9 @@ EOF
         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 $echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
       else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)=$_LT_AC_TAGVAR(archive_cmds, $1)
       fi
     else
       _LT_AC_TAGVAR(ld_shlibs, $1)=no
@@ -7309,7 +6863,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
 
       if test "$GCC" = yes; then
-       case $host_os in aix4.[012]|aix4.[012].*)
+       case $host_os in aix4.[[012]]|aix4.[[012]].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
          collect2name=`${CC} -print-prog-name=collect2`
@@ -7330,6 +6884,9 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
          fi
        esac
        shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -7409,7 +6966,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
       # FIXME: Should let the user specify the lib program.
       _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
       _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
       ;;
 
@@ -7493,7 +7050,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
+    freebsd* | kfreebsd*-gnu | dragonfly*)
       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_AC_TAGVAR(hardcode_direct, $1)=yes
@@ -7682,7 +7239,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       case $host_os in
       solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
       *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
       esac
       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
       ;;
@@ -7943,7 +7500,7 @@ lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
 # along with /bin/sed that truncates output.
 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
+  test ! -f $lt_ac_sed && continue
   cat /dev/null > conftest.in
   lt_ac_count=0
   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
@@ -7973,343 +7530,78 @@ SED=$lt_cv_path_SED
 AC_MSG_RESULT([$SED])
 ])
 
-# Add --enable-maintainer-mode option to configure.
-# From Jim Meyering
+# nls.m4 serial 2 (gettext-0.14.3)
+dnl Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+AC_PREREQ(2.50)
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+AC_DEFUN([AM_NLS],
+[
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+])
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+  dnl Tell automake >= 1.10 to complain if mkinstalldirs is missing.
+  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([mkinstalldirs])])
+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+  dnl Try to locate it.
+  MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+  AC_SUBST(MKINSTALLDIRS)
+])
 
-# serial 3
+# po.m4 serial 7 (gettext-0.14.3)
+dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
 
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-  dnl maintainer-mode is disabled by default
-  AC_ARG_ENABLE(maintainer-mode,
-[  --enable-maintainer-mode  enable make rules and dependencies not useful
-                         (and sometimes confusing) to the casual installer],
-      USE_MAINTAINER_MODE=$enableval,
-      USE_MAINTAINER_MODE=no)
-  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
-  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
-  MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST(MAINT)dnl
-]
-)
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes.     -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo done
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-#  -*- Autoconf -*-
-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake.  There are at least two reasons why we must not
-# use `-m 0755':
-#   - it causes special bits like SGID to be ignored,
-#   - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out.  Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
-AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-fi
-AC_SUBST([mkdir_p])])
-
-# nls.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_DEFUN([AM_NLS],
-[
-  AC_MSG_CHECKING([whether NLS is requested])
-  dnl Default is enabled NLS
-  AC_ARG_ENABLE(nls,
-    [  --disable-nls           do not use Native Language Support],
-    USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT($USE_NLS)
-  AC_SUBST(USE_NLS)
-])
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
-  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-  dnl Try to locate it.
-  MKINSTALLDIRS=
-  if test -n "$ac_aux_dir"; then
-    case "$ac_aux_dir" in
-      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
-      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
-    esac
-  fi
-  if test -z "$MKINSTALLDIRS"; then
-    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-  fi
-  AC_SUBST(MKINSTALLDIRS)
-])
-
-# Helper functions for option handling.                    -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME.  Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# po.m4 serial 3 (gettext-0.14)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+AC_PREREQ(2.50)
 
 dnl Checks for all prerequisites of the po subdirectory.
 AC_DEFUN([AM_PO_SUBDIRS],
@@ -8326,7 +7618,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
   dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
   dnl The second test excludes FreeBSD msgfmt.
   AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
     :)
   AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
@@ -8335,7 +7627,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
   dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
   dnl The second test excludes FreeBSD xgettext.
   AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
      (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
     :)
   dnl Remove leftover from FreeBSD xgettext call.
@@ -8343,7 +7635,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   dnl Search for GNU msgmerge 0.11 or newer in the PATH.
   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
 
   dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
   dnl Test whether we really found GNU msgfmt.
@@ -8398,6 +7690,9 @@ AC_DEFUN([AM_PO_SUBDIRS],
           /*) top_srcdir="$ac_given_srcdir" ;;
           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
         esac
+        # Treat a directory as a PO directory if and only if it has a
+        # POTFILES.in file. This allows packages to have multiple PO
+        # directories under different names or in different locations.
         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
           rm -f "$ac_dir/POTFILES"
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
@@ -8411,7 +7706,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
             if test -n "$OBSOLETE_ALL_LINGUAS"; then
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
-            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             # Hide the ALL_LINGUAS assigment from automake.
             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
@@ -8590,7 +7885,7 @@ changequote([,])dnl
   fi
   if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
     # The LINGUAS file contains the set of available languages.
-    ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+    ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
     POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
   else
     # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
@@ -8640,7 +7935,7 @@ changequote([,])dnl
     QMFILES="$QMFILES $srcdirpre$lang.qm"
     frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
     MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
-    frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+    frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
     RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
   done
   # CATALOGS depends on both $ac_dir and the user's LINGUAS
@@ -8681,7 +7976,7 @@ changequote([,])dnl
       QTCATALOGS="$QTCATALOGS $lang.qm"
       frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
       TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
-      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
       CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
     done
   fi
@@ -8701,7 +7996,7 @@ EOF
   if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
     # Add dependencies that cannot be formulated as a simple suffix rule.
     for lang in $ALL_LINGUAS; do
-      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
       cat >> "$ac_file.tmp" <<EOF
 $frobbedlang/\$(DOMAIN).resources.dll: $lang.po
        @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
@@ -8717,118 +8012,797 @@ EOF
   mv "$ac_file.tmp" "$ac_file"
 ])
 
-# progtest.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
+# progtest.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+AC_PREREQ(2.50)
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  [[\\/]]* | ?:[[\\/]]*)
+    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in ifelse([$5], , $PATH, [$5]); do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+          if [$3]; then
+            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+    ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+        [AM_AUTOMAKE_VERSION([1.9.5])])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+                            [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode is disabled by default
+  AC_ARG_ENABLE(maintainer-mode,
+[  --enable-maintainer-mode  enable make rules and dependencies not useful
+                         (and sometimes confusing) to the casual installer],
+      USE_MAINTAINER_MODE=$enableval,
+      USE_MAINTAINER_MODE=no)
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes.                 -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+       @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# Search path for a program which passes the given test.
+# serial 4
 
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
 
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
 else
-  ac_executable_p="test -f"
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
 fi
-rm -f conf$$.file
+])
 
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
-  [[\\/]]* | ?:[[\\/]]*)
-    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in ifelse([$5], , $PATH, [$5]); do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          if [$3]; then
-            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
-    ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-  AC_MSG_RESULT([$]$1)
+# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake.  There are at least two reasons why we must not
+# use `-m 0755':
+#   - it causes special bits like SGID to be ignored,
+#   - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out.  Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
 else
-  AC_MSG_RESULT(no)
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
+  else
+    mkdir_p='$(install_sh) -d'
+  fi
 fi
-AC_SUBST($1)dnl
-])
+AC_SUBST([mkdir_p])])
 
+# Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# serial 3
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
-# serial 3
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
 
 AC_DEFUN([AM_C_PROTOTYPES],
 [AC_REQUIRE([AC_C_PROTOTYPES])
@@ -8846,28 +8820,16 @@ AC_SUBST(ANSI2KNR)dnl
 
 AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
 
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # AM_SANITY_CHECK
 # ---------------
@@ -8910,25 +8872,14 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# AM_PROG_INSTALL_STRIP
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
+# AM_PROG_INSTALL_STRIP
+# ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
@@ -8951,25 +8902,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004  Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
+# serial 2
 
 # _AM_PROG_TAR(FORMAT)
 # --------------------
index 82294713260e37ecfdb3ae9ffeaa5ffad9c5b460..7d0185e019ed6b83bca92431ff478d7e19b0037e 100755 (executable)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
-timestamp='2004-11-12'
+timestamp='2004-09-07'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -319,9 +319,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:OS/390:*:*)
        echo i370-ibm-openedition
        exit 0 ;;
-    *:z/VM:*:*)
-       echo s390-ibm-zvmoe
-       exit 0 ;;
     *:OS400:*:*)
         echo powerpc-ibm-os400
        exit 0 ;;
@@ -345,7 +342,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     DRS?6000:unix:4.0:6*)
        echo sparc-icl-nx6
        exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+    DRS?6000:UNIX_SV:4.2*:7*)
        case `/usr/bin/uname -p` in
            sparc) echo sparc-icl-nx7 && exit 0 ;;
        esac ;;
@@ -1250,10 +1247,7 @@ EOF
            A*) echo alpha-dec-vms && exit 0 ;;
            I*) echo ia64-dec-vms && exit 0 ;;
            V*) echo vax-dec-vms && exit 0 ;;
-       esac ;;
-    *:XENIX:*:SysV)
-       echo i386-pc-xenix
-       exit 0 ;;
+       esac
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
index 30a23b2560c3b333fc51ddec769533e15afc1752..03974dd5da0d113b3995f4083d618b64df819b96 100644 (file)
 /* Define to 1 if you have the `a64l' function. */
 #undef HAVE_A64L
 
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
 /* Define if the GNU dcgettext() function is already present or preinstalled.
    */
 #undef HAVE_DCGETTEXT
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if you have the `fseeko' function. */
-#undef HAVE_FSEEKO
-
 /* Define to 1 if you have the `fsync' function. */
 #undef HAVE_FSYNC
 
 /* Define to 1 if you have the <utmp.h> header file. */
 #undef HAVE_UTMP_H
 
-/* locale directory */
-#undef LOCALEDIR
-
 /* Name of package */
 #undef PACKAGE
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+
 /* Define for large files, on AIX-style hosts. */
 #undef _LARGE_FILES
 
index 8fb1dbf9098413ec5af1bf7c519a155f3e7c6fb8..edb6b663ca2b30ff0dd886e09137ebb59b6e4568 100755 (executable)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
-timestamp='2004-11-30'
+timestamp='2004-08-29'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -267,7 +267,7 @@ case $basic_machine in
        | tahoe | thumb | tic4x | tic80 | tron \
        | v850 | v850e \
        | we32k \
-       | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | x86 | xscale | xstormy16 | xtensa \
        | z8k)
                basic_machine=$basic_machine-unknown
                ;;
@@ -343,8 +343,8 @@ case $basic_machine in
        | tron-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-       | xstormy16-* | xtensa-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+       | xtensa-* \
        | ymp-* \
        | z8k-*)
                ;;
@@ -489,10 +489,6 @@ case $basic_machine in
                basic_machine=m88k-motorola
                os=-sysv3
                ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
                os=-bosx
@@ -1033,10 +1029,6 @@ case $basic_machine in
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
@@ -1110,7 +1102,7 @@ case $basic_machine in
        pmac | pmac-mpw)
                basic_machine=powerpc-apple
                ;;
-       *-unknown | noarch-*)
+       *-unknown)
                # Make sure to match an already-canonicalized machine name.
                ;;
        *)
@@ -1305,9 +1297,6 @@ case $os in
        -kaos*)
                os=-kaos
                ;;
-       -zvmoe)
-               os=-zvmoe
-               ;;
        -none)
                ;;
        *)
index 59f3d5d8b09c888ef202a88d0d2f979fae5e1f41..4fe8260d9617881d73d35bde468b0efb1c6e8500 100755 (executable)
--- a/configure
+++ b/configure
@@ -462,7 +462,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S YACC CPP EGREP U ANSI2KNR build build_cpu build_vendor build_os host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LIBCRYPT LIBCRACK LIBSKEY LIBMD LIBSELINUX LIBPAM MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S YACC CPP EGREP U ANSI2KNR build build_cpu build_vendor build_os host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LIBCRYPT LIBCRACK LIBSELINUX LIBPAM MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -1034,7 +1034,6 @@ Optional Features:
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --disable-largefile     omit support for large files
-  --enable-desrpc         try to use secure RPC in login (default if found)
   --enable-shadowgrp      enable shadow group support default=yes
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
@@ -1049,9 +1048,7 @@ Optional Packages:
                           include additional configurations [automatic]
   --with-libcrack      try to use libcrack (default if found)
   --with-libcrypt      try to use libcrypt (default if found)
-  --with-libopie               use libopie for OPIE support
   --with-libpam                use libpam for PAM support
-  --with-libskey               use libskey for S/Key support
   --with-selinux               use SELinux support
   --with-gnu-ld           assume the C compiler uses GNU ld default=no
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
@@ -1171,8 +1168,6 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1820,7 +1815,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=shadow
- VERSION=4.0.7
+ VERSION=4.0.8
 
 
 cat >>confdefs.h <<_ACEOF
@@ -1956,6 +1951,13 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 test "$prefix" = "NONE" && prefix="/usr"
 test "$prefix" = "/usr" && exec_prefix=""
 
+
+cat >>confdefs.h <<\_ACEOF
+#define _GNU_SOURCE 1
+_ACEOF
+
+
+
 # Check whether --enable-shared or --disable-shared was given.
 if test "${enable_shared+set}" = set; then
   enableval="$enable_shared"
@@ -4084,7 +4086,7 @@ lt_ac_count=0
 # Add /usr/xpg4/bin/sed as it is typically found on Solaris
 # along with /bin/sed that truncates output.
 for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
+  test ! -f $lt_ac_sed && continue
   cat /dev/null > conftest.in
   lt_ac_count=0
   echo $ECHO_N "0123456789$ECHO_C" >conftest.in
@@ -4345,13 +4347,13 @@ darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | kfreebsd*-gnu)
+freebsd* | kfreebsd*-gnu | dragonfly*)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
       lt_cv_file_magic_cmd=/usr/bin/file
       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
       ;;
@@ -4512,7 +4514,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4515 "configure"' > conftest.$ac_ext
+  echo '#line 4517 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5618,7 +5620,7 @@ fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:5621:" \
+echo "$as_me:5623:" \
      "checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -5808,7 +5810,7 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* )
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -5820,8 +5822,20 @@ else
     # And add a safety zone
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
     ;;
-
- *)
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  *)
     # If test is not a shell built-in, we'll probably end up computing a
     # maximum length that is only half of the actual maximum length, but
     # we can't tell.
@@ -5872,9 +5886,6 @@ symcode='[BCDEGRST]'
 # Regexp to match symbols that can be accessed directly from C.
 sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
 
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
 # Transform an extracted symbol line into a proper C declaration
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
 
@@ -5934,8 +5945,11 @@ esac
 # Try without a prefix undercore, then with it.
 for ac_symprfx in "" "_"; do
 
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
   # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6675,11 +6689,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6678: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6692: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6682: \$? = $ac_status" >&5
+   echo "$as_me:6696: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -6831,12 +6845,19 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       ;;
 
     linux*)
-      case $CC in
+      case $cc_basename in
       icc* | ecc*)
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-static'
         ;;
+      pgcc | pgf77 | pgf90)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fpic'
+       lt_prog_compiler_static='-static'
+        ;;
       ccc*)
         lt_prog_compiler_wl='-Wl,'
         # All Alpha code is PIC.
@@ -6881,6 +6902,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
     uts4*)
       lt_prog_compiler_pic='-pic'
       lt_prog_compiler_static='-Bstatic'
@@ -6918,11 +6944,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6921: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6947: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6925: \$? = $ac_status" >&5
+   echo "$as_me:6951: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -6978,11 +7004,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6981: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7007: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:6985: \$? = $ac_status" >&5
+   echo "$as_me:7011: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -7137,7 +7163,7 @@ EOF
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -7195,11 +7221,21 @@ EOF
 
   linux*)
     if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds="$tmp_archive_cmds"
+      tmp_addflag=
+      case $CC,$host_cpu in
+      pgf77* | pgf90* )                        # Portland Group f77 and f90 compilers
+        tmp_addflag=' -fpic' ;;
+      ecc*,ia64* | icc*,ia64*)         # Intel C compiler on ia64
+        tmp_addflag=' -i_dynamic' ;;
+      efc*,ia64* | ifort*,ia64*)       # Intel Fortran compiler on ia64
+        tmp_addflag=' -i_dynamic -nofor_main' ;;
+      ifc* | ifort*)                   # Intel Fortran compiler
+       tmp_addflag=' -nofor_main' ;;
+      esac
+      archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       supports_anon_versioning=no
       case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
         *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
         *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
         *\ 2.11.*) ;; # other 2.11 versions
@@ -7209,9 +7245,9 @@ EOF
         archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 $echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
       else
-        archive_expsym_cmds="$tmp_archive_cmds"
+        archive_expsym_cmds=$archive_cmds
       fi
     else
       ld_shlibs=no
@@ -7301,7 +7337,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       link_all_deplibs=yes
 
       if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
+       case $host_os in aix4.[012]|aix4.[012].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
          collect2name=`${CC} -print-prog-name=collect2`
@@ -7322,6 +7358,9 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
          fi
        esac
        shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -7587,7 +7626,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
+    freebsd* | kfreebsd*-gnu | dragonfly*)
       archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
@@ -7776,7 +7815,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+       whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
       esac
       link_all_deplibs=yes
       ;;
@@ -7974,21 +8013,6 @@ if test "$GCC" = yes; then
   else
     sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
-  # sanitize
-  new_sys_lib_search_path_spec=
-  for d in $sys_lib_search_path_spec ; do
-    # check if exists
-    if test -d $d -a -x $d ; then
-      # normalize
-      new_d=$(cd $d ; pwd)
-      # uniq
-      if ! echo "$new_sys_lib_search_path_spec" | grep -q -F -e " $new_d " ; then
-        new_sys_lib_search_path_spec="$new_sys_lib_search_path_spec $new_d "
-      fi
-    fi
-  done
-  # compress spaces
-  sys_lib_search_path_spec=`echo "$new_sys_lib_search_path_spec" | $SED -e 's/^ *//g;s/ \+/ /g;s/ $//g'`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -8123,7 +8147,7 @@ cygwin* | mingw* | pw32*)
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
     ;;
@@ -8181,7 +8205,9 @@ kfreebsd*-gnu)
   dynamic_linker='GNU ld.so'
   ;;
 
-freebsd*)
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
   version_type=freebsd-$objformat
   case $version_type in
@@ -8200,7 +8226,7 @@ freebsd*)
   freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
-  freebsd3.01* | freebsdelf3.01*)
+  freebsd3.[01]* | freebsdelf3.[01]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
@@ -8324,10 +8350,31 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 8357 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -9178,7 +9225,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9181 "configure"
+#line 9228 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9276,7 +9323,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9279 "configure"
+#line 9326 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9579,6 +9626,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -10245,7 +10298,7 @@ case $host_os in
     link_all_deplibs_CXX=yes
 
     if test "$GXX" = yes; then
-      case $host_os in aix4.012|aix4.012.*)
+      case $host_os in aix4.[012]|aix4.[012].*)
       # We only want to do this on AIX 4.2 and lower, the check
       # below for broken collect2 doesn't work under 4.3+
        collect2name=`${CC} -print-prog-name=collect2`
@@ -10266,6 +10319,9 @@ case $host_os in
        fi
       esac
       shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+       shared_flag="$shared_flag "'${wl}-G'
+      fi
     else
       # not using gcc
       if test "$host_cpu" = ia64; then
@@ -10531,14 +10587,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        ;;
     esac
     ;;
-  freebsd12*)
+  freebsd[12]*)
     # C++ shared libraries reported to be fairly broken before switch to ELF
     ld_shlibs_CXX=no
     ;;
   freebsd-elf*)
     archive_cmds_need_lc_CXX=no
     ;;
-  freebsd* | kfreebsd*-gnu)
+  freebsd* | kfreebsd*-gnu | dragonfly*)
     # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
     # conventions
     ld_shlibs_CXX=yes
@@ -10569,7 +10625,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # explicitly linking system object files so we need to strip them
       # from the output so that they don't get included in the library
       # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
       ;;
     *)
       if test "$GXX" = yes; then
@@ -10727,8 +10783,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
          ;;
        *)  # Version 8.0 or newer
-         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+         tmp_idyn=
+         case $host_cpu in
+           ia64*) tmp_idyn=' -i_dynamic';;
+         esac
+         archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+         archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
          ;;
        esac
        archive_cmds_need_lc_CXX=no
@@ -10736,6 +10796,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
        whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
        ;;
+      pgCC)
+        # Portland Group C++ compiler
+       archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+       archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+       hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+       export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+        ;;
       cxx)
        # Compaq C++
        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
@@ -10974,7 +11042,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        hardcode_libdir_flag_spec_CXX='-R$libdir'
        hardcode_shlibpath_var_CXX=no
        case $host_os in
-         solaris2.0-5 | solaris2.0-5.*) ;;
+         solaris2.[0-5] | solaris2.[0-5].*) ;;
          *)
            # The C++ compiler is used as linker so we must use $wl
            # flag to pass the commands to the underlying system
@@ -11282,7 +11350,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
            ;;
        esac
        ;;
-      freebsd* | kfreebsd*-gnu)
+      freebsd* | kfreebsd*-gnu | dragonfly*)
        # FreeBSD uses GNU C++
        ;;
       hpux9* | hpux10* | hpux11*)
@@ -11328,12 +11396,18 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
            lt_prog_compiler_wl_CXX='--backend -Wl,'
            lt_prog_compiler_pic_CXX='-fPIC'
            ;;
-         icpc)
+         icpc* | ecpc*)
            # Intel C++
            lt_prog_compiler_wl_CXX='-Wl,'
            lt_prog_compiler_pic_CXX='-KPIC'
            lt_prog_compiler_static_CXX='-static'
            ;;
+         pgCC)
+           # Portland Group C++ compiler.
+           lt_prog_compiler_wl_CXX='-Wl,'
+           lt_prog_compiler_pic_CXX='-fpic'
+           lt_prog_compiler_static_CXX='-static'
+           ;;
          cxx)
            # Compaq C++
            # Make sure the PIC flag is empty.  It appears that all Alpha
@@ -11469,11 +11543,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11472: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11546: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:11476: \$? = $ac_status" >&5
+   echo "$as_me:11550: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -11529,11 +11603,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11532: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11606: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11536: \$? = $ac_status" >&5
+   echo "$as_me:11610: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11597,7 +11671,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
     export_symbols_cmds_CXX="$ltdll_cmds"
   ;;
   cygwin* | mingw*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   *)
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -11701,21 +11775,6 @@ if test "$GCC" = yes; then
   else
     sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
-  # sanitize
-  new_sys_lib_search_path_spec=
-  for d in $sys_lib_search_path_spec ; do
-    # check if exists
-    if test -d $d -a -x $d ; then
-      # normalize
-      new_d=$(cd $d ; pwd)
-      # uniq
-      if ! echo "$new_sys_lib_search_path_spec" | grep -q -F -e " $new_d " ; then
-        new_sys_lib_search_path_spec="$new_sys_lib_search_path_spec $new_d "
-      fi
-    fi
-  done
-  # compress spaces
-  sys_lib_search_path_spec=`echo "$new_sys_lib_search_path_spec" | $SED -e 's/^ *//g;s/ \+/ /g;s/ $//g'`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -11850,7 +11909,7 @@ cygwin* | mingw* | pw32*)
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
     ;;
@@ -11908,7 +11967,9 @@ kfreebsd*-gnu)
   dynamic_linker='GNU ld.so'
   ;;
 
-freebsd*)
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
   version_type=freebsd-$objformat
   case $version_type in
@@ -11927,7 +11988,7 @@ freebsd*)
   freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
-  freebsd3.01* | freebsdelf3.01*)
+  freebsd3.[01]* | freebsdelf3.[01]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
@@ -12051,10 +12112,31 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 12119 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12905,7 +12987,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 12908 "configure"
+#line 12990 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13003,7 +13085,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 13006 "configure"
+#line 13088 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13221,6 +13303,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -13753,12 +13841,19 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       ;;
 
     linux*)
-      case $CC in
+      case $cc_basename in
       icc* | ecc*)
        lt_prog_compiler_wl_F77='-Wl,'
        lt_prog_compiler_pic_F77='-KPIC'
        lt_prog_compiler_static_F77='-static'
         ;;
+      pgcc | pgf77 | pgf90)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       lt_prog_compiler_wl_F77='-Wl,'
+       lt_prog_compiler_pic_F77='-fpic'
+       lt_prog_compiler_static_F77='-static'
+        ;;
       ccc*)
         lt_prog_compiler_wl_F77='-Wl,'
         # All Alpha code is PIC.
@@ -13803,6 +13898,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+
     uts4*)
       lt_prog_compiler_pic_F77='-pic'
       lt_prog_compiler_static_F77='-Bstatic'
@@ -13840,11 +13940,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13843: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13943: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13847: \$? = $ac_status" >&5
+   echo "$as_me:13947: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -13900,11 +14000,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13903: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14003: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13907: \$? = $ac_status" >&5
+   echo "$as_me:14007: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14059,7 +14159,7 @@ EOF
       allow_undefined_flag_F77=unsupported
       always_export_symbols_F77=no
       enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
         archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -14073,7 +14173,7 @@ EOF
        fi~
        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
       else
-       ld_shlibs=no
+       ld_shlibs_F77=no
       fi
       ;;
 
@@ -14117,11 +14217,21 @@ EOF
 
   linux*)
     if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_F77="$tmp_archive_cmds"
+      tmp_addflag=
+      case $CC,$host_cpu in
+      pgf77* | pgf90* )                        # Portland Group f77 and f90 compilers
+        tmp_addflag=' -fpic' ;;
+      ecc*,ia64* | icc*,ia64*)         # Intel C compiler on ia64
+        tmp_addflag=' -i_dynamic' ;;
+      efc*,ia64* | ifort*,ia64*)       # Intel Fortran compiler on ia64
+        tmp_addflag=' -i_dynamic -nofor_main' ;;
+      ifc* | ifort*)                   # Intel Fortran compiler
+       tmp_addflag=' -nofor_main' ;;
+      esac
+      archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       supports_anon_versioning=no
       case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
         *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
         *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
         *\ 2.11.*) ;; # other 2.11 versions
@@ -14131,9 +14241,9 @@ EOF
         archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 $echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
       else
-        archive_expsym_cmds_F77="$tmp_archive_cmds"
+        archive_expsym_cmds_F77=$archive_cmds_F77
       fi
     else
       ld_shlibs_F77=no
@@ -14223,7 +14333,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       link_all_deplibs_F77=yes
 
       if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
+       case $host_os in aix4.[012]|aix4.[012].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
          collect2name=`${CC} -print-prog-name=collect2`
@@ -14244,6 +14354,9 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
          fi
        esac
        shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -14405,7 +14518,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       old_archive_From_new_cmds_F77='true'
       # FIXME: Should let the user specify the lib program.
       old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
       enable_shared_with_static_runtimes_F77=yes
       ;;
 
@@ -14489,7 +14602,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
+    freebsd* | kfreebsd*-gnu | dragonfly*)
       archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec_F77='-R$libdir'
       hardcode_direct_F77=yes
@@ -14678,7 +14791,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+       whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
       esac
       link_all_deplibs_F77=yes
       ;;
@@ -14876,21 +14989,6 @@ if test "$GCC" = yes; then
   else
     sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
-  # sanitize
-  new_sys_lib_search_path_spec=
-  for d in $sys_lib_search_path_spec ; do
-    # check if exists
-    if test -d $d -a -x $d ; then
-      # normalize
-      new_d=$(cd $d ; pwd)
-      # uniq
-      if ! echo "$new_sys_lib_search_path_spec" | grep -q -F -e " $new_d " ; then
-        new_sys_lib_search_path_spec="$new_sys_lib_search_path_spec $new_d "
-      fi
-    fi
-  done
-  # compress spaces
-  sys_lib_search_path_spec=`echo "$new_sys_lib_search_path_spec" | $SED -e 's/^ *//g;s/ \+/ /g;s/ $//g'`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -15025,7 +15123,7 @@ cygwin* | mingw* | pw32*)
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
     ;;
@@ -15083,7 +15181,9 @@ kfreebsd*-gnu)
   dynamic_linker='GNU ld.so'
   ;;
 
-freebsd*)
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
   version_type=freebsd-$objformat
   case $version_type in
@@ -15102,7 +15202,7 @@ freebsd*)
   freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
-  freebsd3.01* | freebsdelf3.01*)
+  freebsd3.[01]* | freebsdelf3.[01]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
@@ -15226,10 +15326,31 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 15333 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -15591,6 +15712,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -15905,7 +16032,7 @@ objext_GCJ=$objext
 lt_simple_compile_test_code="class foo {}\n"
 
 # Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
 
 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
@@ -15950,11 +16077,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15953: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16080: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15957: \$? = $ac_status" >&5
+   echo "$as_me:16084: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -16106,12 +16233,19 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       ;;
 
     linux*)
-      case $CC in
+      case $cc_basename in
       icc* | ecc*)
        lt_prog_compiler_wl_GCJ='-Wl,'
        lt_prog_compiler_pic_GCJ='-KPIC'
        lt_prog_compiler_static_GCJ='-static'
         ;;
+      pgcc | pgf77 | pgf90)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       lt_prog_compiler_wl_GCJ='-Wl,'
+       lt_prog_compiler_pic_GCJ='-fpic'
+       lt_prog_compiler_static_GCJ='-static'
+        ;;
       ccc*)
         lt_prog_compiler_wl_GCJ='-Wl,'
         # All Alpha code is PIC.
@@ -16156,6 +16290,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
       fi
       ;;
 
+    unicos*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+
     uts4*)
       lt_prog_compiler_pic_GCJ='-pic'
       lt_prog_compiler_static_GCJ='-Bstatic'
@@ -16193,11 +16332,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16196: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16335: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16200: \$? = $ac_status" >&5
+   echo "$as_me:16339: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
@@ -16253,11 +16392,11 @@ else
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16256: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16395: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16260: \$? = $ac_status" >&5
+   echo "$as_me:16399: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16412,7 +16551,7 @@ EOF
       allow_undefined_flag_GCJ=unsupported
       always_export_symbols_GCJ=no
       enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
 
       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
         archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -16426,7 +16565,7 @@ EOF
        fi~
        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
       else
-       ld_shlibs=no
+       ld_shlibs_GCJ=no
       fi
       ;;
 
@@ -16470,11 +16609,21 @@ EOF
 
   linux*)
     if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_cmds_GCJ="$tmp_archive_cmds"
+      tmp_addflag=
+      case $CC,$host_cpu in
+      pgf77* | pgf90* )                        # Portland Group f77 and f90 compilers
+        tmp_addflag=' -fpic' ;;
+      ecc*,ia64* | icc*,ia64*)         # Intel C compiler on ia64
+        tmp_addflag=' -i_dynamic' ;;
+      efc*,ia64* | ifort*,ia64*)       # Intel Fortran compiler on ia64
+        tmp_addflag=' -i_dynamic -nofor_main' ;;
+      ifc* | ifort*)                   # Intel Fortran compiler
+       tmp_addflag=' -nofor_main' ;;
+      esac
+      archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       supports_anon_versioning=no
       case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
         *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
         *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
         *\ 2.11.*) ;; # other 2.11 versions
@@ -16484,9 +16633,9 @@ EOF
         archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 $echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
       else
-        archive_expsym_cmds_GCJ="$tmp_archive_cmds"
+        archive_expsym_cmds_GCJ=$archive_cmds_GCJ
       fi
     else
       ld_shlibs_GCJ=no
@@ -16576,7 +16725,7 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
       link_all_deplibs_GCJ=yes
 
       if test "$GCC" = yes; then
-       case $host_os in aix4.012|aix4.012.*)
+       case $host_os in aix4.[012]|aix4.[012].*)
        # We only want to do this on AIX 4.2 and lower, the check
        # below for broken collect2 doesn't work under 4.3+
          collect2name=`${CC} -print-prog-name=collect2`
@@ -16597,6 +16746,9 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
          fi
        esac
        shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -16778,7 +16930,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       old_archive_From_new_cmds_GCJ='true'
       # FIXME: Should let the user specify the lib program.
       old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
       enable_shared_with_static_runtimes_GCJ=yes
       ;;
 
@@ -16862,7 +17014,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
+    freebsd* | kfreebsd*-gnu | dragonfly*)
       archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec_GCJ='-R$libdir'
       hardcode_direct_GCJ=yes
@@ -17051,7 +17203,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       case $host_os in
       solaris2.[0-5] | solaris2.[0-5].*) ;;
       *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-       whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+       whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
       esac
       link_all_deplibs_GCJ=yes
       ;;
@@ -17249,21 +17401,6 @@ if test "$GCC" = yes; then
   else
     sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
   fi
-  # sanitize
-  new_sys_lib_search_path_spec=
-  for d in $sys_lib_search_path_spec ; do
-    # check if exists
-    if test -d $d -a -x $d ; then
-      # normalize
-      new_d=$(cd $d ; pwd)
-      # uniq
-      if ! echo "$new_sys_lib_search_path_spec" | grep -q -F -e " $new_d " ; then
-        new_sys_lib_search_path_spec="$new_sys_lib_search_path_spec $new_d "
-      fi
-    fi
-  done
-  # compress spaces
-  sys_lib_search_path_spec=`echo "$new_sys_lib_search_path_spec" | $SED -e 's/^ *//g;s/ \+/ /g;s/ $//g'`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -17398,7 +17535,7 @@ cygwin* | mingw* | pw32*)
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
     ;;
@@ -17456,7 +17593,9 @@ kfreebsd*-gnu)
   dynamic_linker='GNU ld.so'
   ;;
 
-freebsd*)
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
   version_type=freebsd-$objformat
   case $version_type in
@@ -17475,7 +17614,7 @@ freebsd*)
   freebsd2*)
     shlibpath_overrides_runpath=yes
     ;;
-  freebsd3.01* | freebsdelf3.01*)
+  freebsd3.[01]* | freebsdelf3.[01]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
@@ -17599,10 +17738,31 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 17745 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -18453,7 +18613,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 18456 "configure"
+#line 18616 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18551,7 +18711,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 18554 "configure"
+#line 18714 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18769,6 +18929,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -19214,6 +19380,12 @@ fast_install=$enable_fast_install
 # The host system.
 host_alias=$host_alias
 host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
 # An echo program that does not interpret backslashes.
 echo=$lt_echo
@@ -20330,8 +20502,7 @@ done
 
 
 
-
-for ac_func in a64l fchmod fchown fseeko fsync getgroups gethostname getspnam \
+for ac_func in a64l fchmod fchown fsync getgroups gethostname getspnam \
        gettimeofday getusershell getutent initgroups lchown lckpwdf lstat \
        memcpy memset setgroups sigaction strchr updwtmp updwtmpx
 do
@@ -21722,56 +21893,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-if test $ac_cv_c_compiler_gnu = yes; then
-    echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    ac_pattern="Autoconf.*'x'"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then
-  ac_cv_prog_gcc_traditional=yes
-else
-  ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
-
-  if test $ac_cv_prog_gcc_traditional = no; then
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then
-  ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
-  fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
-  if test $ac_cv_prog_gcc_traditional = yes; then
-    CC="$CC -traditional"
-  fi
-fi
-
 echo "$as_me:$LINENO: checking return type of signal handlers" >&5
 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
 if test "${ac_cv_type_signal+set}" = set; then
@@ -22692,7 +22813,7 @@ echo $ECHO_N "checking location of utmp... $ECHO_C" >&6
 if test "${shadow_cv_utmpdir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  for utmpdir in /var/run /var/adm /usr/adm /etc none; do
+  for shadow_cv_utmpdir in /var/run /var/adm /usr/adm /etc none; do
        if test -f $shadow_cv_utmpdir/utmp; then
                break
        fi
@@ -22779,11 +22900,6 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 
-# Check whether --enable-desrpc or --disable-desrpc was given.
-if test "${enable_desrpc+set}" = set; then
-  enableval="$enable_desrpc"
-
-fi;
 # Check whether --enable-shadowgrp or --disable-shadowgrp was given.
 if test "${enable_shadowgrp+set}" = set; then
   enableval="$enable_shadowgrp"
@@ -22803,24 +22919,12 @@ if test "${with_libcrypt+set}" = set; then
 
 fi;
 
-# Check whether --with-libopie or --without-libopie was given.
-if test "${with_libopie+set}" = set; then
-  withval="$with_libopie"
-
-fi;
-
 # Check whether --with-libpam or --without-libpam was given.
 if test "${with_libpam+set}" = set; then
   withval="$with_libpam"
 
 fi;
 
-# Check whether --with-libskey or --without-libskey was given.
-if test "${with_libskey+set}" = set; then
-  withval="$with_libskey"
-
-fi;
-
 # Check whether --with-selinux or --without-selinux was given.
 if test "${with_selinux+set}" = set; then
   withval="$with_selinux"
@@ -23207,60 +23311,40 @@ if test "$ac_cv_search_gethostbyname" != no; then
 fi
 
 
+if test "$enable_shadowgrp" != "no"; then
+       cat >>confdefs.h <<\_ACEOF
+#define SHADOWGRP 1
+_ACEOF
 
-if test "$enable_desrpc" != "no" -a "$ac_cv_header_rpc_key_prot_h" = "yes" ; then
-       echo "$as_me:$LINENO: checking for getsecretkey" >&5
-echo $ECHO_N "checking for getsecretkey... $ECHO_C" >&6
-if test "${ac_cv_func_getsecretkey+set}" = set; then
+fi
+
+
+if test "$with_libcrypt" != "no"; then
+       echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
+if test "${ac_cv_lib_crypt_crypt+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define getsecretkey to an innocuous variant, in case <limits.h> declares getsecretkey.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getsecretkey innocuous_getsecretkey
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getsecretkey (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getsecretkey
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-char getsecretkey ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_getsecretkey) || defined (__stub___getsecretkey)
-choke me
-#else
-char (*f) () = getsecretkey;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
+char crypt ();
 int
 main ()
 {
-return f != getsecretkey;
+crypt ();
   ;
   return 0;
 }
@@ -23287,31 +23371,38 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_func_getsecretkey=yes
+  ac_cv_lib_crypt_crypt=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_getsecretkey=no
+ac_cv_lib_crypt_crypt=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_getsecretkey" >&5
-echo "${ECHO_T}$ac_cv_func_getsecretkey" >&6
-if test $ac_cv_func_getsecretkey = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
+if test $ac_cv_lib_crypt_crypt = yes; then
   cat >>confdefs.h <<\_ACEOF
-#define DES_RPC 1
+#define HAVE_LIBCRYPT 1
 _ACEOF
+ LIBCRYPT=-lcrypt
+fi
 
-else
-  echo "$as_me:$LINENO: checking for getsecretkey in -lrpcsvc" >&5
-echo $ECHO_N "checking for getsecretkey in -lrpcsvc... $ECHO_C" >&6
-if test "${ac_cv_lib_rpcsvc_getsecretkey+set}" = set; then
+fi
+
+
+if test "$with_libcrack" != "no"; then
+       echo "checking cracklib flavour, don't be surprised by the results"
+       echo "$as_me:$LINENO: checking for FascistCheck in -lcrack" >&5
+echo $ECHO_N "checking for FascistCheck in -lcrack... $ECHO_C" >&6
+if test "${ac_cv_lib_crack_FascistCheck+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lrpcsvc  $LIBS"
+LIBS="-lcrack  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -23325,11 +23416,11 @@ extern "C"
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-char getsecretkey ();
+char FascistCheck ();
 int
 main ()
 {
-getsecretkey ();
+FascistCheck ();
   ;
   return 0;
 }
@@ -23356,46 +23447,33 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_rpcsvc_getsecretkey=yes
+  ac_cv_lib_crack_FascistCheck=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_rpcsvc_getsecretkey=no
+ac_cv_lib_crack_FascistCheck=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_rpcsvc_getsecretkey" >&5
-echo "${ECHO_T}$ac_cv_lib_rpcsvc_getsecretkey" >&6
-if test $ac_cv_lib_rpcsvc_getsecretkey = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_lib_crack_FascistCheck" >&5
+echo "${ECHO_T}$ac_cv_lib_crack_FascistCheck" >&6
+if test $ac_cv_lib_crack_FascistCheck = yes; then
   cat >>confdefs.h <<\_ACEOF
-#define DES_RPC 1
-_ACEOF
-
-fi
-
-fi
-
-fi
-
-if test "$enable_shadowgrp" != "no"; then
-       cat >>confdefs.h <<\_ACEOF
-#define SHADOWGRP 1
+#define HAVE_LIBCRACK 1
 _ACEOF
-
+ LIBCRACK=-lcrack
 fi
 
-
-if test "$with_libcrypt" != "no"; then
-       echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
-if test "${ac_cv_lib_crypt_crypt+set}" = set; then
+       echo "$as_me:$LINENO: checking for FascistHistory in -lcrack" >&5
+echo $ECHO_N "checking for FascistHistory in -lcrack... $ECHO_C" >&6
+if test "${ac_cv_lib_crack_FascistHistory+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypt  $LIBS"
+LIBS="-lcrack  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -23409,11 +23487,11 @@ extern "C"
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-char crypt ();
+char FascistHistory ();
 int
 main ()
 {
-crypt ();
+FascistHistory ();
   ;
   return 0;
 }
@@ -23440,154 +23518,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_crypt_crypt=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_crypt_crypt=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
-if test $ac_cv_lib_crypt_crypt = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBCRYPT 1
-_ACEOF
- LIBCRYPT=-lcrypt
-fi
-
-fi
-
-
-if test "$with_libcrack" != "no"; then
-       echo "checking cracklib flavour, don't be surprised by the results"
-       echo "$as_me:$LINENO: checking for FascistCheck in -lcrack" >&5
-echo $ECHO_N "checking for FascistCheck in -lcrack... $ECHO_C" >&6
-if test "${ac_cv_lib_crack_FascistCheck+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrack  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char FascistCheck ();
-int
-main ()
-{
-FascistCheck ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crack_FascistCheck=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_crack_FascistCheck=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crack_FascistCheck" >&5
-echo "${ECHO_T}$ac_cv_lib_crack_FascistCheck" >&6
-if test $ac_cv_lib_crack_FascistCheck = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBCRACK 1
-_ACEOF
- LIBCRACK=-lcrack
-fi
-
-       echo "$as_me:$LINENO: checking for FascistHistory in -lcrack" >&5
-echo $ECHO_N "checking for FascistHistory in -lcrack... $ECHO_C" >&6
-if test "${ac_cv_lib_crack_FascistHistory+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrack  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char FascistHistory ();
-int
-main ()
-{
-FascistHistory ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crack_FascistHistory=yes
+  ac_cv_lib_crack_FascistHistory=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
 
-
-
-if test "$with_libskey" = "yes"; then
-       echo "$as_me:$LINENO: checking for MD5Init in -lmd" >&5
-echo $ECHO_N "checking for MD5Init in -lmd... $ECHO_C" >&6
-if test "${ac_cv_lib_md_MD5Init+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmd  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char MD5Init ();
-int
-main ()
-{
-MD5Init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_md_MD5Init=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_md_MD5Init=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_md_MD5Init" >&5
-echo "${ECHO_T}$ac_cv_lib_md_MD5Init" >&6
-if test $ac_cv_lib_md_MD5Init = yes; then
-  LIBMD=-lmd
-fi
-
-       echo "$as_me:$LINENO: checking for skeychallenge in -lskey" >&5
-echo $ECHO_N "checking for skeychallenge in -lskey... $ECHO_C" >&6
-if test "${ac_cv_lib_skey_skeychallenge+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lskey $LIBMD $LIBCRYPT $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char skeychallenge ();
-int
-main ()
-{
-skeychallenge ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_skey_skeychallenge=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_skey_skeychallenge=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_skey_skeychallenge" >&5
-echo "${ECHO_T}$ac_cv_lib_skey_skeychallenge" >&6
-if test $ac_cv_lib_skey_skeychallenge = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define SKEY 1
-_ACEOF
- LIBSKEY=-lskey
-fi
-
-elif test "$with_libopie" = "yes"; then
-       echo "$as_me:$LINENO: checking for opiechallenge in -lopie" >&5
-echo $ECHO_N "checking for opiechallenge in -lopie... $ECHO_C" >&6
-if test "${ac_cv_lib_opie_opiechallenge+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lopie $LIBCRYPT $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char opiechallenge ();
-int
-main ()
-{
-opiechallenge ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_opie_opiechallenge=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_opie_opiechallenge=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_opie_opiechallenge" >&5
-echo "${ECHO_T}$ac_cv_lib_opie_opiechallenge" >&6
-if test $ac_cv_lib_opie_opiechallenge = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define OPIE 1
-_ACEOF
- LIBSKEY=-lopie
-fi
-
-fi
-
 if test "$with_selinux" = "yes"; then
        echo "$as_me:$LINENO: checking for is_selinux_enabled in -lselinux" >&5
 echo $ECHO_N "checking for is_selinux_enabled in -lselinux... $ECHO_C" >&6
@@ -23964,7 +23679,7 @@ echo "${ECHO_T}$ac_cv_lib_selinux_is_selinux_enabled" >&6
 if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then
   LIBSELINUX="-lselinux"
 else
-  SELinuux enabled but libselinux not found
+  SELinux enabled but libselinux not found
 fi
 
 
@@ -24267,12 +23982,9 @@ echo "$as_me: error: libpam_misc is missing" >&2;}
 
 fi
 
-               echo "$as_me:$LINENO: checking use login access checking if PAM not used" >&5
+else
+  echo "$as_me:$LINENO: checking use login access checking if PAM not used" >&5
 echo $ECHO_N "checking use login access checking if PAM not used... $ECHO_C" >&6
-               cat >>confdefs.h <<\_ACEOF
-#define LOGIN_ACCESS 1
-_ACEOF
-
                echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
@@ -24285,10 +23997,6 @@ echo "${ECHO_T}no" >&6
 else
        echo "$as_me:$LINENO: checking use login and su access checking if PAM not used" >&5
 echo $ECHO_N "checking use login and su access checking if PAM not used... $ECHO_C" >&6
-       cat >>confdefs.h <<\_ACEOF
-#define LOGIN_ACCESS 1
-_ACEOF
-
        cat >>confdefs.h <<\_ACEOF
 #define SU_ACCESS 1
 _ACEOF
@@ -24299,6 +24007,7 @@ fi
 
 
 
+
         MKINSTALLDIRS=
   if test -n "$ac_aux_dir"; then
     case "$ac_aux_dir" in
@@ -24375,7 +24084,8 @@ else
       test -z "$ac_dir" && ac_dir=.
       for ac_exec_ext in '' $ac_executable_extensions; do
         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
             ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
             break 2
@@ -24485,7 +24195,8 @@ else
       test -z "$ac_dir" && ac_dir=.
       for ac_exec_ext in '' $ac_executable_extensions; do
         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
      (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
             ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
             break 2
@@ -24556,7 +24267,8 @@ else
       test -z "$ac_dir" && ac_dir=.
       for ac_exec_ext in '' $ac_executable_extensions; do
         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
             ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
             break 2
           fi
@@ -24737,6 +24449,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
 
 
+
                                                 echo "$as_me:$LINENO: checking for shared library run path origin" >&5
 echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6
 if test "${acl_cv_rpath+set}" = set; then
@@ -24982,7 +24695,7 @@ fi;
                 if test "X$additional_includedir" = "X/usr/local/include"; then
                   if test -n "$GCC"; then
                     case $host_os in
-                      linux*) haveit=yes;;
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                     esac
                   fi
                 fi
@@ -25026,7 +24739,7 @@ fi;
                       if test "X$additional_libdir" = "X/usr/local/lib"; then
                         if test -n "$GCC"; then
                           case $host_os in
-                            linux*) haveit=yes;;
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                           esac
                         fi
                       fi
@@ -25166,6 +24879,148 @@ fi;
 
 
 
+    echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
+echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6
+if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
+fi
+echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
+_ACEOF
+
+  fi
+    echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
+echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6
+if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gt_cv_func_CFLocaleCopyCurrent=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
+fi
+echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CFLOCALECOPYCURRENT 1
+_ACEOF
+
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
+
+
+
+
   echo "$as_me:$LINENO: checking whether NLS is requested" >&5
 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
     # Check whether --enable-nls or --disable-nls was given.
@@ -25628,7 +25483,7 @@ fi;
                 if test "X$additional_includedir" = "X/usr/local/include"; then
                   if test -n "$GCC"; then
                     case $host_os in
-                      linux*) haveit=yes;;
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                     esac
                   fi
                 fi
@@ -25672,7 +25527,7 @@ fi;
                       if test "X$additional_libdir" = "X/usr/local/lib"; then
                         if test -n "$GCC"; then
                           case $host_os in
-                            linux*) haveit=yes;;
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
                           esac
                         fi
                       fi
@@ -25816,12 +25671,12 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-const char *_nl_expand_alias ();
+const char *_nl_expand_alias (const char *);
 int
 main ()
 {
 bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
   ;
   return 0;
 }
@@ -25871,12 +25726,12 @@ extern
 #ifdef __cplusplus
 "C"
 #endif
-const char *_nl_expand_alias ();
+const char *_nl_expand_alias (const char *);
 int
 main ()
 {
 bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
   ;
   return 0;
 }
@@ -25935,6 +25790,14 @@ echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6
 
 
 
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
+
     if test "$gt_use_preinstalled_gnugettext" = "yes" \
        || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
@@ -26025,11 +25888,6 @@ _ACEOF
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define LOCALEDIR "${datadir}/locale"
-_ACEOF
-
-
                                                                                                                                                                                                                                                           ac_config_files="$ac_config_files Makefile po/Makefile.in doc/Makefile man/Makefile man/cs/Makefile man/de/Makefile man/es/Makefile man/fr/Makefile man/hu/Makefile man/id/Makefile man/it/Makefile man/ja/Makefile man/ko/Makefile man/pl/Makefile man/pt_BR/Makefile man/ru/Makefile man/zh_CN/Makefile man/zh_TW/Makefile libmisc/Makefile lib/Makefile src/Makefile contrib/Makefile etc/Makefile etc/pam.d/Makefile shadow.spec"
 
 cat >confcache <<\_ACEOF
@@ -26789,8 +26647,6 @@ s,@LIBTOOL@,$LIBTOOL,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@LIBCRYPT@,$LIBCRYPT,;t t
 s,@LIBCRACK@,$LIBCRACK,;t t
-s,@LIBSKEY@,$LIBSKEY,;t t
-s,@LIBMD@,$LIBMD,;t t
 s,@LIBSELINUX@,$LIBSELINUX,;t t
 s,@LIBPAM@,$LIBPAM,;t t
 s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
@@ -26799,6 +26655,7 @@ s,@MSGFMT@,$MSGFMT,;t t
 s,@GMSGFMT@,$GMSGFMT,;t t
 s,@XGETTEXT@,$XGETTEXT,;t t
 s,@MSGMERGE@,$MSGMERGE,;t t
+s,@INTL_MACOSX_LIBS@,$INTL_MACOSX_LIBS,;t t
 s,@LIBICONV@,$LIBICONV,;t t
 s,@LTLIBICONV@,$LTLIBICONV,;t t
 s,@INTLLIBS@,$INTLLIBS,;t t
@@ -27508,6 +27365,9 @@ done
           /*) top_srcdir="$ac_given_srcdir" ;;
           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
         esac
+        # Treat a directory as a PO directory if and only if it has a
+        # POTFILES.in file. This allows packages to have multiple PO
+        # directories under different names or in different locations.
         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
           rm -f "$ac_dir/POTFILES"
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
@@ -27521,7 +27381,7 @@ done
             if test -n "$OBSOLETE_ALL_LINGUAS"; then
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
-            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             # Hide the ALL_LINGUAS assigment from automake.
             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
index 142891f5df5b09100491ee6187011f5d1d7a12f1..554f0eec29cbbcfb3810e620af1e484c4ab7b73b 100644 (file)
@@ -1,12 +1,14 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_INIT
-AM_INIT_AUTOMAKE(shadow, 4.0.7)
+AM_INIT_AUTOMAKE(shadow, 4.0.8)
 AC_CONFIG_HEADERS([config.h])
 
 dnl Some hacks...
 test "$prefix" = "NONE" && prefix="/usr"
 test "$prefix" = "/usr" && exec_prefix=""
 
+AC_GNU_SOURCE
+
 AM_DISABLE_SHARED
 AM_ENABLE_STATIC
 
@@ -32,7 +34,7 @@ AC_CHECK_HEADERS(errno.h fcntl.h limits.h unistd.h sys/time.h utmp.h \
        utime.h ulimit.h sys/resource.h gshadow.h shadow.h lastlog.h \
        locale.h rpc/key_prot.h)
 
-AC_CHECK_FUNCS(a64l fchmod fchown fseeko fsync getgroups gethostname getspnam \
+AC_CHECK_FUNCS(a64l fchmod fchown fsync getgroups gethostname getspnam \
        gettimeofday getusershell getutent initgroups lchown lckpwdf lstat \
        memcpy memset setgroups sigaction strchr updwtmp updwtmpx)
 AC_SYS_LARGEFILE
@@ -97,7 +99,6 @@ fi
 
 dnl Checks for library functions.
 AC_TYPE_GETGROUPS
-AC_PROG_GCC_TRADITIONAL
 AC_TYPE_SIGNAL
 AC_FUNC_UTIME_NULL
 AC_FUNC_STRFTIME
@@ -152,7 +153,7 @@ if test $shadow_cv_mailfile != none; then
 fi
 
 AC_CACHE_CHECK([location of utmp], shadow_cv_utmpdir,
-[for utmpdir in /var/run /var/adm /usr/adm /etc none; do
+[for shadow_cv_utmpdir in /var/run /var/adm /usr/adm /etc none; do
        if test -f $shadow_cv_utmpdir/utmp; then
                break
        fi
@@ -192,14 +193,11 @@ dnl (unlike many systems which have a limit of 8 characters), and can
 dnl be interrupted with Ctrl-C (unlike Linux libc).
 AC_DEFINE(getpass, libshadow_getpass)
 
-AC_ARG_ENABLE(desrpc, [  --enable-desrpc         try to use secure RPC in login (default if found)])
 AC_ARG_ENABLE(shadowgrp, [  --enable-shadowgrp      enable shadow group support [default=yes]])
 
 AC_ARG_WITH(libcrack, [  --with-libcrack       try to use libcrack (default if found)])
 AC_ARG_WITH(libcrypt, [  --with-libcrypt       try to use libcrypt (default if found)])
-AC_ARG_WITH(libopie,  [  --with-libopie                use libopie for OPIE support])
 AC_ARG_WITH(libpam,   [  --with-libpam                 use libpam for PAM support])
-AC_ARG_WITH(libskey,  [  --with-libskey                use libskey for S/Key support])
 AC_ARG_WITH(selinux,  [  --with-selinux                use SELinux support])
 
 dnl Check for some functions in libc first, only if not found check for
@@ -210,15 +208,6 @@ AC_SEARCH_LIBS(inet_ntoa, inet)
 AC_SEARCH_LIBS(socket, socket)
 AC_SEARCH_LIBS(gethostbyname, nsl)
 
-dnl XXX - getsecretkey() causes login to hang for 5 minutes on at least
-dnl one RH 4.0 system.  Use --disable-desrpc if you have this problem.
-dnl Reported by Mohan Khurana <mohan@stealth.net>.
-
-if test "$enable_desrpc" != "no" -a "$ac_cv_header_rpc_key_prot_h" = "yes" ; then
-       AC_CHECK_FUNC(getsecretkey, AC_DEFINE(DES_RPC),
-               AC_CHECK_LIB(rpcsvc, getsecretkey, AC_DEFINE(DES_RPC)))
-fi
-
 if test "$enable_shadowgrp" != "no"; then
        AC_DEFINE(SHADOWGRP)
 fi
@@ -236,17 +225,8 @@ if test "$with_libcrack" != "no"; then
        AC_CHECK_LIB(crack, FascistHistoryPw, AC_DEFINE(HAVE_LIBCRACK_PW))
 fi
 
-AC_SUBST(LIBSKEY)
-AC_SUBST(LIBMD)
-if test "$with_libskey" = "yes"; then
-       AC_CHECK_LIB(md, MD5Init, LIBMD=-lmd)
-       AC_CHECK_LIB(skey, skeychallenge, AC_DEFINE(SKEY) LIBSKEY=-lskey, [], $LIBMD $LIBCRYPT)
-elif test "$with_libopie" = "yes"; then
-       AC_CHECK_LIB(opie, opiechallenge, AC_DEFINE(OPIE) LIBSKEY=-lopie, [], $LIBCRYPT)
-fi
-
 if test "$with_selinux" = "yes"; then
-       AC_CHECK_LIB(selinux, is_selinux_enabled, [LIBSELINUX="-lselinux"], [SELinuux enabled but libselinux not found])
+       AC_CHECK_LIB(selinux, is_selinux_enabled, [LIBSELINUX="-lselinux"], [SELinux enabled but libselinux not found])
        AC_SUBST(LIBSELINUX)
        AC_CHECK_HEADERS(selinux/selinux.h, [], [selinux/selinux.h is missing])
        AC_DEFINE(WITH_SELINUX, 1, [Build shadow with SELinux support])
@@ -260,23 +240,20 @@ if test "$with_libpam" = "yes"; then
                AC_CHECK_LIB(pam_misc, main,
                        [LIBPAM="$LIBPAM -lpam_misc"],
                        AC_MSG_ERROR(libpam_misc is missing)
-               )]
+               )],
                [AC_MSG_CHECKING(use login access checking if PAM not used)
-               AC_DEFINE(LOGIN_ACCESS)
                AC_MSG_RESULT(yes)]
        )
        AC_MSG_CHECKING(use login and su access checking if PAM not used)
        AC_MSG_RESULT(no)
 else
        AC_MSG_CHECKING(use login and su access checking if PAM not used)
-       AC_DEFINE(LOGIN_ACCESS)
        AC_DEFINE(SU_ACCESS)
        AC_MSG_RESULT(yes)
 fi
 
 AM_GNU_GETTEXT_VERSION(0.12.1)
 AM_GNU_GETTEXT([external])
-AC_DEFINE_UNQUOTED(LOCALEDIR, "${datadir}/locale", [locale directory])
 
 AC_CONFIG_FILES([
        Makefile
index 810139b2a5d53b7b5bc701166bc5c40e1e9e33ee..ba1a8d9e2c759ba6d34861120b82aa0f7fc0ee8b 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -85,17 +85,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -185,9 +184,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  contrib/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  contrib/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  contrib/Makefile
+         $(AUTOMAKE) --foreign  contrib/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
diff --git a/doc/INSTALL b/doc/INSTALL
deleted file mode 100644 (file)
index 3b50ea9..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes a while.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
-     CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
-     Use and save the results of the tests in FILE instead of
-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
-     debugging `configure'.
-
-`--help'
-     Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`--version'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
index ade72e0daa793b7b2c11493baf73a8ef945331a6..ffd995b8e722d6c5b24fe30cda44979cd54aa2a5 100644 (file)
@@ -2,5 +2,5 @@
 # and also cooperate to make a distribution for `make dist'
 
 EXTRA_DIST = HOWTO LICENSE LSM README \
- README.limits README.linux README.mirrors README.nls README.pam \
- README.platforms README.sun4 WISHLIST console.c.spec.txt cracklib26.diff
+ README.limits README.linux README.nls README.pam \
+ README.platforms WISHLIST console.c.spec.txt cracklib26.diff
index 976a4ddf702d60b220b16c18d6ae7aaa4312dfc6..ccdc73fcd7d7f019fc19ed48c14d9d2e9629c477 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,8 +39,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       INSTALL
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -86,17 +85,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -171,8 +169,8 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 EXTRA_DIST = HOWTO LICENSE LSM README \
- README.limits README.linux README.mirrors README.nls README.pam \
- README.platforms README.sun4 WISHLIST console.c.spec.txt cracklib26.diff
+ README.limits README.linux README.nls README.pam \
+ README.platforms WISHLIST console.c.spec.txt cracklib26.diff
 
 all: all-am
 
@@ -186,9 +184,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  doc/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  doc/Makefile
+         $(AUTOMAKE) --foreign  doc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
diff --git a/doc/README.mirrors b/doc/README.mirrors
deleted file mode 100644 (file)
index ddc9611..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Primary sites for the Shadow Password Suite for Linux:
-
-ftp://piast.t19.ds.pwr.wroc.pl/pub/linux/shadow/
-ftp://ftp.ists.pwr.wroc.pl/pub/linux/shadow/
-http://www.itnet.pl/amelektr/linux/shadow/
-
-I upload latest versions here (and sometimes also to sunsite, but not
-every new release).  If you are not in Poland, these sites may be slow
-for you - please use a mirror near you.
-
-Thanks to several people who offered to mirror this archive.  Mirror
-sites known to me (with addresses of people who submitted them to
-this list) are listed below.  If you want your site to be added here,
-please let me know (specify the URL, and contact e-mail address).
-If any of these sites become way out of date and should be removed,
-or if they are good but the URL changes, please let me know too.
-
-Working mirrors that I know of, sorted by country (note: I removed
-a few mirrors that didn't work when I tried to access them several
-times - if any of them are still alive, please let me know):
-
-(XXX - list may be out of date now.)
-
-Brazil:
-
- ftp://ftp.athena.pads.ufrj.br/pub/linux/shadow/
-  Rafael Jorge Csura Szendrodi <szendro@santuario.pads.ufrj.br>
-
-Czech Republic:
-
- ftp://ftp.gts.cz/pub/linux/security/shadow/
-  Martin Mares <mj@mj.gts.cz>
-
-Greece:
-
- ftp://linux.forthnet.gr/pub/linux/shadow/
- http://linux.forthnet.gr/pub/linux/shadow/
-  Sotiris Tsimbonis <stsimb@forthnet.gr>
-
-Poland:
-
- ftp://xenium.pdi.net/pub/Crypto/shadow/
-  Marcin E. Bednarz <specula@pdi.net>
-
- ftp://giswitch.sggw.waw.pl/pub/Linux/shadow/
-  Marek Czajko <mcj@giswitch.sggw.waw.pl>
-
-Romania:
-
- ftp://ftp.kappa.ro/pub/Linux/Security/shadow/
-  Mircea Damian <dmircea@kappa.ro>
-
-United States:
-
- ftp://ftp.cqc.com/pub/mirrors/linux-shadow/
-  pacman@cqc.com
-
-Thanks,
-Marek Michalkiewicz <marekm@linux.org.pl>
-(or marekm@piast.t19.ds.pwr.wroc.pl, or marekm@bach.ists.pwr.wroc.pl)
diff --git a/doc/README.sun4 b/doc/README.sun4
deleted file mode 100644 (file)
index 8c3f037..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-[ $Id: README.sun4,v 1.1.1.1 1996/08/10 07:59:52 marekm Exp $ ]
-
-You'll need to do the following to get the shadow password dist to
-compile on a sun 4.1.1 system.
-
-copy Makefile.sun4 to Makefile, and make any system specific changes.
-
-copy config.h.sun4 config.h, and make any system specific changes.
-
-You may have to edit the pwd.h.m4 file by hand, as the sunos m4 may
-not grok the pwd.h.m4 file corectly.  If you have the /usr/5bin/m4,
-substitute that.  Be sure to delete the pwd.h file before typeing 
-'make' again, as there will be an empty one left from the failed attempt
-to use the standard sunos m4.
-
-type 'make'.  If everything goes well, then type 'make install'
-
-If using csh, then type 'rehash'.  cd to the /etc directory and type
-'pwconv'.  This will create two files,  nshadow and npasswd.
-now type 'mkpasswd -f nshadow' and 'mkpasswd -f npasswd'.  This will
-create the shadow password file.
-
-Note: The shadow group stuff does not work with sunos.  
-
-Note: ftp will still use the old password file.
-
-Note: if you run suns pcnfs, be aware that it will still be looking at the
-      old password file as well.  I may work out a patch for this, as I am
-      fairly certain the stuff on the sun side comes with source.
-
-Note: I have compiled this package with the standard c compiler and
-      suns unbundled c compiler at an optomization level of 2 in
-      both casses.  Haven't tried gcc yet, so I don't know wether it
-      works.  Same goes for suns C++ compiler.
-
-Note: has been compiled on a sun 3/75 running sunos 4.1.1.  Should compile
-      fine on sun 4's running 4.1.1, and may compile on suns running
-      4.1.  Have no idea what sort of success people will have that
-      are running 4.03 and older versions.
index 38f63ad0f8fef0c880364c0d82313f0f2c3bd07b..0c4312b8c7eca0e0c743220a1e6e7689732708ea 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -94,17 +94,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -199,9 +198,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  etc/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  etc/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  etc/Makefile
+         $(AUTOMAKE) --foreign  etc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -237,7 +236,13 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -249,7 +254,7 @@ $(RECURSIVE_TARGETS):
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -257,7 +262,13 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        case "$@" in \
          distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -278,7 +289,7 @@ maintainer-clean-recursive:
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
index 976f92bbbabf435cb78cca6fde0a9c28c3b46d82..cc002abfe4b5648a5b19e2cb66386015b7014d9e 100644 (file)
@@ -1,7 +1,7 @@
 #
 # /etc/login.defs - Configuration control definitions for the login package.
 #
-#      $Id: login.defs,v 1.5 2003/05/04 20:09:43 kloczek Exp $
+#      $Id: login.defs,v 1.6 2005/03/07 10:09:06 kloczek Exp $
 #
 # Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
 # If unspecified, some arbitrary (and possibly incorrect) value will
@@ -128,12 +128,6 @@ MAIL_DIR   /var/mail
 #HUSHLOGIN_FILE        .hushlogin
 HUSHLOGIN_FILE /etc/hushlogins
 
-#
-# If defined, the presence of this value in an /etc/passwd "shell" field will
-# disable logins for that user, although "su" will still be allowed.
-#
-NOLOGIN_STR    NOLOGIN
-
 #
 # If defined, either a TZ environment parameter spec or the
 # fully-rooted pathname of a file containing such a spec.
index 5ea0376c05441d937a6ca27de359a07545e74a82..ea43c1e9161b04ab6a319c7b6bc139ffda728e27 100644 (file)
@@ -1,7 +1,7 @@
 #
 # /etc/login.defs - Configuration control definitions for the login package.
 #
-#      $Id: login.defs.linux,v 1.14 2003/05/04 20:09:43 kloczek Exp $
+#      $Id: login.defs.linux,v 1.15 2005/03/07 10:09:06 kloczek Exp $
 #
 # Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
 # If unspecified, some arbitrary (and possibly incorrect) value will
@@ -138,14 +138,6 @@ MAIL_DIR   /var/spool/mail
 HUSHLOGIN_FILE .hushlogin
 #HUSHLOGIN_FILE        /etc/hushlogins
 
-#
-# If defined, the presence of this value in an /etc/passwd "shell" field will
-# disable logins for that user, although "su" will still be allowed.
-#
-# XXX this does not seem to be implemented yet...  --marekm
-# no, it was implemented but I ripped it out ;-) -- jfh
-NOLOGIN_STR    NOLOGIN
-
 #
 # If defined, either a TZ environment parameter spec or the
 # fully-rooted pathname of a file containing such a spec.
index 060341b09af9ba7ff15a3f1650b2f683b37268ec..17c85551b0229df445e91faaa7937c8cb20e2da2 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -85,17 +85,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -195,9 +194,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  etc/pam.d/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  etc/pam.d/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  etc/pam.d/Makefile
+         $(AUTOMAKE) --foreign  etc/pam.d/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 6ebe46de6cf49d03fd433ff1b6d11e031ce22dea..dd97db7aa1cae9655149aad9d21c6cf42476c0da 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2004-12-17.09
+scriptversion=2004-09-10.20
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -213,7 +213,7 @@ do
   fi
 
   # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 
   # Make sure that the destination directory exists.
 
@@ -226,8 +226,7 @@ do
     oIFS=$IFS
     # Some sh's can't handle IFS=/ for some reason.
     IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
+    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     IFS=$oIFS
 
     pathcomp=
@@ -296,7 +295,7 @@ do
               || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
               || {
                 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-                (exit 1); exit 1
+                (exit 1); exit
               }
             else
               :
@@ -307,12 +306,12 @@ do
           $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
         }
     }
-  fi || { (exit 1); exit 1; }
+  fi || { (exit 1); exit; }
 done
 
 # The final little trick to "correctly" pass the exit status to the exit trap.
 {
-  (exit 0); exit 0
+  (exit 0); exit
 }
 
 # Local variables:
index 149066b8af57c0ca8ff98eaf798a22b772470662..fe572bb765e1fab80a3c7bc50eccee4b518c665d 100644 (file)
@@ -2,3 +2,4 @@
 -i8
 -bad
 -pcs
+-l80
index 57efb17c0fb1e3983fb3d29d28df5d05f2ae6722..5a5b6dc380d12b5cda3fe9e62aa71bd943ea8c93 100644 (file)
@@ -6,7 +6,7 @@ DEFS =
 lib_LTLIBRARIES = libshadow.la
 
 libshadow_la_LDFLAGS = -version-info 0:0:0
-libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD) $(LIBSELINUX)
+libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSELINUX)
 
 libshadow_la_SOURCES = \
        commonio.c \
@@ -32,7 +32,6 @@ libshadow_la_SOURCES = \
        pwauth.h \
        pwio.c \
        pwio.h \
-       rad64.c \
        rcsid.h \
        sgetgrent.c \
        sgetpwent.c \
@@ -50,6 +49,5 @@ libshadow_la_SOURCES = \
 
 EXTRA_DIST = \
        .indent.pro \
-       grdbm.c gsdbm.c pwdbm.c spdbm.c \
        grpack.c gspack.c pwpack.c sppack.c \
        gshadow_.h
index a965a9b3c4e9ef59810d9d528e59c05d80419b9e..1453db0f73c177a53bbbc38af0f9c98385523868 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,12 +58,11 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libshadow_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libshadow_la_OBJECTS = commonio.lo encrypt.lo fputsx.lo getdef.lo \
        getpass.lo groupio.lo gshadow.lo lockpw.lo nscd.lo port.lo \
-       pwauth.lo pwio.lo rad64.lo sgetgrent.lo sgetpwent.lo \
-       sgroupio.lo shadow.lo shadowio.lo utent.lo
+       pwauth.lo pwio.lo sgetgrent.lo sgetpwent.lo sgroupio.lo \
+       shadow.lo shadowio.lo utent.lo
 libshadow_la_OBJECTS = $(am_libshadow_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -116,17 +115,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -203,7 +201,7 @@ target_alias = @target_alias@
 AUTOMAKE_OPTIONS = 1.0 foreign
 lib_LTLIBRARIES = libshadow.la
 libshadow_la_LDFLAGS = -version-info 0:0:0
-libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD) $(LIBSELINUX)
+libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSELINUX)
 libshadow_la_SOURCES = \
        commonio.c \
        commonio.h \
@@ -228,7 +226,6 @@ libshadow_la_SOURCES = \
        pwauth.h \
        pwio.c \
        pwio.h \
-       rad64.c \
        rcsid.h \
        sgetgrent.c \
        sgetpwent.c \
@@ -246,7 +243,6 @@ libshadow_la_SOURCES = \
 # sources for dbm support (not yet used)
 EXTRA_DIST = \
        .indent.pro \
-       grdbm.c gsdbm.c pwdbm.c spdbm.c \
        grpack.c gspack.c pwpack.c sppack.c \
        gshadow_.h
 
@@ -331,7 +327,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwauth.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwio.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rad64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sgetgrent.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sgetpwent.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sgroupio.Plo@am__quote@
index 7df6a52aa7b07f35f5b6fbe6d46eb8c475ae2800..5ecf7d7ce662c0cc799c4dca8d8e854ff2ba1b2c 100644 (file)
@@ -2,8 +2,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: commonio.c,v 1.27 2004/11/02 19:01:12 kloczek Exp $")
-
+RCSID ("$Id: commonio.c,v 1.28 2005/03/31 05:14:49 kloczek Exp $")
 #include "defines.h"
 #include <sys/stat.h>
 #include <utime.h>
@@ -18,30 +17,30 @@ RCSID("$Id: commonio.c,v 1.27 2004/11/02 19:01:12 kloczek Exp $")
 #endif
 #ifdef WITH_SELINUX
 #include <selinux/selinux.h>
-static security_context_t old_context=NULL;
+static security_context_t old_context = NULL;
 #endif
 #include "commonio.h"
 
 /* local function prototypes */
-static int check_link_count(const char *);
-static int do_lock_file(const char *, const char *);
-static FILE *fopen_set_perms(const char *, const char *, const struct stat *);
-static int create_backup(const char *, FILE *);
-static void free_linked_list(struct commonio_db *);
-static void add_one_entry(struct commonio_db *, struct commonio_entry *);
-static int name_is_nis(const char *);
-static int write_all(const struct commonio_db *);
-static struct commonio_entry *find_entry_by_name(struct commonio_db *, const char *);
+static int check_link_count (const char *);
+static int do_lock_file (const char *, const char *);
+static FILE *fopen_set_perms (const char *, const char *, const struct stat *);
+static int create_backup (const char *, FILE *);
+static void free_linked_list (struct commonio_db *);
+static void add_one_entry (struct commonio_db *, struct commonio_entry *);
+static int name_is_nis (const char *);
+static int write_all (const struct commonio_db *);
+static struct commonio_entry *find_entry_by_name (struct commonio_db *,
+                                                 const char *);
 
 static int lock_count = 0;
 static int nscd_need_reload = 0;
 
-static int
-check_link_count(const char *file)
+static int check_link_count (const char *file)
 {
        struct stat sb;
 
-       if (stat(file, &sb) != 0)
+       if (stat (file, &sb) != 0)
                return 0;
 
        if (sb.st_nlink != 2)
@@ -51,8 +50,7 @@ check_link_count(const char *file)
 }
 
 
-static int
-do_lock_file(const char *file, const char *lock)
+static int do_lock_file (const char *file, const char *lock)
 {
        int fd;
        int pid;
@@ -60,100 +58,99 @@ do_lock_file(const char *file, const char *lock)
        int retval;
        char buf[32];
 
-       if ((fd = open(file, O_CREAT|O_EXCL|O_WRONLY, 0600)) == -1)
+       if ((fd = open (file, O_CREAT | O_EXCL | O_WRONLY, 0600)) == -1)
                return 0;
 
-       pid = getpid();
-       snprintf(buf, sizeof buf, "%d", pid);
-       len = strlen(buf) + 1;
-       if (write(fd, buf, len) != len) {
-               close(fd);
-               unlink(file);
+       pid = getpid ();
+       snprintf (buf, sizeof buf, "%d", pid);
+       len = strlen (buf) + 1;
+       if (write (fd, buf, len) != len) {
+               close (fd);
+               unlink (file);
                return 0;
        }
-       close(fd);
+       close (fd);
 
-       if (link(file, lock) == 0) {
-               retval = check_link_count(file);
-               unlink(file);
+       if (link (file, lock) == 0) {
+               retval = check_link_count (file);
+               unlink (file);
                return retval;
        }
 
-       if ((fd = open(lock, O_RDWR)) == -1) {
-               unlink(file);
+       if ((fd = open (lock, O_RDWR)) == -1) {
+               unlink (file);
                errno = EINVAL;
                return 0;
        }
-       len = read(fd, buf, sizeof(buf) - 1);
-       close(fd);
+       len = read (fd, buf, sizeof (buf) - 1);
+       close (fd);
        if (len <= 0) {
-               unlink(file);
+               unlink (file);
                errno = EINVAL;
                return 0;
        }
        buf[len] = '\0';
-       if ((pid = strtol(buf, (char **) 0, 10)) == 0) {
-               unlink(file);
+       if ((pid = strtol (buf, (char **) 0, 10)) == 0) {
+               unlink (file);
                errno = EINVAL;
                return 0;
        }
-       if (kill(pid, 0) == 0)  {
-               unlink(file);
+       if (kill (pid, 0) == 0) {
+               unlink (file);
                errno = EEXIST;
                return 0;
        }
-       if (unlink(lock) != 0) {
-               unlink(file);
+       if (unlink (lock) != 0) {
+               unlink (file);
                return 0;
        }
 
        retval = 0;
-       if (link(file, lock) == 0 && check_link_count(file))
+       if (link (file, lock) == 0 && check_link_count (file))
                retval = 1;
 
-       unlink(file);
+       unlink (file);
        return retval;
 }
 
 
-static FILE *
-fopen_set_perms(const char *name, const char *mode, const struct stat *sb)
+static FILE *fopen_set_perms (const char *name, const char *mode,
+                             const struct stat *sb)
 {
        FILE *fp;
        mode_t mask;
 
-       mask = umask(0777);
-       fp = fopen(name, mode);
-       umask(mask);
+       mask = umask (0777);
+       fp = fopen (name, mode);
+       umask (mask);
        if (!fp)
                return NULL;
 
 #ifdef HAVE_FCHOWN
-       if (fchown(fileno(fp), sb->st_uid, sb->st_gid))
+       if (fchown (fileno (fp), sb->st_uid, sb->st_gid))
                goto fail;
 #else
-       if (chown(name, sb->st_mode))
+       if (chown (name, sb->st_mode))
                goto fail;
 #endif
 
 #ifdef HAVE_FCHMOD
-       if (fchmod(fileno(fp), sb->st_mode & 0664))
+       if (fchmod (fileno (fp), sb->st_mode & 0664))
                goto fail;
 #else
-       if (chmod(name, sb->st_mode & 0664))
+       if (chmod (name, sb->st_mode & 0664))
                goto fail;
 #endif
        return fp;
 
-fail:
-       fclose(fp);
-       unlink(name);
+      fail:
+       fclose (fp);
+       unlink (name);
        return NULL;
 }
 
 
-static int
-create_backup(const char *backup, FILE *fp)
+static int create_backup (const char *backup, FILE * fp)
 {
        struct stat sb;
        struct utimbuf ub;
@@ -161,38 +158,37 @@ create_backup(const char *backup, FILE *fp)
        int c;
        mode_t mask;
 
-       if (fstat(fileno(fp), &sb))
+       if (fstat (fileno (fp), &sb))
                return -1;
 
-       mask = umask(077);
-       bkfp = fopen(backup, "w");
-       umask(mask);
+       mask = umask (077);
+       bkfp = fopen (backup, "w");
+       umask (mask);
        if (!bkfp)
                return -1;
 
        /* TODO: faster copy, not one-char-at-a-time.  --marekm */
        c = 0;
-       if (fseek(fp, 0, SEEK_SET) == 0)
-               while ((c = getc(fp)) != EOF) {
-                       if (putc(c, bkfp) == EOF)
+       if (fseek (fp, 0, SEEK_SET) == 0)
+               while ((c = getc (fp)) != EOF) {
+                       if (putc (c, bkfp) == EOF)
                                break;
                }
-       if (c != EOF || ferror(fp) || fflush(bkfp)) {
-               fclose(bkfp);
+       if (c != EOF || ferror (fp) || fflush (bkfp)) {
+               fclose (bkfp);
                return -1;
        }
-       if (fclose(bkfp))
+       if (fclose (bkfp))
                return -1;
 
        ub.actime = sb.st_atime;
        ub.modtime = sb.st_mtime;
-       utime(backup, &ub);
+       utime (backup, &ub);
        return 0;
 }
 
 
-static void
-free_linked_list(struct commonio_db *db)
+static void free_linked_list (struct commonio_db *db)
 {
        struct commonio_entry *p;
 
@@ -201,34 +197,31 @@ free_linked_list(struct commonio_db *db)
                db->head = p->next;
 
                if (p->line)
-                       free(p->line);
+                       free (p->line);
 
                if (p->eptr)
-                       db->ops->free(p->eptr);
+                       db->ops->free (p->eptr);
 
-               free(p);
+               free (p);
        }
        db->tail = NULL;
 }
 
 
-int
-commonio_setname(struct commonio_db *db, const char *name)
+int commonio_setname (struct commonio_db *db, const char *name)
 {
-       snprintf(db->filename, sizeof(db->filename), "%s", name);
+       snprintf (db->filename, sizeof (db->filename), "%s", name);
        return 1;
 }
 
 
-int
-commonio_present(const struct commonio_db *db)
+int commonio_present (const struct commonio_db *db)
 {
-       return (access(db->filename, F_OK) == 0);
+       return (access (db->filename, F_OK) == 0);
 }
 
 
-int
-commonio_lock_nowait(struct commonio_db *db)
+int commonio_lock_nowait (struct commonio_db *db)
 {
        char file[1024];
        char lock[1024];
@@ -236,9 +229,9 @@ commonio_lock_nowait(struct commonio_db *db)
        if (db->locked)
                return 1;
 
-       snprintf(file, sizeof file, "%s.%ld", db->filename, (long) getpid());
-       snprintf(lock, sizeof lock, "%s.lock", db->filename);
-       if (do_lock_file(file, lock)) {
+       snprintf (file, sizeof file, "%s.%ld", db->filename, (long) getpid ());
+       snprintf (lock, sizeof lock, "%s.lock", db->filename);
+       if (do_lock_file (file, lock)) {
                db->locked = 1;
                lock_count++;
                return 1;
@@ -247,8 +240,7 @@ commonio_lock_nowait(struct commonio_db *db)
 }
 
 
-int
-commonio_lock(struct commonio_db *db)
+int commonio_lock (struct commonio_db *db)
 {
 #ifdef HAVE_LCKPWDF
        /*
@@ -262,15 +254,15 @@ commonio_lock(struct commonio_db *db)
         * (no retries, it should always succeed).
         */
        if (lock_count == 0) {
-               if (lckpwdf() == -1)
-                       return 0;  /* failure */
+               if (lckpwdf () == -1)
+                       return 0;       /* failure */
        }
 
-       if (commonio_lock_nowait(db))
-               return 1;  /* success */
+       if (commonio_lock_nowait (db))
+               return 1;       /* success */
 
-       ulckpwdf();
-       return 0;  /* failure */
+       ulckpwdf ();
+       return 0;               /* failure */
 #else
        int i;
 
@@ -286,19 +278,18 @@ commonio_lock(struct commonio_db *db)
 #endif
        for (i = 0; i < LOCK_TRIES; i++) {
                if (i > 0)
-                       sleep(LOCK_SLEEP);  /* delay between retries */
-               if (commonio_lock_nowait(db))
-                       return 1;  /* success */
+                       sleep (LOCK_SLEEP);     /* delay between retries */
+               if (commonio_lock_nowait (db))
+                       return 1;       /* success */
                /* no unnecessary retries on "permission denied" errors */
-               if (geteuid() != 0)
+               if (geteuid () != 0)
                        return 0;
        }
-       return 0;  /* failure */
+       return 0;               /* failure */
 #endif
 }
 
-static void
-dec_lock_count(void)
+static void dec_lock_count (void)
 {
        if (lock_count > 0) {
                lock_count--;
@@ -306,48 +297,46 @@ dec_lock_count(void)
                        /* Tell nscd when lock count goes to zero,
                           if any of the files were changed.  */
                        if (nscd_need_reload) {
-                               nscd_flush_cache("passwd");
-                               nscd_flush_cache("group");
+                               nscd_flush_cache ("passwd");
+                               nscd_flush_cache ("group");
                                nscd_need_reload = 0;
                        }
 #ifdef HAVE_LCKPWDF
-                       ulckpwdf();
+                       ulckpwdf ();
 #endif
                }
        }
 }
 
 
-int
-commonio_unlock(struct commonio_db *db)
+int commonio_unlock (struct commonio_db *db)
 {
        char lock[1024];
 
        if (db->isopen) {
                db->readonly = 1;
-               if (!commonio_close(db)) {
+               if (!commonio_close (db)) {
                        if (db->locked)
-                               dec_lock_count();
+                               dec_lock_count ();
                        return 0;
                }
        }
-       if (db->locked) {
+       if (db->locked) {
                /*
                 * Unlock in reverse order: remove the lock file,
                 * then call ulckpwdf() (if used) on last unlock.
                 */
-               db->locked = 0;
-               snprintf(lock, sizeof lock, "%s.lock", db->filename);
-               unlink(lock);
-               dec_lock_count();
+               db->locked = 0;
+               snprintf (lock, sizeof lock, "%s.lock", db->filename);
+               unlink (lock);
+               dec_lock_count ();
                return 1;
        }
        return 0;
 }
 
 
-static void
-add_one_entry(struct commonio_db *db, struct commonio_entry *p)
+static void add_one_entry (struct commonio_db *db, struct commonio_entry *p)
 {
        p->next = NULL;
        p->prev = db->tail;
@@ -359,8 +348,7 @@ add_one_entry(struct commonio_db *db, struct commonio_entry *p)
 }
 
 
-static int
-name_is_nis(const char *n)
+static int name_is_nis (const char *n)
 {
        return (n[0] == '+' || n[0] == '-');
 }
@@ -375,15 +363,16 @@ name_is_nis(const char *n)
 #endif
 
 #if KEEP_NIS_AT_END
-static void add_one_entry_nis(struct commonio_db *, struct commonio_entry *);
+static void add_one_entry_nis (struct commonio_db *, struct commonio_entry *);
 
 static void
-add_one_entry_nis(struct commonio_db *db, struct commonio_entry *newp)
+add_one_entry_nis (struct commonio_db *db, struct commonio_entry *newp)
 {
        struct commonio_entry *p;
 
        for (p = db->head; p; p = p->next) {
-               if (name_is_nis(p->eptr ? db->ops->getname(p->eptr) : p->line)) {
+               if (name_is_nis
+                   (p->eptr ? db->ops->getname (p->eptr) : p->line)) {
                        newp->next = p;
                        newp->prev = p->prev;
                        if (p->prev)
@@ -394,16 +383,15 @@ add_one_entry_nis(struct commonio_db *db, struct commonio_entry *newp)
                        return;
                }
        }
-       add_one_entry(db, newp);
+       add_one_entry (db, newp);
 }
-#endif /* KEEP_NIS_AT_END */
+#endif                         /* KEEP_NIS_AT_END */
 
 /* Initial buffer size, as well as increment if not sufficient
    (for reading very long lines in group files).  */
 #define BUFLEN 4096
 
-int
-commonio_open(struct commonio_db *db, int mode)
+int commonio_open (struct commonio_db *db, int mode)
 {
        char *buf;
        char *cp;
@@ -429,7 +417,7 @@ commonio_open(struct commonio_db *db, int mode)
        db->head = db->tail = db->cursor = NULL;
        db->changed = 0;
 
-       db->fp = fopen(db->filename, db->readonly ? "r" : "r+");
+       db->fp = fopen (db->filename, db->readonly ? "r" : "r+");
 
        /*
         * If O_CREAT was specified and the file didn't exist, it will be
@@ -442,48 +430,47 @@ commonio_open(struct commonio_db *db, int mode)
                }
                return 0;
        }
-
 #ifdef WITH_SELINUX
-       db->scontext=NULL;
-       if (is_selinux_enabled() &&  (! db->readonly)) {
-         if (fgetfilecon(fileno(db->fp),&db->scontext) < 0) {
-               goto cleanup_errno;
-         }
+       db->scontext = NULL;
+       if (is_selinux_enabled () && (!db->readonly)) {
+               if (fgetfilecon (fileno (db->fp), &db->scontext) < 0) {
+                       goto cleanup_errno;
+               }
        }
 #endif
 
        buflen = BUFLEN;
-       buf = (char *) malloc(buflen);
+       buf = (char *) malloc (buflen);
        if (!buf)
                goto cleanup_ENOMEM;
 
-       while (db->ops->fgets(buf, buflen, db->fp)) {
-               while (!(cp = strrchr(buf, '\n')) && !feof(db->fp)) {
+       while (db->ops->fgets (buf, buflen, db->fp)) {
+               while (!(cp = strrchr (buf, '\n')) && !feof (db->fp)) {
                        int len;
 
                        buflen += BUFLEN;
-                       cp = (char *) realloc(buf, buflen);
+                       cp = (char *) realloc (buf, buflen);
                        if (!cp)
                                goto cleanup_buf;
                        buf = cp;
-                       len = strlen(buf);
-                       db->ops->fgets(buf + len, buflen - len, db->fp);
+                       len = strlen (buf);
+                       db->ops->fgets (buf + len, buflen - len, db->fp);
                }
-               if ((cp = strrchr(buf, '\n')))
+               if ((cp = strrchr (buf, '\n')))
                        *cp = '\0';
 
-               if (!(line = strdup(buf)))
+               if (!(line = strdup (buf)))
                        goto cleanup_buf;
 
-               if (name_is_nis(line)) {
+               if (name_is_nis (line)) {
                        eptr = NULL;
-               } else if ((eptr = db->ops->parse(line))) {
-                       eptr = db->ops->dup(eptr);
+               } else if ((eptr = db->ops->parse (line))) {
+                       eptr = db->ops->dup (eptr);
                        if (!eptr)
                                goto cleanup_line;
                }
 
-               p = (struct commonio_entry *) malloc(sizeof *p);
+               p = (struct commonio_entry *) malloc (sizeof *p);
                if (!p)
                        goto cleanup_entry;
 
@@ -491,36 +478,36 @@ commonio_open(struct commonio_db *db, int mode)
                p->line = line;
                p->changed = 0;
 
-               add_one_entry(db, p);
+               add_one_entry (db, p);
        }
 
-       free(buf);
+       free (buf);
 
-       if (ferror(db->fp))
+       if (ferror (db->fp))
                goto cleanup_errno;
 
        db->isopen = 1;
        return 1;
 
-cleanup_entry:
+      cleanup_entry:
        if (eptr)
-               db->ops->free(eptr);
-cleanup_line:
-       free(line);
-cleanup_buf:
-       free(buf);
-cleanup_ENOMEM:
+               db->ops->free (eptr);
+      cleanup_line:
+       free (line);
+      cleanup_buf:
+       free (buf);
+      cleanup_ENOMEM:
        errno = ENOMEM;
-cleanup_errno:
+      cleanup_errno:
        saved_errno = errno;
-       free_linked_list(db);
+       free_linked_list (db);
 #ifdef WITH_SELINUX
-       if (db->scontext!= NULL) {
-         freecon(db->scontext);
-         db->scontext=NULL;
+       if (db->scontext != NULL) {
+               freecon (db->scontext);
+               db->scontext = NULL;
        }
 #endif
-       fclose(db->fp);
+       fclose (db->fp);
        db->fp = NULL;
        errno = saved_errno;
        return 0;
@@ -530,7 +517,7 @@ cleanup_errno:
  * Sort given db according to cmp function (usually compares uids)
  */
 int
-commonio_sort(struct commonio_db *db, int (*cmp)(const void *, const void *))
+commonio_sort (struct commonio_db *db, int (*cmp) (const void *, const void *))
 {
        struct commonio_entry **entries, *ptr;
        int n = 0, i;
@@ -540,29 +527,29 @@ commonio_sort(struct commonio_db *db, int (*cmp)(const void *, const void *))
 
        if (n <= 1)
                return 0;
-               
-       entries = malloc(n * sizeof(struct commonio_entry*));
+
+       entries = malloc (n * sizeof (struct commonio_entry *));
        if (entries == NULL)
                return -1;
-       
+
        n = 0;
        for (ptr = db->head; ptr; ptr = ptr->next)
                entries[n++] = ptr;
-       qsort(entries, n, sizeof(struct commonio_entry*), cmp);
-       
+       qsort (entries, n, sizeof (struct commonio_entry *), cmp);
+
        db->head = entries[0];
        db->tail = entries[--n];
        db->head->prev = NULL;
        db->head->next = entries[1];
-       db->tail->prev = entries[n-1];
+       db->tail->prev = entries[n - 1];
        db->tail->next = NULL;
 
        for (i = 1; i < n; i++) {
-               entries[i]->prev = entries[i-1];
-               entries[i]->next = entries[i+1];
+               entries[i]->prev = entries[i - 1];
+               entries[i]->next = entries[i + 1];
        }
 
-       free(entries);
+       free (entries);
        db->changed = 1;
 
        return 0;
@@ -571,8 +558,7 @@ commonio_sort(struct commonio_db *db, int (*cmp)(const void *, const void *))
 /*
  * Sort entries in db according to order in another.
  */
-int
-commonio_sort_wrt(struct commonio_db *shadow, struct commonio_db *passwd)
+int commonio_sort_wrt (struct commonio_db *shadow, struct commonio_db *passwd)
 {
        struct commonio_entry *head = NULL, *pw_ptr, *spw_ptr;
        const char *name;
@@ -580,34 +566,34 @@ commonio_sort_wrt(struct commonio_db *shadow, struct commonio_db *passwd)
        for (pw_ptr = passwd->head; pw_ptr; pw_ptr = pw_ptr->next) {
                if (pw_ptr->eptr == NULL)
                        continue;
-               name = passwd->ops->getname(pw_ptr->eptr);
+               name = passwd->ops->getname (pw_ptr->eptr);
                for (spw_ptr = shadow->head; spw_ptr; spw_ptr = spw_ptr->next)
-                       if (strcmp(name, shadow->ops->getname(spw_ptr->eptr)) == 0)
+                       if (strcmp (name, shadow->ops->getname (spw_ptr->eptr))
+                           == 0)
                                break;
-               if (spw_ptr == NULL) 
+               if (spw_ptr == NULL)
                        continue;
-               commonio_del_entry(shadow, spw_ptr);
+               commonio_del_entry (shadow, spw_ptr);
                spw_ptr->next = head;
                head = spw_ptr;
        }
-       
+
        for (spw_ptr = head; spw_ptr; spw_ptr = head) {
                head = head->next;
-               
+
                if (shadow->head)
                        shadow->head->prev = spw_ptr;
                spw_ptr->next = shadow->head;
                shadow->head = spw_ptr;
        }
-       
+
        shadow->head->prev = NULL;
        shadow->changed = 1;
 
        return 0;
 }
 
-static int
-write_all(const struct commonio_db *db)
+static int write_all (const struct commonio_db *db)
 {
        const struct commonio_entry *p;
        void *eptr;
@@ -615,12 +601,12 @@ write_all(const struct commonio_db *db)
        for (p = db->head; p; p = p->next) {
                if (p->changed) {
                        eptr = p->eptr;
-                       if (db->ops->put(eptr, db->fp))
+                       if (db->ops->put (eptr, db->fp))
                                return -1;
                } else if (p->line) {
-                       if (db->ops->fputs(p->line, db->fp) == EOF)
+                       if (db->ops->fputs (p->line, db->fp) == EOF)
                                return -1;
-                       if (putc('\n', db->fp) == EOF)
+                       if (putc ('\n', db->fp) == EOF)
                                return -1;
                }
        }
@@ -628,8 +614,7 @@ write_all(const struct commonio_db *db)
 }
 
 
-int
-commonio_close(struct commonio_db *db)
+int commonio_close (struct commonio_db *db)
 {
        char buf[1024];
        int errors = 0;
@@ -642,41 +627,41 @@ commonio_close(struct commonio_db *db)
        db->isopen = 0;
 
        if (!db->changed || db->readonly) {
-               fclose(db->fp);
+               fclose (db->fp);
                db->fp = NULL;
                goto success;
        }
 
-       memzero(&sb, sizeof sb);
+       memzero (&sb, sizeof sb);
        if (db->fp) {
-               if (fstat(fileno(db->fp), &sb)) {
-                       fclose(db->fp);
+               if (fstat (fileno (db->fp), &sb)) {
+                       fclose (db->fp);
                        db->fp = NULL;
                        goto fail;
                }
-
 #ifdef WITH_SELINUX
                if (db->scontext != NULL) {
-                 int stat=getfscreatecon(&old_context);
-                 if (stat< 0) {
-                   errors++;
-                   goto fail;
-                 }
-                 if (setfscreatecon(db->scontext)<0) {
-                   errors++;
-                   goto fail;
-                 }
+                       int stat = getfscreatecon (&old_context);
+
+                       if (stat < 0) {
+                               errors++;
+                               goto fail;
+                       }
+                       if (setfscreatecon (db->scontext) < 0) {
+                               errors++;
+                               goto fail;
+                       }
                }
 #endif
                /*
                 * Create backup file.
                 */
-               snprintf(buf, sizeof buf, "%s-", db->filename);
+               snprintf (buf, sizeof buf, "%s-", db->filename);
 
-               if (create_backup(buf, db->fp))
+               if (create_backup (buf, db->fp))
                        errors++;
 
-               if (fclose(db->fp))
+               if (fclose (db->fp))
                        errors++;
 
                if (errors) {
@@ -693,77 +678,76 @@ commonio_close(struct commonio_db *db)
                sb.st_gid = 0;
        }
 
-       snprintf(buf, sizeof buf, "%s+", db->filename);
+       snprintf (buf, sizeof buf, "%s+", db->filename);
 
-       db->fp = fopen_set_perms(buf, "w", &sb);
+       db->fp = fopen_set_perms (buf, "w", &sb);
        if (!db->fp)
                goto fail;
 
-       if (write_all(db))
+       if (write_all (db))
                errors++;
 
-       if (fflush(db->fp))
+       if (fflush (db->fp))
                errors++;
 #ifdef HAVE_FSYNC
-       if (fsync(fileno(db->fp)))
+       if (fsync (fileno (db->fp)))
                errors++;
 #else
-       sync();
+       sync ();
 #endif
-       if (fclose(db->fp))
+       if (fclose (db->fp))
                errors++;
 
        db->fp = NULL;
 
        if (errors) {
-               unlink(buf);
+               unlink (buf);
                goto fail;
        }
 
-       if (rename(buf, db->filename))
+       if (rename (buf, db->filename))
                goto fail;
 
        nscd_need_reload = 1;
        goto success;
-fail:
+      fail:
        errors++;
-success:
+      success:
 
 #ifdef WITH_SELINUX
        if (db->scontext != NULL) {
-         if (setfscreatecon(old_context)<0) {
-           errors++;
-         }
-         if (old_context != NULL) {              
-           freecon(old_context);
-           old_context=NULL;
-         }
-         freecon(db->scontext);
-         db->scontext=NULL;
+               if (setfscreatecon (old_context) < 0) {
+                       errors++;
+               }
+               if (old_context != NULL) {
+                       freecon (old_context);
+                       old_context = NULL;
+               }
+               freecon (db->scontext);
+               db->scontext = NULL;
        }
 #endif
-       free_linked_list(db);
-       return errors==0;
+       free_linked_list (db);
+       return errors == 0;
 }
 
 
-static struct commonio_entry *
-find_entry_by_name(struct commonio_db *db, const char *name)
+static struct commonio_entry *find_entry_by_name (struct commonio_db *db,
+                                                 const char *name)
 {
        struct commonio_entry *p;
        void *ep;
 
        for (p = db->head; p; p = p->next) {
                ep = p->eptr;
-               if (ep && strcmp(db->ops->getname(ep), name) == 0)
+               if (ep && strcmp (db->ops->getname (ep), name) == 0)
                        break;
        }
        return p;
 }
 
 
-int
-commonio_update(struct commonio_db *db, const void *eptr)
+int commonio_update (struct commonio_db *db, const void *eptr)
 {
        struct commonio_entry *p;
        void *nentry;
@@ -772,13 +756,13 @@ commonio_update(struct commonio_db *db, const void *eptr)
                errno = EINVAL;
                return 0;
        }
-       if (!(nentry = db->ops->dup(eptr))) {
+       if (!(nentry = db->ops->dup (eptr))) {
                errno = ENOMEM;
                return 0;
        }
-       p = find_entry_by_name(db, db->ops->getname(eptr));
+       p = find_entry_by_name (db, db->ops->getname (eptr));
        if (p) {
-               db->ops->free(p->eptr);
+               db->ops->free (p->eptr);
                p->eptr = nentry;
                p->changed = 1;
                db->cursor = p;
@@ -787,9 +771,9 @@ commonio_update(struct commonio_db *db, const void *eptr)
                return 1;
        }
        /* not found, new entry */
-       p = (struct commonio_entry *) malloc(sizeof *p);
+       p = (struct commonio_entry *) malloc (sizeof *p);
        if (!p) {
-               db->ops->free(nentry);
+               db->ops->free (nentry);
                errno = ENOMEM;
                return 0;
        }
@@ -799,9 +783,9 @@ commonio_update(struct commonio_db *db, const void *eptr)
        p->changed = 1;
 
 #if KEEP_NIS_AT_END
-       add_one_entry_nis(db, p);
+       add_one_entry_nis (db, p);
 #else
-       add_one_entry(db, p);
+       add_one_entry (db, p);
 #endif
 
        db->changed = 1;
@@ -809,8 +793,7 @@ commonio_update(struct commonio_db *db, const void *eptr)
 }
 
 
-void
-commonio_del_entry(struct commonio_db *db, const struct commonio_entry *p)
+void commonio_del_entry (struct commonio_db *db, const struct commonio_entry *p)
 {
        if (p == db->cursor)
                db->cursor = p->next;
@@ -829,8 +812,7 @@ commonio_del_entry(struct commonio_db *db, const struct commonio_entry *p)
 }
 
 
-int
-commonio_remove(struct commonio_db *db, const char *name)
+int commonio_remove (struct commonio_db *db, const char *name)
 {
        struct commonio_entry *p;
 
@@ -838,26 +820,25 @@ commonio_remove(struct commonio_db *db, const char *name)
                errno = EINVAL;
                return 0;
        }
-       p = find_entry_by_name(db, name);
+       p = find_entry_by_name (db, name);
        if (!p) {
                errno = ENOENT;
                return 0;
        }
 
-       commonio_del_entry(db, p);
+       commonio_del_entry (db, p);
 
        if (p->line)
-               free(p->line);
+               free (p->line);
 
        if (p->eptr)
-               db->ops->free(p->eptr);
+               db->ops->free (p->eptr);
 
        return 1;
 }
 
 
-const void *
-commonio_locate(struct commonio_db *db, const char *name)
+const void *commonio_locate (struct commonio_db *db, const char *name)
 {
        struct commonio_entry *p;
 
@@ -865,7 +846,7 @@ commonio_locate(struct commonio_db *db, const char *name)
                errno = EINVAL;
                return NULL;
        }
-       p = find_entry_by_name(db, name);
+       p = find_entry_by_name (db, name);
        if (!p) {
                errno = ENOENT;
                return NULL;
@@ -875,8 +856,7 @@ commonio_locate(struct commonio_db *db, const char *name)
 }
 
 
-int
-commonio_rewind(struct commonio_db *db)
+int commonio_rewind (struct commonio_db *db)
 {
        if (!db->isopen) {
                errno = EINVAL;
@@ -887,8 +867,7 @@ commonio_rewind(struct commonio_db *db)
 }
 
 
-const void *
-commonio_next(struct commonio_db *db)
+const void *commonio_next (struct commonio_db *db)
 {
        void *eptr;
 
index c20d61edf2e90aaab4359a94f7192fd8217c6a7a..b1a0f487265c1b0fd0bd3151f16cc4d065b7cc84 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: commonio.h,v 1.8 2004/10/11 04:40:29 kloczek Exp $ */
+/* $Id: commonio.h,v 1.9 2005/03/31 05:14:49 kloczek Exp $ */
 
 #ifdef WITH_SELINUX
 #include <selinux/selinux.h>
@@ -8,7 +8,7 @@
  */
 struct commonio_entry {
        char *line;
-       void *eptr;  /* struct passwd, struct spwd, ... */
+       void *eptr;             /* struct passwd, struct spwd, ... */
        struct commonio_entry *prev, *next;
        int changed:1;
 };
@@ -21,37 +21,37 @@ struct commonio_ops {
         * Make a copy of the object (for example, struct passwd)
         * and all strings pointed by it, in malloced memory.
         */
-       void *(*dup)(const void *);
+       void *(*dup) (const void *);
 
        /*
         * free() the object including any strings pointed by it.
         */
-       void (*free)(void *);
+       void (*free) (void *);
 
        /*
         * Return the name of the object (for example, pw_name
         * for struct passwd).
         */
-       const char *(*getname)(const void *);
+       const char *(*getname) (const void *);
 
        /*
         * Parse a string, return object (in static area -
         * should be copied using the dup operation above).
         */
-       void *(*parse)(const char *);
+       void *(*parse) (const char *);
 
        /*
         * Write the object to the file (this calls putpwent()
         * for struct passwd, for example).
         */
-       int (*put)(const void *, FILE *);
+       int (*put) (const void *, FILE *);
 
        /*
         * fgets and fputs (can be replaced by versions that
         * understand line continuation conventions).
         */
-       char *(*fgets)(char *, int, FILE *);
-       int (*fputs)(const char *, FILE *);
+       char *(*fgets) (char *, int, FILE *);
+       int (*fputs) (const char *, FILE *);
 };
 
 /*
@@ -74,7 +74,7 @@ struct commonio_db {
        FILE *fp;
 
 #ifdef WITH_SELINUX
-        security_context_t scontext;
+       security_context_t scontext;
 #endif
        /*
         * Head, tail, current position in linked list.
@@ -90,19 +90,21 @@ struct commonio_db {
        int readonly:1;
 };
 
-extern int commonio_setname(struct commonio_db *, const char *);
-extern int commonio_present(const struct commonio_db *);
-extern int commonio_lock(struct commonio_db *);
-extern int commonio_lock_nowait(struct commonio_db *);
-extern int commonio_open(struct commonio_db *, int);
-extern const void *commonio_locate(struct commonio_db *, const char *);
-extern int commonio_update(struct commonio_db *, const void *);
-extern int commonio_remove(struct commonio_db *, const char *);
-extern int commonio_rewind(struct commonio_db *);
-extern const void *commonio_next(struct commonio_db *);
-extern int commonio_close(struct commonio_db *);
-extern int commonio_unlock(struct commonio_db *);
-extern void commonio_del_entry(struct commonio_db *, const struct commonio_entry *);
-extern int commonio_sort_wrt(struct commonio_db *shadow, struct commonio_db *passwd);
-extern int commonio_sort(struct commonio_db *db, int (*cmp)(const void *, const void *));
-
+extern int commonio_setname (struct commonio_db *, const char *);
+extern int commonio_present (const struct commonio_db *);
+extern int commonio_lock (struct commonio_db *);
+extern int commonio_lock_nowait (struct commonio_db *);
+extern int commonio_open (struct commonio_db *, int);
+extern const void *commonio_locate (struct commonio_db *, const char *);
+extern int commonio_update (struct commonio_db *, const void *);
+extern int commonio_remove (struct commonio_db *, const char *);
+extern int commonio_rewind (struct commonio_db *);
+extern const void *commonio_next (struct commonio_db *);
+extern int commonio_close (struct commonio_db *);
+extern int commonio_unlock (struct commonio_db *);
+extern void commonio_del_entry (struct commonio_db *,
+                               const struct commonio_entry *);
+extern int commonio_sort_wrt (struct commonio_db *shadow,
+                             struct commonio_db *passwd);
+extern int commonio_sort (struct commonio_db *db,
+                         int (*cmp) (const void *, const void *));
index 447d9a902639a1f26bdda05b3e24e467415aa84b..0b6af10483a882bc715526d5549b3456ab5ffeb9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: defines.h,v 1.24 2005/01/17 19:03:34 kloczek Exp $ */
+/* $Id: defines.h,v 1.25 2005/03/31 05:14:49 kloczek Exp $ */
 /* some useful defines */
 
 #ifndef _DEFINES_H_
 # define _(Text) gettext (Text)
 #else
 # undef bindtextdomain
-# define bindtextdomain(Domain, Directory) /* empty */
+# define bindtextdomain(Domain, Directory)     /* empty */
 # undef textdomain
-# define textdomain(Domain) /* empty */
+# define textdomain(Domain)    /* empty */
 # define _(Text) Text
 #endif
 
 #if STDC_HEADERS
 # include <stdlib.h>
 # include <string.h>
-#else  /* not STDC_HEADERS */
+#else                          /* not STDC_HEADERS */
 # ifndef HAVE_STRCHR
 #  define strchr index
 #  define strrchr rindex
 # endif
-char *strchr(), *strrchr(), *strtok();
+char *strchr (), *strrchr (), *strtok ();
+
 # ifndef HAVE_MEMCPY
 #  define memcpy(d, s, n) bcopy((s), (d), (n))
 # endif
-#endif /* not STDC_HEADERS */
+#endif                         /* not STDC_HEADERS */
 
 #if HAVE_ERRNO_H
 # include <errno.h>
@@ -63,32 +64,32 @@ char *strchr(), *strrchr(), *strtok();
 #if TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
-#else  /* not TIME_WITH_SYS_TIME */
+#else                          /* not TIME_WITH_SYS_TIME */
 # if HAVE_SYS_TIME_H
 #  include <sys/time.h>
 # else
 #  include <time.h>
 # endif
-#endif /* not TIME_WITH_SYS_TIME */
+#endif                         /* not TIME_WITH_SYS_TIME */
 
 #ifdef HAVE_MEMSET
 # define memzero(ptr, size) memset((void *)(ptr), 0, (size))
 #else
 # define memzero(ptr, size) bzero((char *)(ptr), (size))
 #endif
-#define strzero(s) memzero(s, strlen(s))  /* warning: evaluates twice */
+#define strzero(s) memzero(s, strlen(s))       /* warning: evaluates twice */
 
-#ifdef HAVE_DIRENT_H  /* DIR_SYSV */
+#ifdef HAVE_DIRENT_H           /* DIR_SYSV */
 # include <dirent.h>
 # define DIRECT dirent
 #else
-# ifdef HAVE_SYS_NDIR_H  /* DIR_XENIX */
+# ifdef HAVE_SYS_NDIR_H                /* DIR_XENIX */
 #  include <sys/ndir.h>
 # endif
-# ifdef HAVE_SYS_DIR_H  /* DIR_??? */
+# ifdef HAVE_SYS_DIR_H         /* DIR_??? */
 #  include <sys/dir.h>
 # endif
-# ifdef HAVE_NDIR_H  /* DIR_BSD */
+# ifdef HAVE_NDIR_H            /* DIR_BSD */
 #  include <ndir.h>
 # endif
 # define DIRECT direct
@@ -106,13 +107,13 @@ char *strchr(), *strrchr(), *strtok();
 #if defined(SHADOWGRP) && !defined(GSHADOW)
 #include "gshadow_.h"
 #endif
-#else  /* not HAVE_SHADOW_H */
+#else                          /* not HAVE_SHADOW_H */
 #include "shadow_.h"
 #ifdef SHADOWGRP
 #include "gshadow_.h"
 #endif
-#endif  /* not HAVE_SHADOW_H */
-#endif  /* SHADOWPWD */
+#endif                         /* not HAVE_SHADOW_H */
+#endif                         /* SHADOWPWD */
 
 #include <limits.h>
 
@@ -162,17 +163,17 @@ char *strchr(), *strrchr(), *strtok();
                        free(saved_locale);                             \
                }                                                       \
        } while (0)
-#else  /* !ENABLE_NLS */
+#else                          /* !ENABLE_NLS */
 #define SYSLOG(x) syslog x
-#endif /* !ENABLE_NLS */
+#endif                         /* !ENABLE_NLS */
 
-#else  /* !USE_SYSLOG */
+#else                          /* !USE_SYSLOG */
 
-#define SYSLOG(x)  /* empty */
-#define openlog(a,b,c)  /* empty */
-#define closelog()  /* empty */
+#define SYSLOG(x)              /* empty */
+#define openlog(a,b,c)         /* empty */
+#define closelog()             /* empty */
 
-#endif  /* !USE_SYSLOG */
+#endif                         /* !USE_SYSLOG */
 
 /* The default syslog settings can now be changed here,
    in just one place.  */
@@ -231,7 +232,7 @@ char *strchr(), *strrchr(), *strtok();
 # define GTTY(fd, termio) tcgetattr(fd, termio)
 # define TERMIO struct termios
 # define USE_TERMIOS
-#else  /* assumed HAVE_TERMIO_H */
+#else                          /* assumed HAVE_TERMIO_H */
 # include <sys/ioctl.h>
 # include <termio.h>
 # define STTY(fd, termio) ioctl(fd, TCSETA, termio)
@@ -275,7 +276,7 @@ char *strchr(), *strrchr(), *strtok();
 #if defined(AIX) || defined(__linux__)
 #define SETXXENT_TYPE void
 #define SETXXENT_RET(x) return
-#define SETXXENT_TEST(x) x; if (0) /* compiler should optimize this away */
+#define SETXXENT_TEST(x) x; if (0)     /* compiler should optimize this away */
 #else
 #define SETXXENT_TYPE int
 #define SETXXENT_RET(x) return(x)
@@ -311,11 +312,11 @@ char *strchr(), *strrchr(), *strtok();
 #define NULL ((void *) 0)
 #endif
 
-#ifdef sun  /* hacks for compiling on SunOS */
+#ifdef sun                     /* hacks for compiling on SunOS */
 # ifndef SOLARIS
-extern int fputs();
-extern char *strdup();
-extern char *strerror();
+extern int fputs ();
+extern char *strdup ();
+extern char *strerror ();
 # endif
 #endif
 
@@ -332,4 +333,4 @@ extern char *strerror();
 #define SHADOW_PASSWD_STRING "x"
 #endif
 
-#endif  /* _DEFINES_H_ */
+#endif                         /* _DEFINES_H_ */
index 51c16e7affc9f82dea99510229fa4abac31ee47d..94b4bedf83053eac9f0cdd6a7d13de783c825008 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: encrypt.c,v 1.7 2000/08/26 18:27:17 marekm Exp $")
-
+RCSID ("$Id: encrypt.c,v 1.11 2005/04/06 02:59:22 kloczek Exp $")
+#include <unistd.h>
 #include "prototypes.h"
 #include "defines.h"
 
-extern char    *crypt();
-extern char *libshadow_md5_crypt(const char *, const char *);
-
-char *
-pw_encrypt(const char *clear, const char *salt)
+char *pw_encrypt (const char *clear, const char *salt)
 {
-       static  char    cipher[128];
-       char    *cp;
-#ifdef SW_CRYPT
-       static  int     count;
-#endif
-
-#ifdef MD5_CRYPT
-       /*
-        * If the salt string from the password file or from crypt_make_salt()
-        * begins with the magic string, use the new algorithm.
-        */
-       if (strncmp(salt, "$1$", 3) == 0)
-               return libshadow_md5_crypt(clear, salt);
-#endif
-
-#ifdef SW_CRYPT
-       /*
-        * Copy over the salt.  It is always the first two
-        * characters of the string.
-        */
-
-       cipher[0] = salt[0];
-       cipher[1] = salt[1];
-       cipher[2] = '\0';
+       static char cipher[128];
+       char *cp;
 
-       /*
-        * Loop up to ten times on the cleartext password.
-        * This is because the input limit for passwords is
-        * 80 characters.
-        *
-        * The initial salt is that provided by the user, or the
-        * one generated above.  The subsequent salts are gotten
-        * from the first two characters of the previous encrypted
-        * block of characters.
-        */
-
-       for (count = 0;count < 10;count++) {
-               cp = crypt(clear, salt);
-               if (!cp) {
-                       perror("crypt");
-                       exit(1);
-               }
-               if (strlen(cp) != 13)
-                       return cp;
-               strcat(cipher, cp + 2);
-               salt = cipher + 11 * count + 2;
-
-               if (strlen(clear) > 8)
-                       clear += 8;
-               else
-                       break;
-       }
-#else
-       cp = crypt(clear, salt);
+       crypt (clear, salt);
        if (!cp) {
                /*
                 * Single Unix Spec: crypt() may return a null pointer,
                 * and set errno to indicate an error.  The caller doesn't
                 * expect us to return NULL, so...
                 */
-               perror("crypt");
-               exit(1);
+               perror ("crypt");
+               exit (1);
        }
-       if (strlen(cp) != 13)
-               return cp;  /* nonstandard crypt() in libc, better bail out */
-       strcpy(cipher, cp);
+       if (strlen (cp) != 13)
+               return cp;      /* nonstandard crypt() in libc, better bail out */
+       strcpy (cipher, cp);
 
-#ifdef DOUBLESIZE
-       if (strlen (clear) > 8) {
-               cp = crypt(clear + 8, salt);
-               if (!cp) {
-                       perror("crypt");
-                       exit(1);
-               }
-               strcat(cipher, cp + 2);
-       }
-#endif /* DOUBLESIZE */
-#endif /* SW_CRYPT */
        return cipher;
 }
index 028012c8da55de287218f0e939b46ed19aff8e61..7998f56dfea54445e015cfe072d8a936fbb96e83 100644 (file)
@@ -30,7 +30,7 @@
 /*
  * faillog.h - login failure logging file format
  *
- *     $Id: faillog.h,v 1.3 1997/05/01 23:14:39 marekm Exp $
+ *     $Id: faillog.h,v 1.4 2005/03/31 05:14:49 kloczek Exp $
  *
  * The login failure file is maintained by login(1) and faillog(8)
  * Each record in the file represents a separate UID and the file
 #ifndef _FAILLOG_H
 #define _FAILLOG_H
 
-struct faillog {
-       short   fail_cnt;       /* failures since last success */
-       short   fail_max;       /* failures before turning account off */
-       char    fail_line[12];  /* last failure occured here */
-       time_t  fail_time;      /* last failure occured then */
+struct faillog {
+       short fail_cnt;         /* failures since last success */
+       short fail_max;         /* failures before turning account off */
+       char fail_line[12];     /* last failure occured here */
+       time_t fail_time;       /* last failure occured then */
        /*
         * If nonzero, the account will be re-enabled if there are no
         * failures for fail_locktime seconds since last failure.
         */
-       long    fail_locktime;
+       long fail_locktime;
 };
 
 #endif
index 1784611094eda9f5497757af41e7be2b321c917c..d3b997dbfeac7e4d2ce041e1007b895093ebb3b3 100644 (file)
 #include "defines.h"
 
 #include "rcsid.h"
-RCSID("$Id: fputsx.c,v 1.5 1999/06/07 16:40:44 marekm Exp $")
+RCSID ("$Id: fputsx.c,v 1.6 2005/03/31 05:14:49 kloczek Exp $")
 
-char *
-fgetsx(char *buf, int cnt, FILE *f)
+char *fgetsx (char *buf, int cnt, FILE * f)
 {
        char *cp = buf;
        char *ep;
@@ -57,17 +56,16 @@ fgetsx(char *buf, int cnt, FILE *f)
        return buf;
 }
 
-int
-fputsx(const char *s, FILE *stream)
+int fputsx (const char *s, FILE * stream)
 {
        int i;
 
-       for (i = 0;*s;i++, s++) {
+       for (i = 0; *s; i++, s++) {
                if (putc (*s, stream) == EOF)
                        return EOF;
 
-#if 0  /* The standard getgr*() can't handle that.  --marekm */
-               if (i > (BUFSIZ/2)) {
+#if 0                          /* The standard getgr*() can't handle that.  --marekm */
+               if (i > (BUFSIZ / 2)) {
                        if (putc ('\\', stream) == EOF ||
                            putc ('\n', stream) == EOF)
                                return EOF;
index 17848e2836687b57cb4ec95cb341ffe08321d797..4c03ea6bfc073e4a0099834334e7291e61c1cb4e 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: getdef.c,v 1.20 2005/01/20 12:43:05 kloczek Exp $")
-
+RCSID ("$Id: getdef.c,v 1.28 2005/04/01 22:52:03 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include "getdef.h"
-
 /*
  * A configuration item definition.
  */
-
 struct itemdef {
-       const char *name;       /* name of the item                     */
-       char *value;            /* value given, or NULL if no value     */
+       const char *name;       /* name of the item                     */
+       char *value;            /* value given, or NULL if no value     */
 };
 
 /*
@@ -54,85 +51,86 @@ struct itemdef {
 
 #define NUMDEFS        (sizeof(def_table)/sizeof(def_table[0]))
 static struct itemdef def_table[] = {
-       { "CHFN_AUTH",                  NULL },
-       { "CHFN_RESTRICT",              NULL },
+       {"CHFN_RESTRICT", NULL},
+       {"DEFAULT_HOME", NULL},
+       {"FAIL_DELAY", NULL},
+       {"PASS_MAX_DAYS", NULL},
+       {"PASS_MIN_DAYS", NULL},
+       {"PASS_WARN_AGE", NULL},
+       {"USERDEL_CMD", NULL},
 #ifdef USE_PAM
-       { "CLOSE_SESSIONS",             NULL },
+       {"CLOSE_SESSIONS", NULL},
+#else
+       {"CHFN_AUTH", NULL},
+       {"CHSH_AUTH", NULL},
+       {"CRACKLIB_DICTPATH", NULL},
+       {"ENV_HZ", NULL},
+       {"ENV_PATH", NULL},
+       {"ENV_ROOTPATH", NULL}, /* SuSE compatibility? */
+       {"ENV_SUPATH", NULL},
+       {"ENV_TZ", NULL},
+       {"ENVIRON_FILE", NULL},
+       {"FAILLOG_ENAB", NULL},
+       {"FTMP_FILE", NULL},
+       {"ISSUE_FILE", NULL},
+       {"LASTLOG_ENAB", NULL},
+       {"LOGIN_STRING", NULL},
+       {"MAIL_CHECK_ENAB", NULL},
+       {"MAIL_DIR", NULL},
+       {"MAIL_FILE", NULL},
+       {"MD5_CRYPT_ENAB", NULL},
+       {"MOTD_FILE", NULL},
+       {"NOLOGINS_FILE", NULL},
+       {"OBSCURE_CHECKS_ENAB", NULL},
+       {"PASS_ALWAYS_WARN", NULL},
+       {"PASS_CHANGE_TRIES", NULL},
+       {"PASS_MAX_LEN", NULL},
+       {"PASS_MIN_LEN", NULL},
+       {"PORTTIME_CHECKS_ENAB", NULL},
+       {"SU_WHEEL_ONLY", NULL},
+       {"QMAIL_DIR", NULL},
+       {"QUOTAS_ENAB", NULL},
+       {"ULIMIT", NULL},
 #endif
-       { "CONSOLE",                    NULL },
-       { "CONSOLE_GROUPS",             NULL },
-       { "CRACKLIB_DICTPATH",          NULL },
-       { "CREATE_HOME",                NULL },
-       { "DEFAULT_HOME",               NULL },
-       { "ENVIRON_FILE",               NULL },
-       { "ENV_HZ",                     NULL },
-       { "ENV_PATH",                   NULL },
-       { "ENV_ROOTPATH",               NULL },  /* SuSE compatibility? */
-       { "ENV_SUPATH",                 NULL },
-       { "ENV_TZ",                     NULL },
-       { "ERASECHAR",                  NULL },
-       { "FAILLOG_ENAB",               NULL },
-       { "FAIL_DELAY",                 NULL },
-       { "FAKE_SHELL",                 NULL },
-       { "FTMP_FILE",                  NULL },
-       { "GETPASS_ASTERISKS",          NULL },
-       { "GID_MAX",                    NULL },
-       { "GID_MIN",                    NULL },
-       { "HUSHLOGIN_FILE",             NULL },
-       { "ISSUE_FILE",                 NULL },
-       { "KILLCHAR",                   NULL },
-       { "LASTLOG_ENAB",               NULL },
-       { "LOGIN_RETRIES",              NULL },
-       { "LOGIN_STRING",               NULL },
-       { "LOGIN_TIMEOUT",              NULL },
-       { "LOG_OK_LOGINS",              NULL },
-       { "LOG_UNKFAIL_ENAB",           NULL },
-       { "MAIL_CHECK_ENAB",            NULL },
-       { "MAIL_DIR",                   NULL },
-       { "MAIL_FILE",                  NULL },
-       { "MD5_CRYPT_ENAB",             NULL },
-       { "MOTD_FILE",                  NULL },
-       { "NOLOGINS_FILE",              NULL },
-       { "NOLOGIN_STR",                NULL },
-       { "OBSCURE_CHECKS_ENAB",        NULL },
-       { "PASS_ALWAYS_WARN",           NULL },
-       { "PASS_CHANGE_TRIES",          NULL },
-       { "PASS_MAX_DAYS",              NULL },
-       { "PASS_MAX_LEN",               NULL },
-       { "PASS_MIN_DAYS",              NULL },
-       { "PASS_MIN_LEN",               NULL },
-       { "PASS_WARN_AGE",              NULL },
-       { "PORTTIME_CHECKS_ENAB",       NULL },
-       { "QMAIL_DIR",                  NULL },
-       { "QUOTAS_ENAB",                NULL },
-       { "SULOG_FILE",                 NULL },
-       { "SU_NAME",                    NULL },
-       { "SU_WHEEL_ONLY",              NULL },
+       {"CONSOLE", NULL},
+       {"CONSOLE_GROUPS", NULL},
+       {"CREATE_HOME", NULL},
+       {"ERASECHAR", NULL},
+       {"FAKE_SHELL", NULL},
+       {"GETPASS_ASTERISKS", NULL},
+       {"GID_MAX", NULL},
+       {"GID_MIN", NULL},
+       {"HUSHLOGIN_FILE", NULL},
+       {"KILLCHAR", NULL},
+       {"LOGIN_RETRIES", NULL},
+       {"LOGIN_TIMEOUT", NULL},
+       {"LOG_OK_LOGINS", NULL},
+       {"LOG_UNKFAIL_ENAB", NULL},
+       {"SULOG_FILE", NULL},
+       {"SU_NAME", NULL},
 #ifdef USE_SYSLOG
-       { "SYSLOG_SG_ENAB",             NULL },
-       { "SYSLOG_SU_ENAB",             NULL },
+       {"SYSLOG_SG_ENAB", NULL},
+       {"SYSLOG_SU_ENAB", NULL},
 #endif
-       { "TTYGROUP",                   NULL },
-       { "TTYPERM",                    NULL },
-       { "TTYTYPE_FILE",               NULL },
-       { "UID_MAX",                    NULL },
-       { "UID_MIN",                    NULL },
-       { "ULIMIT",                     NULL },
-       { "UMASK",                      NULL },
-       { "USERDEL_CMD",                NULL },
-       { "USERGROUPS_ENAB",            NULL }
+       {"TTYGROUP", NULL},
+       {"TTYPERM", NULL},
+       {"TTYTYPE_FILE", NULL},
+       {"UID_MAX", NULL},
+       {"UID_MIN", NULL},
+       {"UMASK", NULL},
+       {"USERGROUPS_ENAB", NULL}
 };
 
 #ifndef LOGINDEFS
 #define LOGINDEFS "/etc/login.defs"
 #endif
 
-static char def_fname[] = LOGINDEFS;   /* login config defs file       */
-static int def_loaded = 0;             /* are defs already loaded?     */
+static char def_fname[] = LOGINDEFS;   /* login config defs file       */
+static int def_loaded = 0;     /* are defs already loaded?     */
 
 /* local function prototypes */
-static struct itemdef *def_find(const char *);
-static void def_load(void);
+static struct itemdef *def_find (const char *);
+static void def_load (void);
 
 
 /*
@@ -142,15 +140,14 @@ static void def_load(void);
  * defined.  First time invoked, will load definitions from the file.
  */
 
-char *
-getdef_str(const char *item)
+char *getdef_str (const char *item)
 {
        struct itemdef *d;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
-       return ((d = def_find(item)) == NULL ? (char *)NULL : d->value);
+       return ((d = def_find (item)) == NULL ? (char *) NULL : d->value);
 }
 
 
@@ -160,18 +157,17 @@ getdef_str(const char *item)
  * Return TRUE if specified item is defined as "yes", else FALSE.
  */
 
-int
-getdef_bool(const char *item)
+int getdef_bool (const char *item)
 {
        struct itemdef *d;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
-       if ((d = def_find(item)) == NULL || d->value == NULL)
+       if ((d = def_find (item)) == NULL || d->value == NULL)
                return 0;
 
-       return (strcasecmp(d->value, "yes") == 0);
+       return (strcasecmp (d->value, "yes") == 0);
 }
 
 
@@ -183,18 +179,17 @@ getdef_bool(const char *item)
  * values are handled.
  */
 
-int
-getdef_num(const char *item, int dflt)
+int getdef_num (const char *item, int dflt)
 {
        struct itemdef *d;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
-       if ((d = def_find(item)) == NULL || d->value == NULL)
+       if ((d = def_find (item)) == NULL || d->value == NULL)
                return dflt;
 
-       return (int) strtol(d->value, (char **)NULL, 0);
+       return (int) strtol (d->value, (char **) NULL, 0);
 }
 
 
@@ -206,18 +201,17 @@ getdef_num(const char *item, int dflt)
  * values are handled.
  */
 
-unsigned int
-getdef_unum(const char *item, unsigned int dflt)
+unsigned int getdef_unum (const char *item, unsigned int dflt)
 {
        struct itemdef *d;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
-       if ((d = def_find(item)) == NULL || d->value == NULL)
+       if ((d = def_find (item)) == NULL || d->value == NULL)
                return dflt;
 
-       return (unsigned int) strtoul(d->value, (char **)NULL, 0);
+       return (unsigned int) strtoul (d->value, (char **) NULL, 0);
 }
 
 
@@ -229,18 +223,17 @@ getdef_unum(const char *item, unsigned int dflt)
  * values are handled.
  */
 
-long
-getdef_long(const char *item, long dflt)
+long getdef_long (const char *item, long dflt)
 {
        struct itemdef *d;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
-       if ((d = def_find(item)) == NULL || d->value == NULL)
+       if ((d = def_find (item)) == NULL || d->value == NULL)
                return dflt;
 
-       return strtol(d->value, (char **)NULL, 0);
+       return strtol (d->value, (char **) NULL, 0);
 }
 
 
@@ -249,35 +242,33 @@ getdef_long(const char *item, long dflt)
  * (also used when loading the initial defaults)
  */
 
-int
-putdef_str(const char *name, const char *value)
+int putdef_str (const char *name, const char *value)
 {
        struct itemdef *d;
        char *cp;
 
        if (!def_loaded)
-               def_load();
+               def_load ();
 
        /*
         * Locate the slot to save the value.  If this parameter
         * is unknown then "def_find" will print an err message.
         */
-       if ((d = def_find(name)) == NULL)
+       if ((d = def_find (name)) == NULL)
                return -1;
 
        /*
         * Save off the value.
         */
-       if ((cp = strdup(value)) == NULL) {
-               fprintf(stderr,
-                       _("Could not allocate space for config info.\n"));
-               SYSLOG((LOG_ERR,
-                       "could not allocate space for config info"));
+       if ((cp = strdup (value)) == NULL) {
+               fprintf (stderr,
+                        _("Could not allocate space for config info.\n"));
+               SYSLOG ((LOG_ERR, "could not allocate space for config info"));
                return -1;
        }
 
        if (d->value)
-               free(d->value);
+               free (d->value);
 
        d->value = cp;
        return 0;
@@ -291,8 +282,7 @@ putdef_str(const char *name, const char *value)
  * specified configuration option.
  */
 
-static struct itemdef *
-def_find(const char *name)
+static struct itemdef *def_find (const char *name)
 {
        int min, max, curr, n;
 
@@ -301,7 +291,7 @@ def_find(const char *name)
         */
 
        min = 0;
-       max = NUMDEFS-1;
+       max = NUMDEFS - 1;
 
        /*
         * Binary search into the table.  Relies on the items being
@@ -309,23 +299,26 @@ def_find(const char *name)
         */
 
        while (min <= max) {
-               curr = (min+max)/2;
+               curr = (min + max) / 2;
 
-               if (! (n = strcmp(def_table[curr].name, name)))
+               if (!(n = strcmp (def_table[curr].name, name)))
                        return &def_table[curr];
 
                if (n < 0)
-                       min = curr+1;
+                       min = curr + 1;
                else
-                       max = curr-1;
+                       max = curr - 1;
        }
 
        /*
         * Item was never found.
         */
 
-       fprintf(stderr, _("configuration error - unknown item '%s' (notify administrator)\n"), name);
-       SYSLOG((LOG_CRIT, "unknown configuration item `%s'", name));
+       fprintf (stderr,
+                _
+                ("configuration error - unknown item '%s' (notify administrator)\n"),
+                name);
+       SYSLOG ((LOG_CRIT, "unknown configuration item `%s'", name));
        return (struct itemdef *) NULL;
 }
 
@@ -335,8 +328,7 @@ def_find(const char *name)
  * Loads the user-configured options from the default configuration file
  */
 
-static void
-def_load(void)
+static void def_load (void)
 {
        int i;
        FILE *fp;
@@ -345,10 +337,10 @@ def_load(void)
        /*
         * Open the configuration definitions file.
         */
-       if ((fp = fopen(def_fname, "r")) == NULL) {
-               SYSLOG((LOG_CRIT, "cannot open login definitions %s [%m]",
-                       def_fname));
-               exit(1);
+       if ((fp = fopen (def_fname, "r")) == NULL) {
+               SYSLOG ((LOG_CRIT, "cannot open login definitions %s [%m]",
+                        def_fname));
+               exit (1);
        }
 
        /*
@@ -360,13 +352,13 @@ def_load(void)
        /*
         * Go through all of the lines in the file.
         */
-       while (fgets(buf, sizeof(buf), fp) != NULL) {
+       while (fgets (buf, sizeof (buf), fp) != NULL) {
 
                /*
                 * Trim trailing whitespace.
                 */
-               for (i = strlen(buf)-1 ; i >= 0 ; --i) {
-                       if (!isspace(buf[i]))
+               for (i = strlen (buf) - 1; i >= 0; --i) {
+                       if (!isspace (buf[i]))
                                break;
                }
                buf[++i] = '\0';
@@ -374,37 +366,36 @@ def_load(void)
                /*
                 * Break the line into two fields.
                 */
-               name = buf + strspn(buf, " \t");        /* first nonwhite */
+               name = buf + strspn (buf, " \t");       /* first nonwhite */
                if (*name == '\0' || *name == '#')
-                       continue;                       /* comment or empty */
+                       continue;       /* comment or empty */
 
-               s = name + strcspn(name, " \t");        /* end of field */
+               s = name + strcspn (name, " \t");       /* end of field */
                if (*s == '\0')
-                       continue;                       /* only 1 field?? */
+                       continue;       /* only 1 field?? */
 
                *s++ = '\0';
-               value = s + strspn(s, " \"\t");         /* next nonwhite */
-               *(value + strcspn(value, "\"")) = '\0';
+               value = s + strspn (s, " \"\t");        /* next nonwhite */
+               *(value + strcspn (value, "\"")) = '\0';
 
                /*
                 * Store the value in def_table.
                 */
-               putdef_str(name, value);
+               putdef_str (name, value);
        }
 
-       if (ferror(fp)) {
-               SYSLOG((LOG_CRIT, "cannot read login definitions %s [%m]",
-                       def_fname));
-               exit(1);
+       if (ferror (fp)) {
+               SYSLOG ((LOG_CRIT, "cannot read login definitions %s [%m]",
+                        def_fname));
+               exit (1);
        }
 
-       (void) fclose(fp);
+       (void) fclose (fp);
 }
 
 
 #ifdef CKDEFS
-int
-main(int argc, char **argv)
+int main (int argc, char **argv)
 {
        int i;
        char *cp;
@@ -412,18 +403,19 @@ main(int argc, char **argv)
 
        def_load ();
 
-       for (i = 0 ; i < NUMDEFS ; ++i) {
-               if ((d = def_find(def_table[i].name)) == NULL)
-                       printf("error - lookup '%s' failed\n", def_table[i].name);
+       for (i = 0; i < NUMDEFS; ++i) {
+               if ((d = def_find (def_table[i].name)) == NULL)
+                       printf ("error - lookup '%s' failed\n",
+                               def_table[i].name);
                else
-                       printf("%4d %-24s %s\n", i+1, d->name, d->value);
+                       printf ("%4d %-24s %s\n", i + 1, d->name, d->value);
        }
-       for (i = 1;i < argc;i++) {
+       for (i = 1; i < argc; i++) {
                if ((cp = getdef_str (argv[1])) != NULL)
                        printf ("%s `%s'\n", argv[1], cp);
                else
                        printf ("%s not found\n", argv[1]);
        }
-       exit(0);
+       exit (0);
 }
 #endif
index 04c7d1108d9460d05a5e3e0a40adb79d19b74b72..3368ae81d272eec47167f7d5d85fab4b2d777852 100644 (file)
@@ -2,11 +2,11 @@
 #define _GETDEF_H
 
 /* getdef.c */
-extern int getdef_bool(const char *);
-extern long getdef_long(const char *, long);
-extern int getdef_num(const char *, int);
-extern unsigned int getdef_unum(const char *, unsigned int);
-extern char *getdef_str(const char *);
-extern int putdef_str(const char *, const char *);
+extern int getdef_bool (const char *);
+extern long getdef_long (const char *, long);
+extern int getdef_num (const char *, int);
+extern unsigned int getdef_unum (const char *, unsigned int);
+extern char *getdef_str (const char *);
+extern int putdef_str (const char *, const char *);
 
-#endif /* _GETDEF_H */
+#endif                         /* _GETDEF_H */
index 761d280d9b2e08fcd4aa1051a9a9c8c51577bad5..42d1cf9be4d2ab6e418c418c74475e565ee0a530 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: getpass.c,v 1.12 2003/05/05 21:44:12 kloczek Exp $")
-
+RCSID ("$Id: getpass.c,v 1.13 2005/03/31 05:14:49 kloczek Exp $")
 #include "defines.h"
-
 #include <signal.h>
 #include <stdio.h>
-
 #include "getdef.h"
-
 /* new code, #undef if there are any problems...  */
 #define USE_SETJMP 1
-
 #ifdef USE_SETJMP
 #include <setjmp.h>
-
-static sigjmp_buf intr;  /* where to jump on SIGINT */
+static sigjmp_buf intr;                /* where to jump on SIGINT */
 #endif
 
-static int     sig_caught;
+static int sig_caught;
+
 #ifdef HAVE_SIGACTION
-static struct  sigaction sigact;
+static struct sigaction sigact;
 #endif
 
-/*ARGSUSED*/
-static RETSIGTYPE
-sig_catch(int sig)
+ /*ARGSUSED*/ static RETSIGTYPE sig_catch (int sig)
 {
        sig_caught = 1;
 #ifdef USE_SETJMP
-       siglongjmp(intr, 1);
+       siglongjmp (intr, 1);
 #endif
 }
 
 #define MAXLEN 127
 
 
-static char *
-readpass(FILE *ifp, FILE *ofp, int with_echo, int max_asterisks)
+static char *readpass (FILE * ifp, FILE * ofp, int with_echo, int max_asterisks)
 {
        static char input[MAXLEN + 1], asterix[MAXLEN + 1];
        static char once;
@@ -77,9 +69,9 @@ readpass(FILE *ifp, FILE *ofp, int with_echo, int max_asterisks)
 
        if (max_asterisks < 0) {
                /* traditional code using fgets() */
-               if (fgets(input, sizeof input, ifp) != input)
+               if (fgets (input, sizeof input, ifp) != input)
                        return NULL;
-               cp = strrchr(input, '\n');
+               cp = strrchr (input, '\n');
                if (cp)
                        *cp = '\0';
                else
@@ -87,12 +79,12 @@ readpass(FILE *ifp, FILE *ofp, int with_echo, int max_asterisks)
                return input;
        }
        if (!once) {
-               srandom(time(0)*getpid());
+               srandom (time (0) * getpid ());
                once = 1;
        }
        cp = input;
        ap = asterix;
-       while (read(fileno(ifp), &c, 1)) {
+       while (read (fileno (ifp), &c, 1)) {
                switch (c) {
                case '\n':
                case '\r':
@@ -103,67 +95,68 @@ readpass(FILE *ifp, FILE *ofp, int with_echo, int max_asterisks)
                                cp--;
                                ap--;
                                for (i = *ap; i > 0; i--)
-                                       fputs("\b \b", ofp);
+                                       fputs ("\b \b", ofp);
                                *cp = '\0';
                                *ap = 0;
                        } else {
-                               putc('\a', ofp);  /* BEL */
+                               putc ('\a', ofp);       /* BEL */
                        }
                        break;
-               case '\025':  /* Ctrl-U = erase everything typed so far */
+               case '\025':    /* Ctrl-U = erase everything typed so far */
                        if (cp == input) {
-                               putc('\a', ofp);  /* BEL */
-                       } else while (cp > input) {
-                               cp--;
-                               ap--;
-                               for (i = *ap; i > 0; i--)
-                                       fputs("\b \b", ofp);
-                               *cp = '\0';
-                               *ap = 0;
-                       }
+                               putc ('\a', ofp);       /* BEL */
+                       } else
+                               while (cp > input) {
+                                       cp--;
+                                       ap--;
+                                       for (i = *ap; i > 0; i--)
+                                               fputs ("\b \b", ofp);
+                                       *cp = '\0';
+                                       *ap = 0;
+                               }
                        break;
                default:
                        *cp++ = c;
                        if (with_echo) {
                                *ap = 1;
-                               putc(c, ofp);
+                               putc (c, ofp);
                        } else if (max_asterisks > 0) {
-                               *ap = (random() % max_asterisks) + 1;
+                               *ap = (random () % max_asterisks) + 1;
                                for (i = *ap; i > 0; i--)
-                                       putc('*', ofp);
+                                       putc ('*', ofp);
                        } else {
                                *ap = 0;
                        }
                        ap++;
                        break;
                }
-               fflush(ofp);
+               fflush (ofp);
                if (cp >= input + MAXLEN) {
-                       putc('\a', ofp);  /* BEL */
+                       putc ('\a', ofp);       /* BEL */
                        break;
                }
        }
-endwhile:
+      endwhile:
        *cp = '\0';
-       putc('\n', ofp);
+       putc ('\n', ofp);
        return input;
 }
 
-static char *
-prompt_password(const char *prompt, int with_echo)
+static char *prompt_password (const char *prompt, int with_echo)
 {
        static char nostring[1] = "";
        static char *return_value;
        volatile int tty_opened;
        static FILE *ifp, *ofp;
        volatile int is_tty;
+
 #ifdef HAVE_SIGACTION
        struct sigaction old_sigact;
 #else
-       RETSIGTYPE (*old_signal)();
+       RETSIGTYPE (*old_signal) ();
 #endif
        TERMIO old_modes;
-       int max_asterisks = getdef_num("GETPASS_ASTERISKS", -1);
+       int max_asterisks = getdef_num ("GETPASS_ASTERISKS", -1);
 
        /*
         * set a flag so the SIGINT signal can be re-sent if it
@@ -179,14 +172,14 @@ prompt_password(const char *prompt, int with_echo)
         * from stdin and write to stderr instead.
         */
 
-       if (!(ifp = fopen("/dev/tty", "r+"))) {
+       if (!(ifp = fopen ("/dev/tty", "r+"))) {
                ifp = stdin;
                ofp = stderr;
        } else {
                ofp = ifp;
                tty_opened = 1;
        }
-       setbuf(ifp, (char *) 0);
+       setbuf (ifp, (char *) 0);
 
        /*
         * the current tty modes must be saved so they can be
@@ -195,26 +188,25 @@ prompt_password(const char *prompt, int with_echo)
         */
 
        is_tty = 1;
-       if (GTTY(fileno(ifp), &old_modes)) {
+       if (GTTY (fileno (ifp), &old_modes)) {
                is_tty = 0;
        }
-
 #ifdef USE_SETJMP
        /*
         * If we get a SIGINT, sig_catch() will jump here -
         * no need to press Enter after Ctrl-C.
         */
-       if (sigsetjmp(intr, 1))
+       if (sigsetjmp (intr, 1))
                goto out;
 #endif
 
 #ifdef HAVE_SIGACTION
        sigact.sa_handler = sig_catch;
-       sigemptyset(&sigact.sa_mask);
+       sigemptyset (&sigact.sa_mask);
        sigact.sa_flags = 0;
-       sigaction(SIGINT, &sigact, &old_sigact);
+       sigaction (SIGINT, &sigact, &old_sigact);
 #else
-       old_signal = signal(SIGINT, sig_catch);
+       old_signal = signal (SIGINT, sig_catch);
 #endif
 
        if (is_tty) {
@@ -232,7 +224,7 @@ prompt_password(const char *prompt, int with_echo)
 
                new_modes.c_lflag |= ECHONL;
 
-               if (STTY(fileno(ifp), &new_modes))
+               if (STTY (fileno (ifp), &new_modes))
                        goto out;
        }
 
@@ -243,9 +235,9 @@ prompt_password(const char *prompt, int with_echo)
         * returned.
         */
 
-       if ((fputs(prompt, ofp) != EOF) && (fflush(ofp) != EOF))
-               return_value = readpass(ifp, ofp, with_echo, max_asterisks);
-out:
+       if ((fputs (prompt, ofp) != EOF) && (fflush (ofp) != EOF))
+               return_value = readpass (ifp, ofp, with_echo, max_asterisks);
+      out:
        /*
         * the old SIGINT handler is restored after the tty
         * modes.  then /dev/tty is closed if it was opened in
@@ -254,20 +246,19 @@ out:
         */
 
        if (is_tty) {
-               if (STTY(fileno(ifp), &old_modes))
+               if (STTY (fileno (ifp), &old_modes))
                        return_value = NULL;
        }
-
 #ifdef HAVE_SIGACTION
        (void) sigaction (SIGINT, &old_sigact, NULL);
 #else
        (void) signal (SIGINT, old_signal);
 #endif
        if (tty_opened)
-               (void) fclose(ifp);
+               (void) fclose (ifp);
 
        if (sig_caught) {
-               kill(getpid(), SIGINT);
+               kill (getpid (), SIGINT);
                return_value = NULL;
        }
        if (!return_value) {
@@ -277,15 +268,12 @@ out:
        return return_value;
 }
 
-char *
-libshadow_getpass(const char *prompt)
+char *libshadow_getpass (const char *prompt)
 {
-       return prompt_password(prompt, 0);
+       return prompt_password (prompt, 0);
 }
 
-char *
-getpass_with_echo(const char *prompt)
+char *getpass_with_echo (const char *prompt)
 {
-       return prompt_password(prompt, 1);
+       return prompt_password (prompt, 1);
 }
-
diff --git a/lib/grdbm.c b/lib/grdbm.c
deleted file mode 100644 (file)
index b08c0f5..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright 1990 - 1994, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#ifdef NDBM
-
-#include "rcsid.h"
-RCSID("$Id: grdbm.c,v 1.3 1997/12/07 23:26:52 marekm Exp $")
-
-#include <string.h>
-#include <stdio.h>
-#include <grp.h>
-#include "prototypes.h"
-
-#include <ndbm.h>
-extern DBM     *gr_dbm;
-
-#define        GRP_FRAG        256
-
-/*
- * gr_dbm_update
- *
- * Updates the DBM password files, if they exist.
- */
-
-int
-gr_dbm_update(const struct group *gr)
-{
-       datum   key;
-       datum   content;
-       char    data[BUFSIZ*8];
-       char    grpkey[60];
-       char    *cp;
-       int     len;
-       int     i;
-       int     cnt;
-       static  int     once;
-
-       if (! once) {
-               if (! gr_dbm)
-                       setgrent ();
-
-               once++;
-       }
-       if (! gr_dbm)
-               return 0;
-
-       len = gr_pack (gr, data);
-
-       if (len <= GRP_FRAG) {
-               content.dsize = len;
-               content.dptr = data;
-
-               key.dsize = strlen (gr->gr_name);
-               key.dptr = gr->gr_name;
-               if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                       return 0;
-
-               key.dsize = sizeof gr->gr_gid;
-               key.dptr = (char *) &gr->gr_gid;
-               if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                       return 0;
-
-       } else {
-               content.dsize = sizeof cnt;
-               content.dptr = (char *) &cnt;
-               cnt = (len + (GRP_FRAG-1)) / GRP_FRAG;
-
-               key.dsize = strlen (gr->gr_name);
-               key.dptr = gr->gr_name;
-               if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                       return 0;
-
-               key.dsize = sizeof gr->gr_gid;
-               key.dptr = (char *) &gr->gr_gid;
-               if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                       return 0;
-
-               for (cp = data, i = 0;i < cnt;i++) {
-                       content.dsize = len > GRP_FRAG ? GRP_FRAG:len;
-                       len -= content.dsize;
-                       content.dptr = cp;
-                       cp += content.dsize;
-
-                       key.dsize = sizeof i + strlen (gr->gr_name);
-                       key.dptr = grpkey;
-                       memcpy (grpkey, (char *) &i, sizeof i);
-                       strcpy (grpkey + sizeof i, gr->gr_name);
-                       if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                               return 0;
-
-                       key.dsize = sizeof i + sizeof gr->gr_gid;
-                       key.dptr = grpkey;
-                       memcpy (grpkey, (char *) &i, sizeof i);
-                       memcpy (grpkey + sizeof i, (char *) &gr->gr_gid,
-                               sizeof gr->gr_gid);
-                       if (dbm_store (gr_dbm, key, content, DBM_REPLACE))
-                               return 0;
-               }
-       }
-       return 1;
-}
-
-/*
- * gr_dbm_remove
- *
- * Deletes the DBM group file entries, if they exist.
- */
-
-int
-gr_dbm_remove(const struct group *gr)
-{
-       datum   key;
-       datum   content;
-       char    grpkey[60];
-       int     i;
-       int     cnt;
-       int     errors = 0;
-       static  int     once;
-
-       if (! once) {
-               if (! gr_dbm)
-                       setgrent ();
-
-               once++;
-       }
-       if (! gr_dbm)
-               return 0;
-
-       key.dsize = strlen (gr->gr_name);
-       key.dptr = (char *) gr->gr_name;
-       content = dbm_fetch (gr_dbm, key);
-       if (content.dptr == 0)
-               ++errors;
-       else {
-               if (content.dsize == sizeof (int)) {
-                       memcpy ((char *) &cnt, content.dptr, sizeof cnt);
-
-                       for (i = 0;i < cnt;i++) {
-                               key.dsize = sizeof i + strlen (gr->gr_name);
-                               key.dptr = grpkey;
-                               memcpy (grpkey, (char *) &i, sizeof i);
-                               strcpy (grpkey + sizeof i, gr->gr_name);
-                               if (dbm_delete (gr_dbm, key))
-                                       ++errors;
-                       }
-               } else {
-                       if (dbm_delete (gr_dbm, key))
-                               ++errors;
-               }
-       }
-       key.dsize = sizeof gr->gr_gid;
-       key.dptr = (char *) &gr->gr_gid;
-       content = dbm_fetch (gr_dbm, key);
-       if (content.dptr == 0)
-               ++errors;
-       else {
-               if (content.dsize == sizeof (int)) {
-                       memcpy ((char *) &cnt, content.dptr, sizeof cnt);
-
-                       for (i = 0;i < cnt;i++) {
-                               key.dsize = sizeof i + sizeof gr->gr_gid;
-                               key.dptr = grpkey;
-                               memcpy (grpkey, (char *) &i, sizeof i);
-                               memcpy (grpkey + sizeof i, (char *) &gr->gr_gid,
-                                       sizeof gr->gr_gid);
-
-                               if (dbm_delete (gr_dbm, key))
-                                       ++errors;
-                       }
-               } else {
-                       if (dbm_delete (gr_dbm, key))
-                               ++errors;
-               }
-       }
-       return errors ? 0:1;
-}
-
-int
-gr_dbm_present(void)
-{
-       return (access(GROUP_PAG_FILE, F_OK) == 0);
-}
-#endif
index 90f61d987b684a7d4af84f47667784e69bac3646..4d9b6bf5824a2c0d7339b2acde8a3638ecce66b7 100644 (file)
@@ -2,38 +2,33 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: groupio.c,v 1.10 2001/08/14 21:10:36 malekith Exp $")
-
+RCSID ("$Id: groupio.c,v 1.11 2005/03/31 05:14:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
-
 #include "commonio.h"
 #include "groupio.h"
+extern int putgrent (const struct group *, FILE *);
+extern struct group *sgetgrent (const char *);
 
-extern int putgrent(const struct group *, FILE *);
-extern struct group *sgetgrent(const char *);
-
-struct group *
-__gr_dup(const struct group *grent)
+struct group *__gr_dup (const struct group *grent)
 {
        struct group *gr;
        int i;
 
-       if (!(gr = (struct group *) malloc(sizeof *gr)))
+       if (!(gr = (struct group *) malloc (sizeof *gr)))
                return NULL;
        *gr = *grent;
-       if (!(gr->gr_name = strdup(grent->gr_name)))
+       if (!(gr->gr_name = strdup (grent->gr_name)))
                return NULL;
-       if (!(gr->gr_passwd = strdup(grent->gr_passwd)))
+       if (!(gr->gr_passwd = strdup (grent->gr_passwd)))
                return NULL;
 
-       for (i = 0; grent->gr_mem[i]; i++)
-               ;
-       gr->gr_mem = (char **) malloc((i + 1) * sizeof(char *));
+       for (i = 0; grent->gr_mem[i]; i++);
+       gr->gr_mem = (char **) malloc ((i + 1) * sizeof (char *));
        if (!gr->gr_mem)
                return NULL;
        for (i = 0; grent->gr_mem[i]; i++) {
-               gr->gr_mem[i] = strdup(grent->gr_mem[i]);
+               gr->gr_mem[i] = strdup (grent->gr_mem[i]);
                if (!gr->gr_mem[i])
                        return NULL;
        }
@@ -41,45 +36,43 @@ __gr_dup(const struct group *grent)
        return gr;
 }
 
-static void *
-group_dup(const void *ent)
+static void *group_dup (const void *ent)
 {
        const struct group *gr = ent;
-       return __gr_dup(gr);
+
+       return __gr_dup (gr);
 }
 
-static void
-group_free(void *ent)
+static void group_free (void *ent)
 {
        struct group *gr = ent;
 
-       free(gr->gr_name);
-       free(gr->gr_passwd);
-       while(*(gr->gr_mem)) {
-               free(*(gr->gr_mem));
+       free (gr->gr_name);
+       free (gr->gr_passwd);
+       while (*(gr->gr_mem)) {
+               free (*(gr->gr_mem));
                gr->gr_mem++;
        }
-       free(gr);
+       free (gr);
 }
 
-static const char *
-group_getname(const void *ent)
+static const char *group_getname (const void *ent)
 {
        const struct group *gr = ent;
+
        return gr->gr_name;
 }
 
-static void *
-group_parse(const char *line)
+static void *group_parse (const char *line)
 {
-       return (void *) sgetgrent(line);
+       return (void *) sgetgrent (line);
 }
 
-static int
-group_put(const void *ent, FILE *file)
+static int group_put (const void *ent, FILE * file)
 {
        const struct group *gr = ent;
-       return (putgrent(gr, file) == -1) ? -1 : 0;
+
+       return (putgrent (gr, file) == -1) ? -1 : 0;
 }
 
 static struct commonio_ops group_ops = {
@@ -93,114 +86,99 @@ static struct commonio_ops group_ops = {
 };
 
 static struct commonio_db group_db = {
-       GROUP_FILE,     /* filename */
-       &group_ops,     /* ops */
-       NULL,           /* fp */
-       NULL,           /* head */
-       NULL,           /* tail */
-       NULL,           /* cursor */
-       0,              /* changed */
-       0,              /* isopen */
-       0,              /* locked */
-       0               /* readonly */
+       GROUP_FILE,             /* filename */
+       &group_ops,             /* ops */
+       NULL,                   /* fp */
+       NULL,                   /* head */
+       NULL,                   /* tail */
+       NULL,                   /* cursor */
+       0,                      /* changed */
+       0,                      /* isopen */
+       0,                      /* locked */
+       0                       /* readonly */
 };
 
-int
-gr_name(const char *filename)
+int gr_name (const char *filename)
 {
-       return commonio_setname(&group_db, filename);
+       return commonio_setname (&group_db, filename);
 }
 
-int
-gr_lock(void)
+int gr_lock (void)
 {
-       return commonio_lock(&group_db);
+       return commonio_lock (&group_db);
 }
 
-int
-gr_open(int mode)
+int gr_open (int mode)
 {
-       return commonio_open(&group_db, mode);
+       return commonio_open (&group_db, mode);
 }
 
-const struct group *
-gr_locate(const char *name)
+const struct group *gr_locate (const char *name)
 {
-       return commonio_locate(&group_db, name);
+       return commonio_locate (&group_db, name);
 }
 
-int
-gr_update(const struct group *gr)
+int gr_update (const struct group *gr)
 {
-       return commonio_update(&group_db, (const void *) gr);
+       return commonio_update (&group_db, (const void *) gr);
 }
 
-int
-gr_remove(const char *name)
+int gr_remove (const char *name)
 {
-       return commonio_remove(&group_db, name);
+       return commonio_remove (&group_db, name);
 }
 
-int
-gr_rewind(void)
+int gr_rewind (void)
 {
-       return commonio_rewind(&group_db);
+       return commonio_rewind (&group_db);
 }
 
-const struct group *
-gr_next(void)
+const struct group *gr_next (void)
 {
-       return commonio_next(&group_db);
+       return commonio_next (&group_db);
 }
 
-int
-gr_close(void)
+int gr_close (void)
 {
-       return commonio_close(&group_db);
+       return commonio_close (&group_db);
 }
 
-int
-gr_unlock(void)
+int gr_unlock (void)
 {
-       return commonio_unlock(&group_db);
+       return commonio_unlock (&group_db);
 }
 
-void
-__gr_set_changed(void)
+void __gr_set_changed (void)
 {
        group_db.changed = 1;
 }
 
-struct commonio_entry *
-__gr_get_head(void)
+struct commonio_entry *__gr_get_head (void)
 {
        return group_db.head;
 }
 
-struct commonio_db *
-__gr_get_db(void)
+struct commonio_db *__gr_get_db (void)
 {
        return &group_db;
 }
 
-void
-__gr_del_entry(const struct commonio_entry *ent)
+void __gr_del_entry (const struct commonio_entry *ent)
 {
-       commonio_del_entry(&group_db, ent);
+       commonio_del_entry (&group_db, ent);
 }
 
-static int
-gr_cmp(const void *p1, const void *p2)
+static int gr_cmp (const void *p1, const void *p2)
 {
        gid_t u1, u2;
 
-       if ((*(struct commonio_entry**)p1)->eptr == NULL)
+       if ((*(struct commonio_entry **) p1)->eptr == NULL)
                return 1;
-       if ((*(struct commonio_entry**)p2)->eptr == NULL)
+       if ((*(struct commonio_entry **) p2)->eptr == NULL)
                return -1;
-       
-       u1 = ((struct group *)(*(struct commonio_entry**)p1)->eptr)->gr_gid;
-       u2 = ((struct group *)(*(struct commonio_entry**)p2)->eptr)->gr_gid;
+
+       u1 = ((struct group *) (*(struct commonio_entry **) p1)->eptr)->gr_gid;
+       u2 = ((struct group *) (*(struct commonio_entry **) p2)->eptr)->gr_gid;
 
        if (u1 < u2)
                return -1;
@@ -211,8 +189,7 @@ gr_cmp(const void *p1, const void *p2)
 }
 
 /* Sort entries by gid */
-int
-gr_sort()
+int gr_sort ()
 {
-       return commonio_sort(&group_db, gr_cmp);
+       return commonio_sort (&group_db, gr_cmp);
 }
index a79b85b9dc375618f80d95c5aa1dcbcf6accdcfe..8474072c8ba6994835e4a09cdf1f69c967830fe5 100644 (file)
@@ -1,13 +1,13 @@
-extern struct group *__gr_dup(const struct group *);
-extern void __gr_set_changed(void);
-extern int gr_close(void);
-extern const struct group *gr_locate(const char *);
-extern int gr_lock(void);
-extern int gr_name(const char *);
-extern const struct group *gr_next(void);
-extern int gr_open(int);
-extern int gr_remove(const char *);
-extern int gr_rewind(void);
-extern int gr_unlock(void);
-extern int gr_update(const struct group *);
-extern int gr_sort(void);
+extern struct group *__gr_dup (const struct group *);
+extern void __gr_set_changed (void);
+extern int gr_close (void);
+extern const struct group *gr_locate (const char *);
+extern int gr_lock (void);
+extern int gr_name (const char *);
+extern const struct group *gr_next (void);
+extern int gr_open (int);
+extern int gr_remove (const char *);
+extern int gr_rewind (void);
+extern int gr_unlock (void);
+extern int gr_update (const struct group *);
+extern int gr_sort (void);
index 9f4a1803472e991602b83e0e21781e4172a4f409..d383bd63b53a8304b68fb92739632b8c2f92b871 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: grpack.c,v 1.3 1997/12/07 23:26:52 marekm Exp $")
-
+RCSID ("$Id: grpack.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
 #include <stdio.h>
 #include <grp.h>
-
 #include "defines.h"
-
-int
-gr_pack(const struct group *group, char *buf)
+int gr_pack (const struct group *group, char *buf)
 {
-       char    *cp;
-       int     i;
+       char *cp;
+       int i;
 
        cp = buf;
        strcpy (cp, group->gr_name);
@@ -53,7 +49,7 @@ gr_pack(const struct group *group, char *buf)
        memcpy (cp, (const char *) &group->gr_gid, sizeof group->gr_gid);
        cp += sizeof group->gr_gid;
 
-       for (i = 0;group->gr_mem[i];i++) {
+       for (i = 0; group->gr_mem[i]; i++) {
                strcpy (cp, group->gr_mem[i]);
                cp += strlen (cp) + 1;
        }
@@ -62,11 +58,10 @@ gr_pack(const struct group *group, char *buf)
        return cp - buf;
 }
 
-int
-gr_unpack(char *buf, int len, struct group *group)
+int gr_unpack (char *buf, int len, struct group *group)
 {
-       char    *org = buf;
-       int     i;
+       char *org = buf;
+       int i;
 
        group->gr_name = buf;
        buf += strlen (buf) + 1;
@@ -83,7 +78,7 @@ gr_unpack(char *buf, int len, struct group *group)
        if (buf - org > len)
                return -1;
 
-       for (i = 0;*buf && i < 1024;i++) {
+       for (i = 0; *buf && i < 1024; i++) {
                group->gr_mem[i] = buf;
                buf += strlen (buf) + 1;
 
diff --git a/lib/gsdbm.c b/lib/gsdbm.c
deleted file mode 100644 (file)
index a6da67a..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright 1990 - 1994, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#if defined(NDBM) && defined(SHADOWGRP) /*{*/
-
-#include <string.h>
-#include <stdio.h>
-#include "prototypes.h"
-
-#include "rcsid.h"
-RCSID("$Id: gsdbm.c,v 1.3 1997/12/07 23:26:53 marekm Exp $")
-
-#include <ndbm.h>
-extern DBM     *sg_dbm;
-
-#define        GRP_FRAG        256
-
-/*
- * sg_dbm_update
- *
- * Updates the DBM password files, if they exist.
- */
-
-int
-sg_dbm_update(const struct sgrp *sgr)
-{
-       datum   key;
-       datum   content;
-       char    data[BUFSIZ*8];
-       char    sgrpkey[60];
-       char    *cp;
-       int     len;
-       int     i;
-       int     cnt;
-       static  int     once;
-
-       if (! once) {
-               if (! sg_dbm)
-                       setsgent ();
-
-               once++;
-       }
-       if (! sg_dbm)
-               return 0;
-
-       len = sgr_pack (sgr, data);
-
-       if (len <= GRP_FRAG) {
-               content.dsize = len;
-               content.dptr = data;
-
-               key.dsize = strlen (sgr->sg_name);
-               key.dptr = sgr->sg_name;
-               if (dbm_store (sg_dbm, key, content, DBM_REPLACE))
-                       return 0;
-       } else {
-               content.dsize = sizeof cnt;
-               content.dptr = (char *) &cnt;
-               cnt = (len + (GRP_FRAG-1)) / GRP_FRAG;
-
-               key.dsize = strlen (sgr->sg_name);
-               key.dptr = sgr->sg_name;
-               if (dbm_store (sg_dbm, key, content, DBM_REPLACE))
-                       return 0;
-
-               for (cp = data, i = 0;i < cnt;i++) {
-                       content.dsize = len > GRP_FRAG ? GRP_FRAG:len;
-                       len -= content.dsize;
-                       content.dptr = cp;
-                       cp += content.dsize;
-
-                       key.dsize = sizeof i + strlen (sgr->sg_name);
-                       key.dptr = sgrpkey;
-                       memcpy (sgrpkey, (char *) &i, sizeof i);
-                       strcpy (sgrpkey + sizeof i, sgr->sg_name);
-                       if (dbm_store (sg_dbm, key, content, DBM_REPLACE))
-                               return 0;
-               }
-       }
-       return 1;
-}
-
-/*
- * sg_dbm_remove
- *
- * Deletes the DBM shadow group file entries, if they exist.
- */
-
-int
-sg_dbm_remove(const char *name)
-{
-       datum   key;
-       datum   content;
-       char    grpkey[60];
-       int     i;
-       int     cnt;
-       int     errors = 0;
-       static  int     once;
-
-       if (! once) {
-               if (! sg_dbm)
-                       setsgent ();
-
-               once++;
-       }
-       if (! sg_dbm)
-               return 0;
-
-       key.dsize = strlen (name);
-       key.dptr = name;
-       content = dbm_fetch (sg_dbm, key);
-       if (content.dptr == 0)
-               ++errors;
-       else {
-               if (content.dsize == sizeof (int)) {
-                       memcpy ((char *) &cnt, content.dptr, sizeof cnt);
-
-                       for (i = 0;i < cnt;i++) {
-                               key.dsize = sizeof i + strlen (name);
-                               key.dptr = grpkey;
-                               memcpy (grpkey, (char *) &i, sizeof i);
-                               strcpy (grpkey + sizeof i, name);
-                               if (dbm_delete (sg_dbm, key))
-                                       ++errors;
-                       }
-               } else {
-                       if (dbm_delete (sg_dbm, key))
-                               ++errors;
-               }
-       }
-       return errors ? 0:1;
-}
-
-int
-sg_dbm_present(void)
-{
-       return (access(SGROUP_PAG_FILE, F_OK) == 0);
-}
-#endif /*} SHADOWGRP && NDBM */
index 8de925b8368b523b3482e3e99e7ef8af35a8b1fc..bd4b0fcf476acf035b50a3ef8927fdaee33dad61 100644 (file)
 #include <config.h>
 
 /* Newer versions of Linux libc already have shadow support.  */
-#if defined(SHADOWGRP) && !defined(HAVE_SHADOWGRP)     /*{*/
+#if defined(SHADOWGRP) && !defined(HAVE_SHADOWGRP)     /*{ */
 
 #include "rcsid.h"
-RCSID("$Id: gshadow.c,v 1.6 1998/04/02 21:51:43 marekm Exp $")
-
+RCSID ("$Id: gshadow.c,v 1.9 2005/04/06 04:26:05 kloczek Exp $")
 #include <stdio.h>
 #include "prototypes.h"
 #include "defines.h"
 
-#ifdef NDBM
-#include <ndbm.h>
-#include <fcntl.h>
-DBM    *sg_dbm;
-int    sg_dbm_mode = -1;
-static int     dbmopened;
-static int     dbmerror;
-#endif
-
-#define        MAXMEM  1024
+static FILE *shadow;
+static char sgrbuf[BUFSIZ * 4];
+static char **members = NULL;
+static size_t nmembers = 0;
+static char **admins = NULL;
+static size_t nadmins = 0;
+static struct sgrp sgroup;
 
-static FILE    *shadow;
-static char    sgrbuf[BUFSIZ*4];
-static char    *members[MAXMEM+1];
-static char    *admins[MAXMEM+1];
-static struct  sgrp    sgroup;
-
-extern char    *fgetsx();
-extern int     fputsx();
+extern char *fgetsx ();
+extern int fputsx ();
 
 #define        FIELDS  4
 
 #ifdef USE_NIS
-static int     nis_used;
-static int     nis_ignore;
-static enum    { native, start, middle, native2 } nis_state;
-static int     nis_bound;
-static char    *nis_domain;
-static char    *nis_key;
-static int     nis_keylen;
-static char    *nis_val;
-static int     nis_vallen;
+static int nis_used;
+static int nis_ignore;
+static enum { native, start, middle, native2 } nis_state;
+static int nis_bound;
+static char *nis_domain;
+static char *nis_key;
+static int nis_keylen;
+static char *nis_val;
+static int nis_vallen;
+
 #define        IS_NISCHAR(c) ((c)=='+')
 #endif
 
@@ -80,10 +71,9 @@ static       int     nis_vallen;
  * __setsgNIS - turn on or off NIS searches
  */
 
-void
-__setsgNIS(int flag)
+void __setsgNIS (int flag)
 {
-       nis_ignore = ! flag;
+       nis_ignore = !flag;
 
        if (nis_ignore)
                nis_used = 0;
@@ -93,8 +83,7 @@ __setsgNIS(int flag)
  * bind_nis - bind to NIS server
  */
 
-static int
-bind_nis(void)
+static int bind_nis (void)
 {
        if (yp_get_default_domain (&nis_domain))
                return -1;
@@ -104,82 +93,53 @@ bind_nis(void)
 }
 #endif
 
-static char **
-list(char *s, char **l)
+static char **list (char *s, char **list[], size_t * nlist)
 {
-       int     nmembers = 0;
-
-       while (s && *s) {
-               l[nmembers++] = s;
-               if ((s = strchr (s, ',')))
-                       *s++ = '\0';
+       char **ptr = *list;
+       size_t nelem = *nlist, size;
+
+       while (s != NULL && *s != '\0') {
+               size = (nelem + 1) * sizeof (ptr);
+               if ((ptr = realloc (*list, size)) != NULL) {
+                       ptr[nelem++] = s;
+                       *list = ptr;
+                       *nlist = nelem;
+                       if ((s = strchr (s, ',')))
+                               *s++ = '\0';
+               }
        }
-       l[nmembers] = (char *) 0;
-       return l;
+       size = (nelem + 1) * sizeof (ptr);
+       if ((ptr = realloc (*list, size)) != NULL) {
+               ptr[nelem] = '\0';
+               *list = ptr;
+       }
+       return ptr;
 }
 
-void
-setsgent(void)
+void setsgent (void)
 {
-#ifdef NDBM
-       int     mode;
-#endif /* NDBM */
-
 #ifdef USE_NIS
        nis_state = native;
 #endif
        if (shadow)
                rewind (shadow);
        else
-               shadow = fopen(SGROUP_FILE, "r");
-
-       /*
-        * Attempt to open the DBM files if they have never been opened
-        * and an error has never been returned.
-        */
-
-#ifdef NDBM
-       if (! dbmerror && ! dbmopened) {
-               char    dbmfiles[BUFSIZ];
-
-               strcpy (dbmfiles, SGROUP_PAG_FILE);
-
-               if (sg_dbm_mode == -1)
-                       mode = O_RDWR;
-               else
-                       mode = (sg_dbm_mode == O_RDWR) ? O_RDWR:O_RDONLY;
-
-               if (access(dbmfiles, F_OK) ||
-                       (! (sg_dbm = dbm_open(SGROUP_FILE, mode, 0))))
-                       dbmerror = 1;
-               else
-                       dbmopened = 1;
-       }
-#endif /* NDBM */
+               shadow = fopen (SGROUP_FILE, "r");
 }
 
-void
-endsgent(void)
+void endsgent (void)
 {
        if (shadow)
                (void) fclose (shadow);
 
        shadow = (FILE *) 0;
-#ifdef NDBM
-       if (dbmopened && sg_dbm) {
-               dbm_close (sg_dbm);
-               dbmopened = 0;
-               sg_dbm = 0;
-       }
-#endif
 }
 
-struct sgrp *
-sgetsgent(const char *string)
+struct sgrp *sgetsgent (const char *string)
 {
-       char    *fields[FIELDS];
-       char    *cp;
-       int     i;
+       char *fields[FIELDS];
+       char *cp;
+       int i;
 
        strncpy (sgrbuf, string, (int) sizeof sgrbuf - 1);
        sgrbuf[sizeof sgrbuf - 1] = '\0';
@@ -192,7 +152,7 @@ sgetsgent(const char *string)
         * all 4 of them and save the starting addresses in fields[].
         */
 
-       for (cp = sgrbuf, i = 0;i < FIELDS && cp;i++) {
+       for (cp = sgrbuf, i = 0; i < FIELDS && cp; i++) {
                fields[i] = cp;
                if ((cp = strchr (cp, ':')))
                        *cp++ = '\0';
@@ -205,7 +165,7 @@ sgetsgent(const char *string)
 
        if (cp || i != FIELDS)
 #ifdef USE_NIS
-               if (! IS_NISCHAR (fields[0][0]))
+               if (!IS_NISCHAR (fields[0][0]))
                        return 0;
                else
                        nis_used = 1;
@@ -215,8 +175,18 @@ sgetsgent(const char *string)
 
        sgroup.sg_name = fields[0];
        sgroup.sg_passwd = fields[1];
-       sgroup.sg_adm = list (fields[2], admins);
-       sgroup.sg_mem = list (fields[3], members);
+       if (nadmins) {
+               nadmins = 0;
+               free (admins);
+               admins = NULL;
+       }
+       if (nmembers) {
+               nmembers = 0;
+               free (members);
+               members = NULL;
+       }
+       sgroup.sg_adm = list (fields[2], &admins, &nadmins);
+       sgroup.sg_mem = list (fields[3], &members, &nmembers);
 
        return &sgroup;
 }
@@ -228,13 +198,12 @@ sgetsgent(const char *string)
  * converts it to a (struct sgrp).  NULL is returned on EOF.
  */
 
-struct sgrp *
-fgetsgent(FILE *fp)
+struct sgrp *fgetsgent (FILE * fp)
 {
-       char    buf[sizeof sgrbuf];
-       char    *cp;
+       char buf[sizeof sgrbuf];
+       char *cp;
 
-       if (! fp)
+       if (!fp)
                return (0);
 
 #ifdef USE_NIS
@@ -258,19 +227,18 @@ fgetsgent(FILE *fp)
  * getsgent - get a single shadow group entry
  */
 
-struct sgrp *
-getsgent(void)
+struct sgrp *getsgent (void)
 {
 #ifdef USE_NIS
-       int     nis_1_group = 0;
-       struct  sgrp    *val;
-       char    buf[BUFSIZ];
+       int nis_1_group = 0;
+       struct sgrp *val;
+       char buf[BUFSIZ];
 #endif
-       if (! shadow)
+       if (!shadow)
                setsgent ();
 
 #ifdef USE_NIS
-again:
+      again:
        /*
         * See if we are reading from the local file.
         */
@@ -282,7 +250,7 @@ again:
                 * NULL right away if there is none.
                 */
 
-               if (! (val = fgetsgent (shadow)))
+               if (!(val = fgetsgent (shadow)))
                        return 0;
 
                /*
@@ -328,15 +296,15 @@ again:
                }
                if (nis_state == start) {
                        if (yp_first (nis_domain, "gshadow.byname", &nis_key,
-                               &nis_keylen, &nis_val, &nis_vallen)) {
+                                     &nis_keylen, &nis_val, &nis_vallen)) {
                                nis_state = native2;
                                goto again;
                        }
                        nis_state = middle;
                } else if (nis_state == middle) {
                        if (yp_next (nis_domain, "gshadow.byname", nis_key,
-                               nis_keylen, &nis_key, &nis_keylen,
-                               &nis_val, &nis_vallen)) {
+                                    nis_keylen, &nis_key, &nis_keylen,
+                                    &nis_val, &nis_vallen)) {
                                nis_state = native2;
                                goto again;
                        }
@@ -352,61 +320,35 @@ again:
  * getsgnam - get a shadow group entry by name
  */
 
-struct sgrp *
-getsgnam(const char *name)
+struct sgrp *getsgnam (const char *name)
 {
-       struct  sgrp    *sgrp;
-#ifdef NDBM
-       datum   key;
-       datum   content;
-#endif
+       struct sgrp *sgrp;
+
 #ifdef USE_NIS
-       char    buf[BUFSIZ];
-       static  char    save_name[16];
-       int     nis_disabled = 0;
+       char buf[BUFSIZ];
+       static char save_name[16];
+       int nis_disabled = 0;
 #endif
 
        setsgent ();
 
-#ifdef NDBM
-
-       /*
-        * If the DBM file are now open, create a key for this group and
-        * try to fetch the entry from the database.  A matching record
-        * will be unpacked into a static structure and returned to
-        * the user.
-        */
-
-       if (dbmopened) {
-               key.dsize = strlen (name);
-               key.dptr = (void *) name;
-
-               content = dbm_fetch (sg_dbm, key);
-               if (content.dptr != 0) {
-                       memcpy (sgrbuf, content.dptr, content.dsize);
-                       sgroup.sg_mem = members;
-                       sgroup.sg_adm = admins;
-                       sgr_unpack (sgrbuf, content.dsize, &sgroup);
-                       return &sgroup;
-               }
-       }
-#endif
 #ifdef USE_NIS
        if (nis_used) {
-again:
+             again:
 
                /*
                 * Search the gshadow.byname map for this group.
                 */
 
-               if (! nis_bound)
+               if (!nis_bound)
                        bind_nis ();
 
                if (nis_bound) {
-                       char    *cp;
+                       char *cp;
 
                        if (yp_match (nis_domain, "gshadow.byname", name,
-                                       strlen (name), &nis_val, &nis_vallen) == 0) {
+                                     strlen (name), &nis_val,
+                                     &nis_vallen) == 0) {
                                if (cp = strchr (nis_val, '\n'))
                                        *cp = '\0';
 
@@ -448,24 +390,23 @@ again:
  * opposite of fgetsgent.
  */
 
-int
-putsgent(const struct sgrp *sgrp, FILE *fp)
+int putsgent (const struct sgrp *sgrp, FILE * fp)
 {
        char *buf, *cp;
        int i;
        size_t size;
 
-       if (! fp || ! sgrp)
+       if (!fp || !sgrp)
                return -1;
 
        /* calculate the required buffer size */
-       size = strlen(sgrp->sg_name) + strlen(sgrp->sg_passwd) + 10;
+       size = strlen (sgrp->sg_name) + strlen (sgrp->sg_passwd) + 10;
        for (i = 0; sgrp->sg_adm && sgrp->sg_adm[i]; i++)
-               size += strlen(sgrp->sg_adm[i]) + 1;
+               size += strlen (sgrp->sg_adm[i]) + 1;
        for (i = 0; sgrp->sg_mem && sgrp->sg_mem[i]; i++)
-               size += strlen(sgrp->sg_mem[i]) + 1;
+               size += strlen (sgrp->sg_mem[i]) + 1;
 
-       buf = malloc(size);
+       buf = malloc (size);
        if (!buf)
                return -1;
        cp = buf;
@@ -487,7 +428,7 @@ putsgent(const struct sgrp *sgrp, FILE *fp)
         * with a ",".
         */
 
-       for (i = 0;sgrp->sg_adm[i];i++) {
+       for (i = 0; sgrp->sg_adm[i]; i++) {
                if (i > 0)
                        *cp++ = ',';
 
@@ -500,7 +441,7 @@ putsgent(const struct sgrp *sgrp, FILE *fp)
         * Now do likewise with the group members.
         */
 
-       for (i = 0;sgrp->sg_mem[i];i++) {
+       for (i = 0; sgrp->sg_mem[i]; i++) {
                if (i > 0)
                        *cp++ = ',';
 
@@ -515,14 +456,14 @@ putsgent(const struct sgrp *sgrp, FILE *fp)
         * continuation conventions.
         */
 
-       if (fputsx(buf, fp) == EOF) {
-               free(buf);
+       if (fputsx (buf, fp) == EOF) {
+               free (buf);
                return -1;
        }
 
-       free(buf);
+       free (buf);
        return 0;
 }
 #else
-extern int errno;  /* warning: ANSI C forbids an empty source file */
-#endif /*} SHADOWGRP */
+extern int errno;              /* warning: ANSI C forbids an empty source file */
+#endif                         /*} SHADOWGRP */
index b1cac557b494c0d1f95dd40c869406569bc2dca8..41e63a235a2ea6e645685ed17a145a6e999d8917 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     $Id: gshadow_.h,v 1.2 1997/05/01 23:14:41 marekm Exp $
+ *     $Id: gshadow_.h,v 1.3 2005/03/31 05:14:49 kloczek Exp $
  */
 
 #ifndef        _H_GSHADOW
  * Shadow group security file structure
  */
 
-struct sgrp {
-       char    *sg_name;       /* group name */
-       char    *sg_passwd;     /* group password */
-       char    **sg_adm;       /* group administator list */
-       char    **sg_mem;       /* group membership list */
+struct sgrp {
+       char *sg_name;          /* group name */
+       char *sg_passwd;        /* group password */
+       char **sg_adm;          /* group administator list */
+       char **sg_mem;          /* group membership list */
 };
 
 /*
  * Shadow group security file functions.
  */
 
-#include <stdio.h>  /* for FILE */
+#include <stdio.h>             /* for FILE */
 
 #if __STDC__
-struct sgrp    *getsgent (void);
-struct sgrp    *getsgnam (const char *);
-struct sgrp    *sgetsgent (const char *);
-struct sgrp    *fgetsgent (FILE *);
-void   setsgent (void);
-void   endsgent (void);
-int    putsgent (const struct sgrp *, FILE *);
+struct sgrp *getsgent (void);
+struct sgrp *getsgnam (const char *);
+struct sgrp *sgetsgent (const char *);
+struct sgrp *fgetsgent (FILE *);
+void setsgent (void);
+void endsgent (void);
+int putsgent (const struct sgrp *, FILE *);
 #else
-struct sgrp    *getsgent ();
-struct sgrp    *getsgnam ();
-struct sgrp    *sgetsgent ();
-struct sgrp    *fgetsgent ();
-void   setsgent ();
-void   endsgent ();
-int    putsgent ();
+struct sgrp *getsgent ();
+struct sgrp *getsgnam ();
+struct sgrp *sgetsgent ();
+struct sgrp *fgetsgent ();
+void setsgent ();
+void endsgent ();
+int putsgent ();
 #endif
 
 #define        GSHADOW "/etc/gshadow"
-#endif /* ifndef _H_GSHADOW */
+#endif                         /* ifndef _H_GSHADOW */
index fe76060bb6f0be49c810c5e6c4b0e8ac37167222..c7472280c1421707c7ba751fb94499cff611e146 100644 (file)
 
 #include <config.h>
 
-#ifdef SHADOWGRP       /*{*/
+#ifdef SHADOWGRP               /*{ */
 
 #include "rcsid.h"
-RCSID("$Id: gspack.c,v 1.3 1997/12/07 23:26:53 marekm Exp $")
-
+RCSID ("$Id: gspack.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
 #include <stdio.h>
 #include "defines.h"
-
 /*
  * sgr_pack - convert a shadow group structure to a packed
  *           shadow group record
@@ -45,12 +43,10 @@ RCSID("$Id: gspack.c,v 1.3 1997/12/07 23:26:53 marekm Exp $")
  *     the components in a record.  this record will be
  *     unpacked later by sgr_unpack.
  */
-
-int
-sgr_pack(const struct sgrp *sgrp, char *buf)
+int sgr_pack (const struct sgrp *sgrp, char *buf)
 {
-       char    *cp;
-       int     i;
+       char *cp;
+       int i;
 
        /*
         * The name and password are both easy - append each string
@@ -74,13 +70,13 @@ sgr_pack(const struct sgrp *sgrp, char *buf)
         * find the start of the members.
         */
 
-       for (i = 0;sgrp->sg_adm[i];i++) {
+       for (i = 0; sgrp->sg_adm[i]; i++) {
                strcpy (cp, sgrp->sg_adm[i]);
                cp += strlen (cp) + 1;
        }
        *cp++ = '\0';
 
-       for (i = 0;sgrp->sg_mem[i];i++) {
+       for (i = 0; sgrp->sg_mem[i]; i++) {
                strcpy (cp, sgrp->sg_mem[i]);
                cp += strlen (cp) + 1;
        }
@@ -97,11 +93,10 @@ sgr_pack(const struct sgrp *sgrp, char *buf)
  *     into the normal shadow group structure format.
  */
 
-int
-sgr_unpack(char *buf, int len, struct sgrp *sgrp)
+int sgr_unpack (char *buf, int len, struct sgrp *sgrp)
 {
-       char    *org = buf;
-       int     i;
+       char *org = buf;
+       int i;
 
        /*
         * The name and password are both easy - they are the first
@@ -125,7 +120,7 @@ sgr_unpack(char *buf, int len, struct sgrp *sgrp)
         * looking for an initial character of '\0'.
         */
 
-       for (i = 0;*buf && i < 1024;i++) {
+       for (i = 0; *buf && i < 1024; i++) {
                sgrp->sg_adm[i] = buf;
                buf += strlen (buf) + 1;
 
@@ -133,10 +128,10 @@ sgr_unpack(char *buf, int len, struct sgrp *sgrp)
                        return -1;
        }
        sgrp->sg_adm[i] = (char *) 0;
-       if (! *buf)
+       if (!*buf)
                buf++;
 
-       for (i = 0;*buf && i < 1024;i++) {
+       for (i = 0; *buf && i < 1024; i++) {
                sgrp->sg_mem[i] = buf;
                buf += strlen (buf) + 1;
 
@@ -147,4 +142,4 @@ sgr_unpack(char *buf, int len, struct sgrp *sgrp)
 
        return 0;
 }
-#endif /*}*/
+#endif                         /*} */
index 879dc983a699f174561fda5e3aa329d7326d5966..c1672d309a9e7a4e82a209aad82aebb161032ad9 100644 (file)
 #ifndef HAVE_LCKPWDF
 
 #include "rcsid.h"
-RCSID("$Id: lockpw.c,v 1.4 1998/01/29 23:22:28 marekm Exp $")
-
+RCSID ("$Id: lockpw.c,v 1.5 2005/03/31 05:14:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
-
 #include "pwio.h"
 #ifdef SHADOWPWD
 #include "shadowio.h"
 #endif
-
 /*
  * lckpwdf - lock the password files
  */
-
-int
-lckpwdf(void)
+int lckpwdf (void)
 {
-       int     i;
+       int i;
 
        /*
         * We have 15 seconds to lock the whole mess
         */
 
-       for (i = 0;i < 15;i++)
+       for (i = 0; i < 15; i++)
                if (pw_lock ())
                        break;
                else
@@ -73,7 +68,7 @@ lckpwdf(void)
         * file.
         */
 
-       for (;i < 15;i++)
+       for (; i < 15; i++)
                if (spw_lock ())
                        break;
                else
@@ -99,16 +94,15 @@ lckpwdf(void)
  * ulckpwdf - unlock the password files
  */
 
-int
-ulckpwdf(void)
+int ulckpwdf (void)
 {
 
        /*
         * Unlock both files.
         */
 
-       return (pw_unlock () && spw_unlock ()) ? 0:-1;
+       return (pw_unlock () && spw_unlock ())? 0 : -1;
 }
 #else
-extern int errno;  /* warning: ANSI C forbids an empty source file */
+extern int errno;              /* warning: ANSI C forbids an empty source file */
 #endif
index 6ffb9125e6e6daad687132197b56ee7bf56156a1..5a9399916deb66c17b9393869344ace7cd4f223a 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: port.c,v 1.3 1997/12/07 23:26:54 marekm Exp $")
-
+RCSID ("$Id: port.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
 #include <stdio.h>
 #include <ctype.h>
 #include <errno.h>
 #include "defines.h"
 #include "port.h"
+extern int errno;
 
-extern int     errno;
-
-static FILE    *ports;
+static FILE *ports;
 
 /*
  * portcmp - compare the name of a port to a /etc/porttime entry
@@ -52,8 +50,7 @@ static        FILE    *ports;
  *     A match returns 0, failure returns non-zero.
  */
 
-static int
-portcmp(const char *pattern, const char *port)
+static int portcmp (const char *pattern, const char *port)
 {
        const char *orig = port;
 
@@ -65,7 +62,7 @@ portcmp(const char *pattern, const char *port)
        if (orig[0] == 'S' && orig[1] == 'U' && orig[2] == '\0')
                return 1;
 
-       return *pattern == '*' ? 0:1;
+       return *pattern == '*' ? 0 : 1;
 }
 
 /*
@@ -75,12 +72,11 @@ portcmp(const char *pattern, const char *port)
  *     opened for reading.
  */
 
-static void
-setportent(void)
+static void setportent (void)
 {
        if (ports)
                rewind (ports);
-       else 
+       else
                ports = fopen (PORTS, "r");
 }
 
@@ -92,8 +88,7 @@ setportent(void)
  *     open.
  */
 
-static void
-endportent(void)
+static void endportent (void)
 {
        if (ports)
                fclose (ports);
@@ -110,28 +105,27 @@ endportent(void)
  *     set to EINVAL on error to distinguish the two conditions.
  */
 
-static struct port *
-getportent(void)
+static struct port *getportent (void)
 {
-       static  struct  port    port;   /* static struct to point to         */
-       static  char    buf[BUFSIZ];    /* some space for stuff              */
-       static  char    *ttys[PORT_TTY+1]; /* some pointers to tty names     */
-       static  char    *users[PORT_IDS+1]; /* some pointers to user ids     */
-       static  struct  pt_time ptimes[PORT_TIMES+1]; /* time ranges         */
-       char    *cp;                    /* pointer into line                 */
-       int     dtime;                  /* scratch time of day               */
-       int     i, j;
-       int     saveerr = errno;        /* errno value on entry              */
+       static struct port port;        /* static struct to point to         */
+       static char buf[BUFSIZ];        /* some space for stuff              */
+       static char *ttys[PORT_TTY + 1];        /* some pointers to tty names     */
+       static char *users[PORT_IDS + 1];       /* some pointers to user ids     */
+       static struct pt_time ptimes[PORT_TIMES + 1];   /* time ranges         */
+       char *cp;               /* pointer into line                 */
+       int dtime;              /* scratch time of day               */
+       int i, j;
+       int saveerr = errno;    /* errno value on entry              */
 
        /*
         * If the ports file is not open, open the file.  Do not rewind
         * since we want to search from the beginning each time.
         */
 
-       if (! ports)
+       if (!ports)
                setportent ();
 
-       if (! ports) {
+       if (!ports) {
                errno = saveerr;
                return 0;
        }
@@ -139,14 +133,14 @@ getportent(void)
        /*
         * Common point for beginning a new line -
         *
-        *      - read a line, and NUL terminate
-        *      - skip lines which begin with '#'
-        *      - parse off the tty names
-        *      - parse off a list of user names
-        *      - parse off a list of days and times
+        *      - read a line, and NUL terminate
+        *      - skip lines which begin with '#'
+        *      - parse off the tty names
+        *      - parse off a list of user names
+        *      - parse off a list of days and times
         */
 
-again:
+      again:
 
        /*
         * Get the next line and remove the last character, which
@@ -170,18 +164,18 @@ again:
        buf[strlen (buf) - 1] = 0;
 
        port.pt_names = ttys;
-       for (cp = buf, j = 0;j < PORT_TTY;j++) {
+       for (cp = buf, j = 0; j < PORT_TTY; j++) {
                port.pt_names[j] = cp;
                while (*cp && *cp != ':' && *cp != ',')
                        cp++;
 
-               if (! *cp)
+               if (!*cp)
                        goto again;     /* line format error */
 
-               if (*cp == ':')         /* end of tty name list */
+               if (*cp == ':') /* end of tty name list */
                        break;
 
-               if (*cp == ',')         /* end of current tty name */
+               if (*cp == ',') /* end of current tty name */
                        *cp++ = '\0';
        }
        *cp++ = 0;
@@ -198,7 +192,7 @@ again:
                port.pt_users = users;
                port.pt_users[0] = cp;
 
-               for (j = 1;*cp != ':';cp++) {
+               for (j = 1; *cp != ':'; cp++) {
                        if (*cp == ',' && j < PORT_IDS) {
                                *cp++ = 0;
                                port.pt_users[j++] = cp;
@@ -237,7 +231,7 @@ again:
         * Get the next comma separated entry
         */
 
-       for (j = 0;*cp && j < PORT_TIMES;j++) {
+       for (j = 0; *cp && j < PORT_TIMES; j++) {
 
                /*
                 * Start off with no days of the week
@@ -251,38 +245,38 @@ again:
                 * week or the other two values.
                 */
 
-               for (i = 0;cp[i] && cp[i + 1] && isalpha (cp[i]);i += 2) {
+               for (i = 0; cp[i] && cp[i + 1] && isalpha (cp[i]); i += 2) {
                        switch ((cp[i] << 8) | (cp[i + 1])) {
-                               case ('S' << 8) | 'u':
-                                       port.pt_times[j].t_days |= 01;
-                                       break;
-                               case ('M' << 8) | 'o':
-                                       port.pt_times[j].t_days |= 02;
-                                       break;
-                               case ('T' << 8) | 'u':
-                                       port.pt_times[j].t_days |= 04;
-                                       break;
-                               case ('W' << 8) | 'e':
-                                       port.pt_times[j].t_days |= 010;
-                                       break;
-                               case ('T' << 8) | 'h':
-                                       port.pt_times[j].t_days |= 020;
-                                       break;
-                               case ('F' << 8) | 'r':
-                                       port.pt_times[j].t_days |= 040;
-                                       break;
-                               case ('S' << 8) | 'a':
-                                       port.pt_times[j].t_days |= 0100;
-                                       break;
-                               case ('W' << 8) | 'k':
-                                       port.pt_times[j].t_days |= 076;
-                                       break;
-                               case ('A' << 8) | 'l':
-                                       port.pt_times[j].t_days |= 0177;
-                                       break;
-                               default:
-                                       errno = EINVAL;
-                                       return 0;
+                       case ('S' << 8) | 'u':
+                               port.pt_times[j].t_days |= 01;
+                               break;
+                       case ('M' << 8) | 'o':
+                               port.pt_times[j].t_days |= 02;
+                               break;
+                       case ('T' << 8) | 'u':
+                               port.pt_times[j].t_days |= 04;
+                               break;
+                       case ('W' << 8) | 'e':
+                               port.pt_times[j].t_days |= 010;
+                               break;
+                       case ('T' << 8) | 'h':
+                               port.pt_times[j].t_days |= 020;
+                               break;
+                       case ('F' << 8) | 'r':
+                               port.pt_times[j].t_days |= 040;
+                               break;
+                       case ('S' << 8) | 'a':
+                               port.pt_times[j].t_days |= 0100;
+                               break;
+                       case ('W' << 8) | 'k':
+                               port.pt_times[j].t_days |= 076;
+                               break;
+                       case ('A' << 8) | 'l':
+                               port.pt_times[j].t_days |= 0177;
+                               break;
+                       default:
+                               errno = EINVAL;
+                               return 0;
                        }
                }
 
@@ -299,7 +293,7 @@ again:
                 * representing the times of day.
                 */
 
-               for (dtime = 0;cp[i] && isdigit (cp[i]);i++)
+               for (dtime = 0; cp[i] && isdigit (cp[i]); i++)
                        dtime = dtime * 10 + cp[i] - '0';
 
                if (cp[i] != '-' || dtime > 2400 || dtime % 100 > 59)
@@ -307,11 +301,10 @@ again:
                port.pt_times[j].t_start = dtime;
                cp = cp + i + 1;
 
-               for (dtime = i = 0;cp[i] && isdigit (cp[i]);i++)
+               for (dtime = i = 0; cp[i] && isdigit (cp[i]); i++)
                        dtime = dtime * 10 + cp[i] - '0';
 
-               if ((cp[i] != ',' && cp[i]) ||
-                   dtime > 2400 || dtime % 100 > 59)
+               if ((cp[i] != ',' && cp[i]) || dtime > 2400 || dtime % 100 > 59)
                        goto again;
 
                port.pt_times[j].t_end = dtime;
@@ -337,11 +330,10 @@ again:
  *     entries are treated as an ordered list.
  */
 
-static struct port *
-getttyuser(const char *tty, const char *user)
+static struct port *getttyuser (const char *tty, const char *user)
 {
-       int     i, j;
-       struct  port    *port;
+       int i, j;
+       struct port *port;
 
        setportent ();
 
@@ -349,16 +341,16 @@ getttyuser(const char *tty, const char *user)
                if (port->pt_names == 0 || port->pt_users == 0)
                        continue;
 
-               for (i = 0;port->pt_names[i];i++)
+               for (i = 0; port->pt_names[i]; i++)
                        if (portcmp (port->pt_names[i], tty) == 0)
                                break;
 
                if (port->pt_names[i] == 0)
                        continue;
 
-               for (j = 0;port->pt_users[j];j++)
+               for (j = 0; port->pt_users[j]; j++)
                        if (strcmp (user, port->pt_users[j]) == 0 ||
-                                       strcmp (port->pt_users[j], "*") == 0)
+                           strcmp (port->pt_users[j], "*") == 0)
                                break;
 
                if (port->pt_users[j] != 0)
@@ -375,13 +367,12 @@ getttyuser(const char *tty, const char *user)
  *     the user name and TTY given.
  */
 
-int
-isttytime(const char *id, const char *port, time_t when)
+int isttytime (const char *id, const char *port, time_t when)
 {
-       int     i;
-       int     dtime;
-       struct  port    *pp;
-       struct  tm      *tm;
+       int i;
+       int dtime;
+       struct port *pp;
+       struct tm *tm;
 
        /*
         * Try to find a matching entry for this user.  Default to
@@ -389,7 +380,7 @@ isttytime(const char *id, const char *port, time_t when)
         * entry to match all users.
         */
 
-       if (! (pp = getttyuser (port, id)))
+       if (!(pp = getttyuser (port, id)))
                return 1;
 
        /*
@@ -415,17 +406,17 @@ isttytime(const char *id, const char *port, time_t when)
         * midnight and either the start or end time.
         */
 
-       for (i = 0;pp->pt_times[i].t_start != -1;i++) {
-               if (! (pp->pt_times[i].t_days & PORT_DAY(tm->tm_wday)))
+       for (i = 0; pp->pt_times[i].t_start != -1; i++) {
+               if (!(pp->pt_times[i].t_days & PORT_DAY (tm->tm_wday)))
                        continue;
 
                if (pp->pt_times[i].t_start <= pp->pt_times[i].t_end) {
                        if (dtime >= pp->pt_times[i].t_start &&
-                                       dtime <= pp->pt_times[i].t_end)
+                           dtime <= pp->pt_times[i].t_end)
                                return 1;
                } else {
                        if (dtime >= pp->pt_times[i].t_start ||
-                                       dtime <= pp->pt_times[i].t_end)
+                           dtime <= pp->pt_times[i].t_end)
                                return 1;
                }
        }
index a02d67285da05be10992e92c8a0bf3cd5f02073d..a010cee3d9a7be9d18aca67cce03c169fdc6cf1d 100644 (file)
@@ -30,7 +30,7 @@
 /*
  * port.h - structure of /etc/porttime
  *
- *     $Id: port.h,v 1.2 1997/05/01 23:14:43 marekm Exp $
+ *     $Id: port.h,v 1.3 2005/03/31 05:14:49 kloczek Exp $
  *
  *     Each entry in /etc/porttime consists of a TTY device
  *     name or "*" to indicate all TTY devices, followed by
  *     pt_times - pointer to list of allowable time periods.
  */
 
-struct port    {
-       char    **pt_names;
-       char    **pt_users;
-       struct  pt_time *pt_times;
+struct port {
+       char **pt_names;
+       char **pt_users;
+       struct pt_time *pt_times;
 };
 
 /*
@@ -74,8 +74,8 @@ struct        port    {
  *     t_end - ending time for this entry
  */
 
-struct pt_time {
-       short   t_days;
-       short   t_start;
-       short   t_end;
+struct pt_time {
+       short t_days;
+       short t_start;
+       short t_end;
 };
index 0358a2bd77e973e214e49c897dff80ddd5bcdc77..41ae332bf344251e17e02f0c67aed7f73fe0ea57 100644 (file)
@@ -6,7 +6,7 @@
  * Juha Virtanen, <jiivee@hut.fi>; November 1995
  */
 /*
- * $Id: prototypes.h,v 1.15 2003/04/25 21:33:47 kloczek Exp $
+ * $Id: prototypes.h,v 1.18 2005/04/06 03:01:07 kloczek Exp $
  *
  * Added a macro to work around ancient (non-ANSI) compilers, just in case
  * someone ever tries to compile this with SunOS cc...  --marekm
 #include "defines.h"
 
 /* addgrps.c */
-extern int add_groups(const char *);
-extern void add_cons_grps(void);
+extern int add_groups (const char *);
+extern void add_cons_grps (void);
 
 /* age.c */
 #ifdef SHADOWPWD
-extern void agecheck(const struct passwd *, const struct spwd *);
-extern int expire(const struct passwd *, const struct spwd *);
-extern int isexpired(const struct passwd *, const struct spwd *);
+extern void agecheck (const struct passwd *, const struct spwd *);
+extern int expire (const struct passwd *, const struct spwd *);
+extern int isexpired (const struct passwd *, const struct spwd *);
 #else
-extern void agecheck(const struct passwd *);
-extern int expire(const struct passwd *);
-extern int isexpired(const struct passwd *);
+extern void agecheck (const struct passwd *);
+extern int expire (const struct passwd *);
+extern int isexpired (const struct passwd *);
 #endif
 
 /* basename() renamed to Basename() to avoid libc name space confusion */
 /* basename.c */
-extern char *Basename(char *str);
+extern char *Basename (char *str);
 
 /* chkshell.c */
-extern int check_shell(const char *);
+extern int check_shell (const char *);
 
 /* chowndir.c */
-extern int chown_tree(const char *, uid_t, uid_t, gid_t, gid_t);
+extern int chown_tree (const char *, uid_t, uid_t, gid_t, gid_t);
 
 /* chowntty.c */
-extern void chown_tty(const char *, const struct passwd *);
+extern void chown_tty (const char *, const struct passwd *);
 
 /* console.c */
-extern int console(const char *);
-extern int is_listed(const char *, const char *, int);
+extern int console (const char *);
+extern int is_listed (const char *, const char *, int);
 
 /* copydir.c */
-extern int copy_tree(const char *, const char *, uid_t, gid_t);
-extern int remove_tree(const char *);
+extern int copy_tree (const char *, const char *, uid_t, gid_t);
+extern int remove_tree (const char *);
 
 /* encrypt.c */
-extern char *pw_encrypt(const char *, const char *);
+extern char *pw_encrypt (const char *, const char *);
 
 /* entry.c */
-extern void pw_entry(const char *, struct passwd *);
+extern void pw_entry (const char *, struct passwd *);
 
 /* env.c */
-extern void addenv(const char *, const char *);
-extern void initenv(void);
-extern void set_env(int, char * const *);
-extern void sanitize_env(void);
+extern void addenv (const char *, const char *);
+extern void initenv (void);
+extern void set_env (int, char *const *);
+extern void sanitize_env (void);
 
 /* fields.c */
-extern void change_field(char *, size_t, const char *);
-extern int valid_field(const char *, const char *);
+extern void change_field (char *, size_t, const char *);
+extern int valid_field (const char *, const char *);
 
 /* fputsx.c */
-extern char *fgetsx(char *, int, FILE *);
-extern int fputsx(const char *, FILE *);
+extern char *fgetsx (char *, int, FILE *);
+extern int fputsx (const char *, FILE *);
 
 /* grdbm.c */
-extern int gr_dbm_remove(const struct group *);
-extern int gr_dbm_update(const struct group *);
-extern int gr_dbm_present(void);
+extern int gr_dbm_remove (const struct group *);
+extern int gr_dbm_update (const struct group *);
+extern int gr_dbm_present (void);
 
 /* grent.c */
-extern int putgrent(const struct group *, FILE *);
+extern int putgrent (const struct group *, FILE *);
 
 /* grpack.c */
-extern int gr_pack(const struct group *, char *);
-extern int gr_unpack(char *, int, struct group *);
+extern int gr_pack (const struct group *, char *);
+extern int gr_unpack (char *, int, struct group *);
 
 #ifdef SHADOWGRP
 /* gsdbm.c */
-extern int sg_dbm_remove(const char *);
-extern int sg_dbm_update(const struct sgrp *);
-extern int sg_dbm_present(void);
+extern int sg_dbm_remove (const char *);
+extern int sg_dbm_update (const struct sgrp *);
+extern int sg_dbm_present (void);
 
 /* gspack.c */
-extern int sgr_pack(const struct sgrp *, char *);
-extern int sgr_unpack(char *, int, struct sgrp *);
+extern int sgr_pack (const struct sgrp *, char *);
+extern int sgr_unpack (char *, int, struct sgrp *);
 #endif
 
 /* hushed.c */
-extern int hushed(const struct passwd *);
+extern int hushed (const struct passwd *);
 
 /* limits.c */
-extern void setup_limits(const struct passwd *);
+extern void setup_limits (const struct passwd *);
 
 /* list.c */
-extern char **add_list(char **, const char *);
-extern char **del_list(char **, const char *);
-extern char **dup_list(char * const *);
-extern int is_on_list(char * const *, const char *);
-extern char **comma_to_list(const char *);
+extern char **add_list (char **, const char *);
+extern char **del_list (char **, const char *);
+extern char **dup_list (char *const *);
+extern int is_on_list (char *const *, const char *);
+extern char **comma_to_list (const char *);
 
 /* login.c */
-extern void login_prompt(const char *, char *, int);
-
-/* login_desrpc.c */
-extern int login_desrpc(const char *);
+extern void login_prompt (const char *, char *, int);
 
 /* mail.c */
-extern void mailcheck(void);
+extern void mailcheck (void);
 
 /* motd.c */
-extern void motd(void);
+extern void motd (void);
 
 /* myname.c */
-extern struct passwd *get_my_pwent(void);
+extern struct passwd *get_my_pwent (void);
 
 /* obscure.c */
-extern int obscure(const char *, const char *, const struct passwd *);
+extern int obscure (const char *, const char *, const struct passwd *);
 
 /* pam_pass.c */
-extern int do_pam_passwd(const char *, int, int);
+extern int do_pam_passwd (const char *, int, int);
 
 /* port.c */
-extern int isttytime(const char *, const char *, time_t);
+extern int isttytime (const char *, const char *, time_t);
 
 /* pwd2spwd.c */
 #ifdef SHADOWPWD
-extern struct spwd *pwd_to_spwd(const struct passwd *);
+extern struct spwd *pwd_to_spwd (const struct passwd *);
 #endif
 
 /* pwdcheck.c */
-extern void passwd_check(const char *, const char *, const char *);
+extern void passwd_check (const char *, const char *, const char *);
 
 /* pwd_init.c */
-extern void pwd_init(void);
+extern void pwd_init (void);
 
 /* pwdbm.c */
-extern int pw_dbm_remove(const struct passwd *);
-extern int pw_dbm_update(const struct passwd *);
-extern int pw_dbm_present(void);
+extern int pw_dbm_remove (const struct passwd *);
+extern int pw_dbm_update (const struct passwd *);
+extern int pw_dbm_present (void);
 
 /* pwpack.c */
-extern int pw_pack(const struct passwd *, char *);
-extern int pw_unpack(char *, int, struct passwd *);
-
-/* rad64.c */
-extern int c64i(int);
-extern int i64c(int);
+extern int pw_pack (const struct passwd *, char *);
+extern int pw_unpack (char *, int, struct passwd *);
 
 /* rlogin.c */
-extern int do_rlogin(const char *, char *, int, char *, int);
+extern int do_rlogin (const char *, char *, int, char *, int);
 
 /* salt.c */
-extern char *crypt_make_salt(void);
+extern char *crypt_make_salt (void);
 
 /* setugid.c */
-extern int setup_groups(const struct passwd *);
-extern int change_uid(const struct passwd *);
-extern int setup_uid_gid(const struct passwd *, int);
+extern int setup_groups (const struct passwd *);
+extern int change_uid (const struct passwd *);
+extern int setup_uid_gid (const struct passwd *, int);
 
 /* setup.c */
-extern void setup(struct passwd *);
+extern void setup (struct passwd *);
 
 /* setupenv.c */
-extern void setup_env(struct passwd *);
+extern void setup_env (struct passwd *);
 
 /* shell.c */
-extern void shell(const char *, const char *);
+extern void shell (const char *, const char *);
 
 #ifdef SHADOWPWD
 /* spdbm.c */
-extern int sp_dbm_remove(const char *);
-extern int sp_dbm_update(const struct spwd *);
-extern int sp_dbm_present(void);
+extern int sp_dbm_remove (const char *);
+extern int sp_dbm_update (const struct spwd *);
+extern int sp_dbm_present (void);
 
 /* sppack.c */
-extern int spw_pack(const struct spwd *, char *);
-extern int spw_unpack(char *, int, struct spwd *);
+extern int spw_pack (const struct spwd *, char *);
+extern int spw_unpack (char *, int, struct spwd *);
 #endif
 
 /* strtoday.c */
-extern long strtoday(const char *);
+extern long strtoday (const char *);
 
 /* suauth.c */
-extern int check_su_auth(const char *, const char *);
+extern int check_su_auth (const char *, const char *);
 
 /* sulog.c */
-extern void sulog(const char *, int, const char *, const char *);
+extern void sulog (const char *, int, const char *, const char *);
 
 /* sub.c */
-extern void subsystem(const struct passwd *);
+extern void subsystem (const struct passwd *);
 
 /* ttytype.c */
-extern void ttytype(const char *);
+extern void ttytype (const char *);
 
 /* tz.c */
-extern char *tz(const char *);
+extern char *tz (const char *);
 
 /* ulimit.c */
-extern void set_filesize_limit(int);
+extern void set_filesize_limit (int);
 
 /* utmp.c */
-extern void checkutmp(int);
-extern void setutmp(const char *, const char *, const char *);
+extern void checkutmp (int);
+extern void setutmp (const char *, const char *, const char *);
 
 /* valid.c */
-extern int valid(const char *, const struct passwd *);
+extern int valid (const char *, const struct passwd *);
 
 /* xmalloc.c */
-extern char *xmalloc(size_t);
-extern char *xstrdup(const char *);
+extern char *xmalloc (size_t);
+extern char *xstrdup (const char *);
 
-#endif /* _PROTOTYPES_H */
+#endif                         /* _PROTOTYPES_H */
index 6b1ae5254bd9904445331322a66922e6a4b3930e..962e585bbfb693e3d8b63e680384c8bc4e68026d 100644 (file)
@@ -29,9 +29,9 @@
 
 #include <config.h>
 
+#ifndef USE_PAM
 #include "rcsid.h"
-RCSID("$Id: pwauth.c,v 1.14 2003/05/12 04:58:56 kloczek Exp $")
-
+RCSID ("$Id: pwauth.c,v 1.17 2005/04/17 15:21:42 kloczek Exp $")
 #include <sys/types.h>
 #include <signal.h>
 #include <fcntl.h>
@@ -41,23 +41,14 @@ RCSID("$Id: pwauth.c,v 1.14 2003/05/12 04:58:56 kloczek Exp $")
 #include "defines.h"
 #include "pwauth.h"
 #include "getdef.h"
-
-#ifdef SKEY
-#include <skey.h>
-#endif
-
-#ifdef OPIE
-#include <opie.h>
-#endif
-
-#ifdef __linux__  /* standard password prompt by default */
-static const char *PROMPT = gettext_noop("Password: ");
+#ifdef __linux__               /* standard password prompt by default */
+static const char *PROMPT = gettext_noop ("Password: ");
 #else
-static const char *PROMPT = gettext_noop("%s's Password: ");
+static const char *PROMPT = gettext_noop ("%s's Password: ");
 #endif
 
-extern char *getpass();
-extern char *getpass_with_echo();
+extern char *getpass ();
+extern char *getpass_with_echo ();
 
 int wipe_clear_pass = 1;
 char *clear_pass = NULL;
@@ -71,41 +62,12 @@ char *clear_pass = NULL;
  */
 
 int
-pw_auth(const char *cipher, const char *user, int reason, const char *input)
+pw_auth (const char *cipher, const char *user, int reason, const char *input)
 {
-       char    prompt[1024];
-       char    *clear = NULL;
+       char prompt[1024];
+       char *clear = NULL;
        const char *cp;
-       int     retval;
-#ifdef SKEY
-       int     use_skey = 0;
-       char    challenge_info[40];
-       struct  skey    skey;
-#endif
-
-#ifdef OPIE
-       int use_opie = 0;
-       char o_challenge_info[OPIE_CHALLENGE_MAX + 1];
-       struct opie opie;
-       /*
-        * This implementation is based almost entirely on the SKEY code
-        * above. Thus the opie struct is called skey, etc. I am unaware
-        * if the system works at the same time, but I cannot imagine why
-        * anyone would want to do this....
-        * -- A.R.
-        * Mod: 5/14/98 A.R.
-        * Made the OPIE code separate from the S/Key code. Now
-        * (conceivably) both can be compiled in and function apart from
-        * one another (assuming a sysadmin really wants to maintain OPIE
-        * and an S/Key databases....).
-        *
-        * Also cleaned up the code a bit. Will be adding second-prompt
-        * support (the traditional Echo-on S/Key/OPIE-only prompts to let
-        * the users see the one-time passwords they are typing/pasting
-        * in....
-        * -- A.R.
-        */
-#endif
+       int retval;
 
        /*
         * There are programs for adding and deleting authentication data.
@@ -117,7 +79,6 @@ pw_auth(const char *cipher, const char *user, int reason, const char *input)
        /*
         * There are even programs for changing the user name ...
         */
-
        if (reason == PW_CHANGE && input != (char *) 0)
                return 0;
 
@@ -129,7 +90,6 @@ pw_auth(const char *cipher, const char *user, int reason, const char *input)
         * know it.  This is a policy decision that might have to be
         * revisited.
         */
-
        if (reason == PW_CHANGE && getuid () == 0)
                return 0;
 
@@ -141,65 +101,21 @@ pw_auth(const char *cipher, const char *user, int reason, const char *input)
         * the user could just hit <ENTER>, so it doesn't really
         * matter.
         */
-
        if (cipher == (char *) 0 || *cipher == '\0')
                return 0;
 
-#ifdef SKEY
-       /*
-        * If the user has an S/KEY entry show them the pertinent info
-        * and then we can try validating the created cyphertext and the SKEY.
-        * If there is no SKEY information we default to not using SKEY.
-        */
-
-       if (skeychallenge (&skey, user, challenge_info) == 0)
-               use_skey = 1;
-#endif
-
-#ifdef OPIE
-       /*
-        * Ditto above, for OPIE passwords.
-        * -- AR
-        */
-
-       o_challenge_info[0] = '\0';
-       if (opiechallenge(&opie, user, o_challenge_info) == 0)
-               use_opie = 1;
-
-       if (use_opie == 0)
-               opieverify(&opie, (char *)NULL);
-       /*
-        * This call to opieverify is necessary within OPIE's interface:
-        * Every call to opiechallenge(), which checks to see if the user
-        * has an OPIE password, and if so get the challenge, must be
-        * accompanied by exactly one call to opieverify, which clears
-        * any outstanding locks, and otherwise cleans up.
-        * -- AR
-        */
-#endif
-
        /*
         * Prompt for the password as required.  FTPD and REXECD both
         * get the cleartext password for us.
         */
-
        if (reason != PW_FTP && reason != PW_REXEC && !input) {
-               if (! (cp = getdef_str ("LOGIN_STRING")))
+               if (!(cp = getdef_str ("LOGIN_STRING")))
                        cp = _(PROMPT);
-#ifdef SKEY
-               if (use_skey)
-                       printf ("[%s]\n", challenge_info);
-#endif
-
-#ifdef OPIE
-               if (use_opie)
-                       printf("[ %s ]\n", o_challenge_info);
-#endif
-
-               snprintf(prompt, sizeof prompt, cp, user);
-               clear = getpass(prompt);
+               snprintf (prompt, sizeof prompt, cp, user);
+               clear = getpass (prompt);
                if (!clear) {
                        static char c[1];
+
                        c[0] = '\0';
                        clear = c;
                }
@@ -209,70 +125,9 @@ pw_auth(const char *cipher, const char *user, int reason, const char *input)
        /*
         * Convert the cleartext password into a ciphertext string.
         * If the two match, the return value will be zero, which is
-        * SUCCESS.  Otherwise we see if SKEY is being used and check
-        * the results there as well.
-        */
-
-       retval = strcmp(pw_encrypt(input, cipher), cipher);
-
-#ifdef OPIE
-       /*
-        * This is required because using OPIE, opieverify() MUST be called
-        * opiechallenge() above even if OPIE isn't being used in this case,
-        * so locks get released, etc.
-        * -- AR
+        * SUCCESS.
         */
-
-       if ((retval == 0) && use_opie)
-               opieverify(&opie, (char *)NULL);
-#endif
-
-#if (defined(SKEY) || defined(OPIE))
-       /*
-        * If (1) The password fails to match, and
-        * (2) The password is empty and
-        * (3) We are using OPIE or S/Key, then
-        * ...Re-prompt, with echo on.
-        * -- AR 8/22/1999
-        */
-       if (retval && !input[0] &&
-           (0
-#ifdef SKEY
-            || use_skey
-#endif
-#ifdef OPIE
-            || use_opie
-#endif
-            )) {
-               strncat(prompt, _("(Echo on) "),
-                       (sizeof(prompt) - strlen(prompt)));
-               clear = getpass_with_echo(prompt);
-               if (!clear) {
-                       static char c[1];
-                       c[0] = '\0';
-                       clear = c;
-               }
-               input = clear;
-       }
-#endif
-
-#ifdef SKEY
-       if (retval && use_skey) {
-               int passcheck = -1;
-
-               if (skeyverify(&skey, input) == 0)
-                       passcheck = skey.n;
-               if (passcheck > 0)
-                       retval = 0;
-       }
-#endif
-
-#ifdef OPIE
-       if (retval && use_opie) {
-               if (opieverify(&opie, input) == 0)
-                       retval = 0;
-       }
-#endif /* OPIE */
+       retval = strcmp (pw_encrypt (input, cipher), cipher);
 
        /*
         * Things like RADIUS authentication may need the password -
@@ -280,9 +135,9 @@ pw_auth(const char *cipher, const char *user, int reason, const char *input)
         * not wipe it (the caller should wipe clear_pass when it is
         * no longer needed).  --marekm
         */
-
        clear_pass = clear;
        if (wipe_clear_pass && clear && *clear)
-               strzero(clear);
+               strzero (clear);
        return retval;
 }
+#endif                         /* !USE_PAM */
index a6aa77fe494e01c842a3eca5ed3c63754cb8d639..f538c2b4a7732ed0e1283d51a3cfb4767fd56746 100644 (file)
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     $Id: pwauth.h,v 1.3 2003/05/12 06:08:31 kloczek Exp $
+ *     $Id: pwauth.h,v 1.5 2005/03/31 06:24:27 kloczek Exp $
  */
 
-int pw_auth(const char *cipher,const char *user,int flag,const char *input);
+#ifndef USE_PAM
+int pw_auth (const char *cipher, const char *user, int flag, const char *input);
+#endif         /* !USE_PAM */
 
 /*
  * Local access
diff --git a/lib/pwdbm.c b/lib/pwdbm.c
deleted file mode 100644 (file)
index c0de846..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 1990 - 1994, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#ifdef NDBM /*{*/
-
-#include "rcsid.h"
-RCSID("$Id: pwdbm.c,v 1.4 1997/12/14 20:07:19 marekm Exp $")
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <pwd.h>
-#include "prototypes.h"
-#include "defines.h"
-
-#include <ndbm.h>
-extern DBM *pw_dbm;
-
-/*
- * pw_dbm_update
- *
- * Updates the DBM password files, if they exist.
- */
-
-int
-pw_dbm_update(const struct passwd *pw)
-{
-       datum   key;
-       datum   content;
-       char    data[BUFSIZ];
-       int     len;
-       static  int     once;
-
-       if (! once) {
-               if (! pw_dbm)
-                       setpwent ();
-               once++;
-       }
-       if (! pw_dbm)
-               return 0;
-
-       len = pw_pack (pw, data);
-       content.dsize = len;
-       content.dptr = data;
-
-       key.dsize = strlen (pw->pw_name);
-       key.dptr = pw->pw_name;
-
-       if (dbm_store(pw_dbm, key, content, DBM_REPLACE))
-               return 0;
-
-       /*
-        * XXX - on systems with 16-bit UIDs (such as Linux/x86)
-        * name "aa" and UID 24929 will give the same key.  This
-        * happens only rarely, but code which only "works most
-        * of the time" is not good enough...
-        *
-        * This needs to be fixed in several places (pwdbm.c,
-        * grdbm.c, pwent.c, grent.c).  Fixing it will cause
-        * incompatibility with existing dbm files.
-        *
-        * Summary: don't use this stuff for now.  --marekm
-        */
-
-       key.dsize = sizeof pw->pw_uid;
-       key.dptr = (char *) &pw->pw_uid;
-
-       if (dbm_store(pw_dbm, key, content, DBM_REPLACE))
-               return 0;
-
-       return 1;
-}
-
-/*
- * pw_dbm_remove
- *
- * Removes the DBM password entry, if it exists.
- */
-
-int
-pw_dbm_remove(const struct passwd *pw)
-{
-       datum   key;
-       static  int     once;
-       char    data[BUFSIZ];
-
-       if (! once) {
-               if (! pw_dbm)
-                       setpwent ();
-               once++;
-       }
-       if (! pw_dbm)
-               return 0;
-
-       key.dsize = strlen (pw->pw_name);
-       key.dptr = pw->pw_name;
-
-       if (dbm_delete (pw_dbm, key))
-               return 0;
-
-       key.dsize = sizeof pw->pw_uid;
-       key.dptr = (char *) &pw->pw_uid;
-
-       if (dbm_delete (pw_dbm, key))
-               return 0;
-
-       return 1;
-}
-
-
-int
-pw_dbm_present(void)
-{
-       return (access(PASSWD_PAG_FILE, F_OK) == 0);
-}
-#endif /* NDBM */
index 6d5a300f86d48b6032a9da7162cb95f16f22385f..55c8a87b02f93c2b32174222c752de90b087547a 100644 (file)
@@ -2,78 +2,72 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: pwio.c,v 1.13 2003/05/03 16:14:23 kloczek Exp $")
-
+RCSID ("$Id: pwio.c,v 1.14 2005/03/31 05:14:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <pwd.h>
 #include <stdio.h>
-
 #include "commonio.h"
 #include "pwio.h"
+extern struct passwd *sgetpwent (const char *);
+extern int putpwent (const struct passwd *, FILE *);
 
-extern struct passwd *sgetpwent(const char *);
-extern int putpwent(const struct passwd *, FILE *);
-
-struct passwd *
-__pw_dup(const struct passwd *pwent)
+struct passwd *__pw_dup (const struct passwd *pwent)
 {
        struct passwd *pw;
 
-       if (!(pw = (struct passwd *) malloc(sizeof *pw)))
+       if (!(pw = (struct passwd *) malloc (sizeof *pw)))
                return NULL;
        *pw = *pwent;
-       if (!(pw->pw_name = strdup(pwent->pw_name)))
+       if (!(pw->pw_name = strdup (pwent->pw_name)))
                return NULL;
-       if (!(pw->pw_passwd = strdup(pwent->pw_passwd)))
+       if (!(pw->pw_passwd = strdup (pwent->pw_passwd)))
                return NULL;
-       if (!(pw->pw_gecos = strdup(pwent->pw_gecos)))
+       if (!(pw->pw_gecos = strdup (pwent->pw_gecos)))
                return NULL;
-       if (!(pw->pw_dir = strdup(pwent->pw_dir)))
+       if (!(pw->pw_dir = strdup (pwent->pw_dir)))
                return NULL;
-       if (!(pw->pw_shell = strdup(pwent->pw_shell)))
+       if (!(pw->pw_shell = strdup (pwent->pw_shell)))
                return NULL;
        return pw;
 }
 
-static void *
-passwd_dup(const void *ent)
+static void *passwd_dup (const void *ent)
 {
        const struct passwd *pw = ent;
-       return __pw_dup(pw);
+
+       return __pw_dup (pw);
 }
 
-static void
-passwd_free(void *ent)
+static void passwd_free (void *ent)
 {
        struct passwd *pw = ent;
 
-       free(pw->pw_name);
-       free(pw->pw_passwd);
-       free(pw->pw_gecos);
-       free(pw->pw_dir);
-       free(pw->pw_shell);
-       free(pw);
+       free (pw->pw_name);
+       free (pw->pw_passwd);
+       free (pw->pw_gecos);
+       free (pw->pw_dir);
+       free (pw->pw_shell);
+       free (pw);
 }
 
-static const char *
-passwd_getname(const void *ent)
+static const char *passwd_getname (const void *ent)
 {
        const struct passwd *pw = ent;
+
        return pw->pw_name;
 }
 
-static void *
-passwd_parse(const char *line)
+static void *passwd_parse (const char *line)
 {
-       return (void *) sgetpwent(line);
+       return (void *) sgetpwent (line);
 }
 
-static int
-passwd_put(const void *ent, FILE *file)
+static int passwd_put (const void *ent, FILE * file)
 {
        const struct passwd *pw = ent;
-       return (putpwent(pw, file) == -1) ? -1 : 0;
+
+       return (putpwent (pw, file) == -1) ? -1 : 0;
 }
 
 static struct commonio_ops passwd_ops = {
@@ -87,108 +81,94 @@ static struct commonio_ops passwd_ops = {
 };
 
 static struct commonio_db passwd_db = {
-       PASSWD_FILE,    /* filename */
-       &passwd_ops,    /* ops */
-       NULL,           /* fp */
-       NULL,           /* head */
-       NULL,           /* tail */
-       NULL,           /* cursor */
-       0,              /* changed */
-       0,              /* isopen */
-       0,              /* locked */
-       0               /* readonly */
+       PASSWD_FILE,            /* filename */
+       &passwd_ops,            /* ops */
+       NULL,                   /* fp */
+       NULL,                   /* head */
+       NULL,                   /* tail */
+       NULL,                   /* cursor */
+       0,                      /* changed */
+       0,                      /* isopen */
+       0,                      /* locked */
+       0                       /* readonly */
 };
 
-int
-pw_name(const char *filename)
+int pw_name (const char *filename)
 {
-       return commonio_setname(&passwd_db, filename);
+       return commonio_setname (&passwd_db, filename);
 }
 
-int
-pw_lock(void)
+int pw_lock (void)
 {
-       return commonio_lock(&passwd_db);
+       return commonio_lock (&passwd_db);
 }
 
-int
-pw_open(int mode)
+int pw_open (int mode)
 {
-       return commonio_open(&passwd_db, mode);
+       return commonio_open (&passwd_db, mode);
 }
 
-const struct passwd *
-pw_locate(const char *name)
+const struct passwd *pw_locate (const char *name)
 {
-       return commonio_locate(&passwd_db, name);
+       return commonio_locate (&passwd_db, name);
 }
 
-int
-pw_update(const struct passwd *pw)
+int pw_update (const struct passwd *pw)
 {
-       return commonio_update(&passwd_db, (const void *) pw);
+       return commonio_update (&passwd_db, (const void *) pw);
 }
 
-int
-pw_remove(const char *name)
+int pw_remove (const char *name)
 {
-       return commonio_remove(&passwd_db, name);
+       return commonio_remove (&passwd_db, name);
 }
 
-int
-pw_rewind(void)
+int pw_rewind (void)
 {
-       return commonio_rewind(&passwd_db);
+       return commonio_rewind (&passwd_db);
 }
 
-const struct passwd *
-pw_next(void)
+const struct passwd *pw_next (void)
 {
-       return commonio_next(&passwd_db);
+       return commonio_next (&passwd_db);
 }
 
-int
-pw_close(void)
+int pw_close (void)
 {
-       return commonio_close(&passwd_db);
+       return commonio_close (&passwd_db);
 }
 
-int
-pw_unlock(void)
+int pw_unlock (void)
 {
-       return commonio_unlock(&passwd_db);
+       return commonio_unlock (&passwd_db);
 }
 
-struct commonio_entry *
-__pw_get_head(void)
+struct commonio_entry *__pw_get_head (void)
 {
        return passwd_db.head;
 }
 
-void
-__pw_del_entry(const struct commonio_entry *ent)
+void __pw_del_entry (const struct commonio_entry *ent)
 {
-       commonio_del_entry(&passwd_db, ent);
+       commonio_del_entry (&passwd_db, ent);
 }
 
-struct commonio_db *
-__pw_get_db(void)
+struct commonio_db *__pw_get_db (void)
 {
        return &passwd_db;
 }
 
-static int
-pw_cmp(const void *p1, const void *p2)
+static int pw_cmp (const void *p1, const void *p2)
 {
        uid_t u1, u2;
 
-       if ((*(struct commonio_entry**)p1)->eptr == NULL)
+       if ((*(struct commonio_entry **) p1)->eptr == NULL)
                return 1;
-       if ((*(struct commonio_entry**)p2)->eptr == NULL)
+       if ((*(struct commonio_entry **) p2)->eptr == NULL)
                return -1;
-       
-       u1 = ((struct passwd *)(*(struct commonio_entry**)p1)->eptr)->pw_uid;
-       u2 = ((struct passwd *)(*(struct commonio_entry**)p2)->eptr)->pw_uid;
+
+       u1 = ((struct passwd *) (*(struct commonio_entry **) p1)->eptr)->pw_uid;
+       u2 = ((struct passwd *) (*(struct commonio_entry **) p2)->eptr)->pw_uid;
 
        if (u1 < u2)
                return -1;
@@ -199,8 +179,7 @@ pw_cmp(const void *p1, const void *p2)
 }
 
 /* Sort entries by uid */
-int
-pw_sort()
+int pw_sort ()
 {
-       return commonio_sort(&passwd_db, pw_cmp);
+       return commonio_sort (&passwd_db, pw_cmp);
 }
index 37874611a1c1909a2bd45aa1b3d6af55f36cdf4f..20118cfb3655ad9ba9cbe4d272c28f53e276a5ea 100644 (file)
@@ -1,13 +1,13 @@
-extern struct passwd *__pw_dup(const struct passwd *);
-extern void __pw_set_changed(void);
-extern int pw_close(void);
-extern const struct passwd *pw_locate(const char *);
-extern int pw_lock(void);
-extern int pw_name(const char *);
-extern const struct passwd *pw_next(void);
-extern int pw_open(int);
-extern int pw_remove(const char *);
-extern int pw_rewind(void);
-extern int pw_unlock(void);
-extern int pw_update(const struct passwd *);
-extern int pw_sort(void);
+extern struct passwd *__pw_dup (const struct passwd *);
+extern void __pw_set_changed (void);
+extern int pw_close (void);
+extern const struct passwd *pw_locate (const char *);
+extern int pw_lock (void);
+extern int pw_name (const char *);
+extern const struct passwd *pw_next (void);
+extern int pw_open (int);
+extern int pw_remove (const char *);
+extern int pw_rewind (void);
+extern int pw_unlock (void);
+extern int pw_update (const struct passwd *);
+extern int pw_sort (void);
index a08640c065b6f58bb45184bde5da4c824ddeb909..6413a2339b32825f0ccac7c82c321d4b351c0840 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: pwpack.c,v 1.6 2003/12/17 01:33:28 kloczek Exp $")
-
+RCSID ("$Id: pwpack.c,v 1.7 2005/03/31 05:14:49 kloczek Exp $")
 #include <sys/types.h>
 #include "defines.h"
 #include <stdio.h>
 #include <pwd.h>
-
-
 /*
  * pw_pack - convert a (struct pwd) to a packed record
  * WARNING: buf must be large enough, no check for overrun!
  */
-
-int
-pw_pack(const struct passwd *passwd, char *buf)
+int pw_pack (const struct passwd *passwd, char *buf)
 {
-       char    *cp;
+       char *cp;
 
        cp = buf;
        strcpy (cp, passwd->pw_name);
@@ -68,7 +63,7 @@ pw_pack(const struct passwd *passwd, char *buf)
        cp += strlen (cp) + 1;
 
        strcpy (cp, passwd->pw_shell);
-               cp += strlen (cp) + 1;
+       cp += strlen (cp) + 1;
 
        return cp - buf;
 }
@@ -77,12 +72,11 @@ pw_pack(const struct passwd *passwd, char *buf)
  * pw_unpack - convert a packed (struct pwd) record to a (struct pwd)
  */
 
-int
-pw_unpack(char *buf, int len, struct passwd *passwd)
+int pw_unpack (char *buf, int len, struct passwd *passwd)
 {
-       char    *org = buf;
+       char *org = buf;
 
-       memzero(passwd, sizeof *passwd);
+       memzero (passwd, sizeof *passwd);
 
        passwd->pw_name = buf;
        buf += strlen (buf) + 1;
diff --git a/lib/rad64.c b/lib/rad64.c
deleted file mode 100644 (file)
index 249a71e..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 1989 - 1992, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#include "rcsid.h"
-RCSID("$Id: rad64.c,v 1.5 2000/08/26 18:27:17 marekm Exp $")
-
-/*
- * c64i - convert a radix 64 character to an integer
- */
-
-int
-c64i(int c)
-{
-       if (c == '.')
-               return (0);
-
-       if (c == '/')
-               return (1);
-
-       if (c >= '0' && c <= '9')
-               return (c - '0' + 2);
-
-       if (c >= 'A' && c <= 'Z')
-               return (c - 'A' + 12);
-
-       if (c >= 'a' && c <= 'z')
-               return (c - 'a' + 38);
-       else
-               return (-1);
-}
-
-/*
- * i64c - convert an integer to a radix 64 character
- */
-
-int
-i64c(int i)
-{
-       if (i <= 0)
-               return ('.');
-
-       if (i == 1)
-               return ('/');
-
-       if (i >= 2 && i < 12)
-               return ('0' - 2 + i);
-
-       if (i >= 12 && i < 38)
-               return ('A' - 12 + i);
-
-       if (i >= 38 && i < 63)
-               return ('a' - 38 + i);
-
-       return ('z');
-}
-
-#ifndef HAVE_A64L
-
-/*
- * l64a - convert a long to a string of radix 64 characters
- */
-
-char *
-l64a(long l)
-{
-       static  char    buf[8];
-       int     i = 0;
-
-       if (l < 0L)
-               return ((char *) 0);
-
-       do {
-               buf[i++] = i64c ((int) (l % 64));
-               buf[i] = '\0';
-       } while (l /= 64L, l > 0 && i < 6);
-
-       return (buf);
-}
-
-/*
- * a64l - convert a radix 64 string to a long integer
- */
-
-long
-a64l(const char *s)
-{
-       int     i;
-       long    value;
-       long    shift = 0;
-
-       for (i = 0, value = 0L;i < 6 && *s;s++) {
-               value += (c64i ((int) *s) << shift);
-               shift += 6;
-       }
-       return (value);
-}
-
-#endif /* !HAVE_A64L */
index 3869afc1c608627a23d874956ed309582fc38870..60ba0dbe67a2570709c09538421b48919e440779 100644 (file)
@@ -1,22 +1,23 @@
 /*
- * $Id: rcsid.h,v 1.2 1999/06/07 16:40:44 marekm Exp $
+ * $Id: rcsid.h,v 1.3 2005/03/31 05:14:49 kloczek Exp $
  */
 #define PKG_VER " $Package: " PACKAGE " $ $Version: " VERSION " $ "
 #if defined(NO_RCSID) || defined(lint)
-#define RCSID(x) /* empty */
+#define RCSID(x)               /* empty */
 #else
 #if __STDC__
 /*
  * This function is never called from anywhere, but it calls itself
  * recursively only to fool gcc to not generate warnings :-).
  */
-static const char *rcsid(const char *);
+static const char *rcsid (const char *);
+
 #define RCSID(x) \
   static const char *rcsid(const char *s) { \
   return rcsid(x); }
-#else  /* ! __STDC__ */
+#else                          /* ! __STDC__ */
 #define RCSID(x) \
   static char *rcsid(s) char *s; { \
   return rcsid(x); }
-#endif /* ! __STDC__ */
+#endif                         /* ! __STDC__ */
 #endif
index daa5fbe22b14b89a1dd48654e4c30af0844915db..d42b7c07efb55e2c4d6c8c66a7f9553a77398d87 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: sgetgrent.c,v 1.4 1998/04/02 21:51:45 marekm Exp $")
-
+RCSID ("$Id: sgetgrent.c,v 1.5 2005/03/31 05:14:49 kloczek Exp $")
 #include <stdio.h>
 #include <grp.h>
 #include "defines.h"
-
 #define        NFIELDS 4
-
 /*
  * list - turn a comma-separated string into an array of (char *)'s
  *
@@ -51,12 +48,10 @@ RCSID("$Id: sgetgrent.c,v 1.4 1998/04/02 21:51:45 marekm Exp $")
  * FINALLY added dynamic allocation.  Still need to fix sgetsgent().
  *  --marekm
  */
-
-static char **
-list(char *s)
+static char **list (char *s)
 {
        static char **members = 0;
-       static int size = 0;  /* max members + 1 */
+       static int size = 0;    /* max members + 1 */
        int i;
        char **rbuf;
 
@@ -65,17 +60,18 @@ list(char *s)
                /* check if there is room for another pointer (to a group
                   member name, or terminating NULL).  */
                if (i >= size) {
-                       size = i + 100;  /* at least: i + 1 */
+                       size = i + 100; /* at least: i + 1 */
                        if (members) {
-                               rbuf = realloc(members, size * sizeof(char *));
+                               rbuf =
+                                   realloc (members, size * sizeof (char *));
                        } else {
                                /* for old (before ANSI C) implementations of
                                   realloc() that don't handle NULL properly */
-                               rbuf = malloc(size * sizeof(char *));
+                               rbuf = malloc (size * sizeof (char *));
                        }
                        if (!rbuf) {
                                if (members)
-                                       free(members);
+                                       free (members);
                                members = 0;
                                size = 0;
                                return (char **) 0;
@@ -95,46 +91,45 @@ list(char *s)
 }
 
 
-struct group *
-sgetgrent(const char *buf)
+struct group *sgetgrent (const char *buf)
 {
        static char *grpbuf = 0;
        static size_t size = 0;
        static char *grpfields[NFIELDS];
        static struct group grent;
-       int     i;
-       char    *cp;
+       int i;
+       char *cp;
 
-       if (strlen(buf) + 1 > size) {
+       if (strlen (buf) + 1 > size) {
                /* no need to use realloc() here - just free it and
                   allocate a larger block */
                if (grpbuf)
-                       free(grpbuf);
-               size = strlen(buf) + 1000;  /* at least: strlen(buf) + 1 */
-               grpbuf = malloc(size);
+                       free (grpbuf);
+               size = strlen (buf) + 1000;     /* at least: strlen(buf) + 1 */
+               grpbuf = malloc (size);
                if (!grpbuf) {
                        size = 0;
                        return 0;
                }
        }
-       strcpy(grpbuf, buf);
+       strcpy (grpbuf, buf);
 
-       if ((cp = strrchr(grpbuf, '\n')))
+       if ((cp = strrchr (grpbuf, '\n')))
                *cp = '\0';
 
        for (cp = grpbuf, i = 0; i < NFIELDS && cp; i++) {
                grpfields[i] = cp;
-               if ((cp = strchr(cp, ':')))
+               if ((cp = strchr (cp, ':')))
                        *cp++ = 0;
        }
-       if (i < (NFIELDS-1) || *grpfields[2] == '\0')
+       if (i < (NFIELDS - 1) || *grpfields[2] == '\0')
                return 0;
        grent.gr_name = grpfields[0];
        grent.gr_passwd = grpfields[1];
-       grent.gr_gid = atoi(grpfields[2]);
-       grent.gr_mem = list(grpfields[3]);
+       grent.gr_gid = atoi (grpfields[2]);
+       grent.gr_mem = list (grpfields[3]);
        if (!grent.gr_mem)
-               return (struct group *) 0;  /* out of memory */
+               return (struct group *) 0;      /* out of memory */
 
        return &grent;
 }
index b3aa54b772781c670839e3fb1f04602fa397cace..b721a777cd24152fa6ae13651a2b46c6d76c62ac 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID("$Id: sgetpwent.c,v 1.6 2003/05/03 16:14:23 kloczek Exp $")
-
+RCSID ("$Id: sgetpwent.c,v 1.7 2005/03/31 05:14:49 kloczek Exp $")
 #include <sys/types.h>
 #include "defines.h"
 #include <stdio.h>
 #include <pwd.h>
-
 #define        NFIELDS 7
-
 /*
  * sgetpwent - convert a string to a (struct passwd)
  *
@@ -51,15 +48,13 @@ RCSID("$Id: sgetpwent.c,v 1.6 2003/05/03 16:14:23 kloczek Exp $")
  *     performance reasons.  I am going to come up with some conditional
  *     compilation glarp to improve on this in the future.
  */
-
-struct passwd *
-sgetpwent(const char *buf)
+struct passwd *sgetpwent (const char *buf)
 {
        static struct passwd pwent;
        static char pwdbuf[1024];
-       register int    i;
-       register char   *cp;
-       char    *ep;
+       register int i;
+       register char *cp;
+       char *ep;
        char *fields[NFIELDS];
 
        /*
@@ -67,20 +62,20 @@ sgetpwent(const char *buf)
         * the password structure remain valid.
         */
 
-       if (strlen(buf) >= sizeof pwdbuf)
-               return 0;  /* fail if too long */
-       strcpy(pwdbuf, buf);
+       if (strlen (buf) >= sizeof pwdbuf)
+               return 0;       /* fail if too long */
+       strcpy (pwdbuf, buf);
 
        /*
         * Save a pointer to the start of each colon separated
         * field.  The fields are converted into NUL terminated strings.
         */
 
-       for (cp = pwdbuf, i = 0;i < NFIELDS && cp;i++) {
+       for (cp = pwdbuf, i = 0; i < NFIELDS && cp; i++) {
                fields[i] = cp;
                while (*cp && *cp != ':')
                        ++cp;
-       
+
                if (*cp)
                        *cp++ = '\0';
                else
@@ -105,11 +100,11 @@ sgetpwent(const char *buf)
        pwent.pw_name = fields[0];
        pwent.pw_passwd = fields[1];
        if (fields[2][0] == '\0' ||
-               ((pwent.pw_uid = strtol (fields[2], &ep, 10)) == 0 && *ep)) {
+           ((pwent.pw_uid = strtol (fields[2], &ep, 10)) == 0 && *ep)) {
                return 0;
        }
        if (fields[3][0] == '\0' ||
-               ((pwent.pw_gid = strtol (fields[3], &ep, 10)) == 0 && *ep)) {
+           ((pwent.pw_gid = strtol (fields[3], &ep, 10)) == 0 && *ep)) {
                return 0;
        }
        pwent.pw_gecos = fields[4];
index f5965f82892e378f240692036a1363f12fa91c69..5b24efa0538514c0d79b679c89faa5c89aeed125 100644 (file)
@@ -4,50 +4,44 @@
 #ifdef SHADOWGRP
 
 #include "rcsid.h"
-RCSID("$Id: sgroupio.c,v 1.12 2001/08/14 21:10:36 malekith Exp $")
-
+RCSID ("$Id: sgroupio.c,v 1.13 2005/03/31 05:14:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
-
 #include "commonio.h"
 #include "sgroupio.h"
+extern int putsgent (const struct sgrp *, FILE *);
+extern struct sgrp *sgetsgent (const char *);
 
-extern int putsgent(const struct sgrp *, FILE *);
-extern struct sgrp *sgetsgent(const char *);
-
-struct sgrp *
-__sgr_dup(const struct sgrp *sgent)
+struct sgrp *__sgr_dup (const struct sgrp *sgent)
 {
        struct sgrp *sg;
        int i;
 
-       if (!(sg = (struct sgrp *) malloc(sizeof *sg)))
+       if (!(sg = (struct sgrp *) malloc (sizeof *sg)))
                return NULL;
        *sg = *sgent;
-       if (!(sg->sg_name = strdup(sgent->sg_name)))
+       if (!(sg->sg_name = strdup (sgent->sg_name)))
                return NULL;
-       if (!(sg->sg_passwd = strdup(sgent->sg_passwd)))
+       if (!(sg->sg_passwd = strdup (sgent->sg_passwd)))
                return NULL;
 
-       for (i = 0; sgent->sg_adm[i]; i++)
-               ;
-       sg->sg_adm = (char **) malloc((i + 1) * sizeof(char *));
+       for (i = 0; sgent->sg_adm[i]; i++);
+       sg->sg_adm = (char **) malloc ((i + 1) * sizeof (char *));
        if (!sg->sg_adm)
                return NULL;
        for (i = 0; sgent->sg_adm[i]; i++) {
-               sg->sg_adm[i] = strdup(sgent->sg_adm[i]);
+               sg->sg_adm[i] = strdup (sgent->sg_adm[i]);
                if (!sg->sg_adm[i])
                        return NULL;
        }
        sg->sg_adm[i] = NULL;
 
-       for (i = 0; sgent->sg_mem[i]; i++)
-               ;
-       sg->sg_mem = (char **) malloc((i + 1) * sizeof(char *));
+       for (i = 0; sgent->sg_mem[i]; i++);
+       sg->sg_mem = (char **) malloc ((i + 1) * sizeof (char *));
        if (!sg->sg_mem)
                return NULL;
        for (i = 0; sgent->sg_mem[i]; i++) {
-               sg->sg_mem[i] = strdup(sgent->sg_mem[i]);
+               sg->sg_mem[i] = strdup (sgent->sg_mem[i]);
                if (!sg->sg_mem[i])
                        return NULL;
        }
@@ -56,49 +50,47 @@ __sgr_dup(const struct sgrp *sgent)
        return sg;
 }
 
-static void *
-gshadow_dup(const void *ent)
+static void *gshadow_dup (const void *ent)
 {
        const struct sgrp *sg = ent;
-       return __sgr_dup(sg);
+
+       return __sgr_dup (sg);
 }
 
-static void
-gshadow_free(void *ent)
+static void gshadow_free (void *ent)
 {
        struct sgrp *sg = ent;
 
-       free(sg->sg_name);
-       free(sg->sg_passwd);
-       while(*(sg->sg_adm)) {
-               free(*(sg->sg_adm));
+       free (sg->sg_name);
+       free (sg->sg_passwd);
+       while (*(sg->sg_adm)) {
+               free (*(sg->sg_adm));
                sg->sg_adm++;
        }
-       while(*(sg->sg_mem)) {
-               free(*(sg->sg_mem));
+       while (*(sg->sg_mem)) {
+               free (*(sg->sg_mem));
                sg->sg_mem++;
        }
-       free(sg);
+       free (sg);
 }
 
-static const char *
-gshadow_getname(const void *ent)
+static const char *gshadow_getname (const void *ent)
 {
        const struct sgrp *gr = ent;
+
        return gr->sg_name;
 }
 
-static void *
-gshadow_parse(const char *line)
+static void *gshadow_parse (const char *line)
 {
-       return (void *) sgetsgent(line);
+       return (void *) sgetsgent (line);
 }
 
-static int
-gshadow_put(const void *ent, FILE *file)
+static int gshadow_put (const void *ent, FILE * file)
 {
        const struct sgrp *sg = ent;
-       return (putsgent(sg, file) == -1) ? -1 : 0;
+
+       return (putsgent (sg, file) == -1) ? -1 : 0;
 }
 
 static struct commonio_ops gshadow_ops = {
@@ -112,110 +104,95 @@ static struct commonio_ops gshadow_ops = {
 };
 
 static struct commonio_db gshadow_db = {
-       SGROUP_FILE,    /* filename */
-       &gshadow_ops,   /* ops */
-       NULL,           /* fp */
-       NULL,           /* head */
-       NULL,           /* tail */
-       NULL,           /* cursor */
-       0,              /* changed */
-       0,              /* isopen */
-       0,              /* locked */
-       0               /* readonly */
+       SGROUP_FILE,            /* filename */
+       &gshadow_ops,           /* ops */
+       NULL,                   /* fp */
+       NULL,                   /* head */
+       NULL,                   /* tail */
+       NULL,                   /* cursor */
+       0,                      /* changed */
+       0,                      /* isopen */
+       0,                      /* locked */
+       0                       /* readonly */
 };
 
-int
-sgr_name(const char *filename)
+int sgr_name (const char *filename)
 {
-       return commonio_setname(&gshadow_db, filename);
+       return commonio_setname (&gshadow_db, filename);
 }
 
-int
-sgr_file_present(void)
+int sgr_file_present (void)
 {
-       return commonio_present(&gshadow_db);
+       return commonio_present (&gshadow_db);
 }
 
-int
-sgr_lock(void)
+int sgr_lock (void)
 {
-       return commonio_lock(&gshadow_db);
+       return commonio_lock (&gshadow_db);
 }
 
-int
-sgr_open(int mode)
+int sgr_open (int mode)
 {
-       return commonio_open(&gshadow_db, mode);
+       return commonio_open (&gshadow_db, mode);
 }
 
-const struct sgrp *
-sgr_locate(const char *name)
+const struct sgrp *sgr_locate (const char *name)
 {
-       return commonio_locate(&gshadow_db, name);
+       return commonio_locate (&gshadow_db, name);
 }
 
-int
-sgr_update(const struct sgrp *sg)
+int sgr_update (const struct sgrp *sg)
 {
-       return commonio_update(&gshadow_db, (const void *) sg);
+       return commonio_update (&gshadow_db, (const void *) sg);
 }
 
-int
-sgr_remove(const char *name)
+int sgr_remove (const char *name)
 {
-       return commonio_remove(&gshadow_db, name);
+       return commonio_remove (&gshadow_db, name);
 }
 
-int
-sgr_rewind(void)
+int sgr_rewind (void)
 {
-       return commonio_rewind(&gshadow_db);
+       return commonio_rewind (&gshadow_db);
 }
 
-const struct sgrp *
-sgr_next(void)
+const struct sgrp *sgr_next (void)
 {
-       return commonio_next(&gshadow_db);
+       return commonio_next (&gshadow_db);
 }
 
-int
-sgr_close(void)
+int sgr_close (void)
 {
-       return commonio_close(&gshadow_db);
+       return commonio_close (&gshadow_db);
 }
 
-int
-sgr_unlock(void)
+int sgr_unlock (void)
 {
-       return commonio_unlock(&gshadow_db);
+       return commonio_unlock (&gshadow_db);
 }
 
-void
-__sgr_set_changed(void)
+void __sgr_set_changed (void)
 {
        gshadow_db.changed = 1;
 }
 
-struct commonio_entry *
-__sgr_get_head(void)
+struct commonio_entry *__sgr_get_head (void)
 {
        return gshadow_db.head;
 }
 
-void
-__sgr_del_entry(const struct commonio_entry *ent)
+void __sgr_del_entry (const struct commonio_entry *ent)
 {
-       commonio_del_entry(&gshadow_db, ent);
+       commonio_del_entry (&gshadow_db, ent);
 }
 
 /* Sort with respect to group ordering. */
-int
-sgr_sort()
+int sgr_sort ()
 {
-       extern struct commonio_db *__gr_get_db();
+       extern struct commonio_db *__gr_get_db ();
 
-       return commonio_sort_wrt(&gshadow_db, __gr_get_db());
+       return commonio_sort_wrt (&gshadow_db, __gr_get_db ());
 }
 #else
-extern int errno;  /* warning: ANSI C forbids an empty source file */
+extern int errno;              /* warning: ANSI C forbids an empty source file */
 #endif
index 462b58bdcef16516bcb0e2e7562d776fa3191c7b..90693b0f3421ba3ce7961f21642d5907f577e8da 100644 (file)
@@ -1,14 +1,14 @@
-extern struct sgrp *__sgr_dup(const struct sgrp *);
-extern void __sgr_set_changed(void);
-extern int sgr_close(void);
-extern int sgr_file_present(void);
-extern const struct sgrp *sgr_locate(const char *);
-extern int sgr_lock(void);
-extern int sgr_name(const char *);
-extern const struct sgrp *sgr_next(void);
-extern int sgr_open(int);
-extern int sgr_remove(const char *);
-extern int sgr_rewind(void);
-extern int sgr_unlock(void);
-extern int sgr_update(const struct sgrp *);
-extern int sgr_sort(void);
+extern struct sgrp *__sgr_dup (const struct sgrp *);
+extern void __sgr_set_changed (void);
+extern int sgr_close (void);
+extern int sgr_file_present (void);
+extern const struct sgrp *sgr_locate (const char *);
+extern int sgr_lock (void);
+extern int sgr_name (const char *);
+extern const struct sgrp *sgr_next (void);
+extern int sgr_open (int);
+extern int sgr_remove (const char *);
+extern int sgr_rewind (void);
+extern int sgr_unlock (void);
+extern int sgr_update (const struct sgrp *);
+extern int sgr_sort (void);
index 2b21e23f2963a97da66a1e02e97b677d62c97c5d..efb801e386f061b068d46236a9de3ac17131c146 100644 (file)
 #include <config.h>
 
 /* Newer versions of Linux libc already have shadow support.  */
-#if defined(SHADOWPWD) && !defined(HAVE_GETSPNAM)      /*{*/
+#if defined(SHADOWPWD) && !defined(HAVE_GETSPNAM)      /*{ */
 
 #include "rcsid.h"
-RCSID("$Id: shadow.c,v 1.7 2003/05/03 16:14:24 kloczek Exp $")
-
+RCSID ("$Id: shadow.c,v 1.9 2005/04/06 04:26:05 kloczek Exp $")
 #include <sys/types.h>
 #include "prototypes.h"
 #include "defines.h"
 #include <stdio.h>
 
-#ifdef NDBM
-#include <ndbm.h>
-#include <fcntl.h>
-DBM    *sp_dbm;
-int    sp_dbm_mode = -1;
-static int     dbmopened;
-static int     dbmerror;
-#endif
-
 #ifdef USE_NIS
-static int     nis_used;
-static int     nis_ignore;
-static enum    { native, start, middle, native2 } nis_state;
-static int     nis_bound;
-static char    *nis_domain;
-static char    *nis_key;
-static int     nis_keylen;
-static char    *nis_val;
-static int     nis_vallen;
+static int nis_used;
+static int nis_ignore;
+static enum { native, start, middle, native2 } nis_state;
+static int nis_bound;
+static char *nis_domain;
+static char *nis_key;
+static int nis_keylen;
+static char *nis_val;
+static int nis_vallen;
+
 #define        IS_NISCHAR(c) ((c)=='+')
 #endif
 
-static FILE    *shadow;
-static char    spwbuf[BUFSIZ];
-static struct  spwd    spwd;
+static FILE *shadow;
+static char spwbuf[BUFSIZ];
+static struct spwd spwd;
 
 #define        FIELDS  9
 #define        OFIELDS 5
@@ -75,10 +66,9 @@ static       struct  spwd    spwd;
  * __setspNIS - turn on or off NIS searches
  */
 
-void
-__setspNIS(int flag)
+void __setspNIS (int flag)
 {
-       nis_ignore = ! flag;
+       nis_ignore = !flag;
 
        if (nis_ignore)
                nis_used = 0;
@@ -88,8 +78,7 @@ __setspNIS(int flag)
  * bind_nis - bind to NIS server
  */
 
-static int
-bind_nis(void)
+static int bind_nis (void)
 {
        if (yp_get_default_domain (&nis_domain))
                return -1;
@@ -103,84 +92,49 @@ bind_nis(void)
  * setspent - initialize access to shadow text and DBM files
  */
 
-void
-setspent(void)
+void setspent (void)
 {
        if (shadow)
-               rewind(shadow);
+               rewind (shadow);
        else
-               shadow = fopen(SHADOW_FILE, "r");
+               shadow = fopen (SHADOW_FILE, "r");
 
 #ifdef USE_NIS
        nis_state = native;
 #endif
-
-       /*
-        * Attempt to open the DBM files if they have never been opened
-        * and an error has never been returned.
-        */
-
-#ifdef NDBM
-       if (! dbmerror && ! dbmopened) {
-               int     mode;
-               char    dbmfiles[BUFSIZ];
-
-               strcpy (dbmfiles, SHADOW_PAG_FILE);
-
-               if (sp_dbm_mode == -1)
-                       mode = O_RDWR;
-               else
-                       mode = (sp_dbm_mode == O_RDWR) ? O_RDWR:O_RDONLY;
-
-               if (! (sp_dbm = dbm_open (SHADOW_FILE, mode, 0)))
-                       dbmerror = 1;
-               else
-                       dbmopened = 1;
-       }
-#endif
 }
 
 /*
  * endspent - terminate access to shadow text and DBM files
  */
 
-void
-endspent(void)
+void endspent (void)
 {
        if (shadow)
                (void) fclose (shadow);
 
        shadow = (FILE *) 0;
-#ifdef NDBM
-       if (dbmopened && sp_dbm) {
-               dbm_close (sp_dbm);
-               sp_dbm = 0;
-       }
-       dbmopened = 0;
-       dbmerror = 0;
-#endif
 }
 
 /*
  * my_sgetspent - convert string in shadow file format to (struct spwd *)
  */
 
-static struct spwd *
-my_sgetspent(const char *string)
+static struct spwd *my_sgetspent (const char *string)
 {
-       char    *fields[FIELDS];
-       char    *cp;
-       char    *cpp;
-       int     i;
+       char *fields[FIELDS];
+       char *cp;
+       char *cpp;
+       int i;
 
        /*
         * Copy string to local buffer.  It has to be tokenized and we
         * have to do that to our private copy.
         */
 
-       if (strlen(string) >= sizeof spwbuf)
+       if (strlen (string) >= sizeof spwbuf)
                return 0;
-       strcpy(spwbuf, string);
+       strcpy (spwbuf, string);
 
        if ((cp = strrchr (spwbuf, '\n')))
                *cp = '\0';
@@ -190,7 +144,7 @@ my_sgetspent(const char *string)
         * FIELDS different fields.
         */
 
-       for (cp = spwbuf, i = 0;*cp && i < FIELDS;i++) {
+       for (cp = spwbuf, i = 0; *cp && i < FIELDS; i++) {
                fields[i] = cp;
                while (*cp && *cp != ':')
                        cp++;
@@ -199,7 +153,7 @@ my_sgetspent(const char *string)
                        *cp++ = '\0';
        }
 
-       if (i == (FIELDS-1))
+       if (i == (FIELDS - 1))
                fields[i++] = cp;
 
        if ((cp && *cp) || (i != FIELDS && i != OFIELDS))
@@ -227,7 +181,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_lstchg = strtol (fields[2], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_lstchg = -1;
@@ -243,7 +197,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_min = strtol (fields[3], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_min = -1;
@@ -259,7 +213,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_max = strtol (fields[4], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_max = -1;
@@ -276,7 +230,7 @@ my_sgetspent(const char *string)
 
        if (i == OFIELDS) {
                spwd.sp_warn = spwd.sp_inact = spwd.sp_expire =
-                       spwd.sp_flag = -1;
+                   spwd.sp_flag = -1;
 
                return &spwd;
        }
@@ -287,7 +241,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_warn = strtol (fields[5], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_warn = -1;
@@ -304,7 +258,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_inact = strtol (fields[6], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_inact = -1;
@@ -321,7 +275,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_expire = strtol (fields[7], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_expire = -1;
@@ -338,7 +292,7 @@ my_sgetspent(const char *string)
 
        if ((spwd.sp_flag = strtol (fields[8], &cpp, 10)) == 0 && *cpp) {
 #ifdef USE_NIS
-               if (! nis_used)
+               if (!nis_used)
                        return 0;
                else
                        spwd.sp_flag = -1;
@@ -355,13 +309,12 @@ my_sgetspent(const char *string)
  * fgetspent - get an entry from a /etc/shadow formatted stream
  */
 
-struct spwd *
-fgetspent(FILE *fp)
+struct spwd *fgetspent (FILE * fp)
 {
-       char    buf[BUFSIZ];
-       char    *cp;
+       char buf[BUFSIZ];
+       char *cp;
 
-       if (! fp)
+       if (!fp)
                return (0);
 
 #ifdef USE_NIS
@@ -376,7 +329,7 @@ fgetspent(FILE *fp)
                if (nis_ignore && IS_NISCHAR (buf[0]))
                        continue;
 #endif
-               return my_sgetspent(buf);
+               return my_sgetspent (buf);
        }
        return 0;
 }
@@ -385,19 +338,18 @@ fgetspent(FILE *fp)
  * getspent - get a (struct spwd *) from the current shadow file
  */
 
-struct spwd *
-getspent(void)
+struct spwd *getspent (void)
 {
 #ifdef USE_NIS
-       int     nis_1_user = 0;
-       struct  spwd    *val;
-       char    buf[BUFSIZ];
+       int nis_1_user = 0;
+       struct spwd *val;
+       char buf[BUFSIZ];
 #endif
-       if (! shadow)
+       if (!shadow)
                setspent ();
 
 #ifdef USE_NIS
-again:
+      again:
        /*
         * See if we are reading from the local file.
         */
@@ -409,7 +361,7 @@ again:
                 * right away if there is none.
                 */
 
-               if (! (val = fgetspent (shadow)))
+               if (!(val = fgetspent (shadow)))
                        return 0;
 
                /*
@@ -455,20 +407,20 @@ again:
                }
                if (nis_state == start) {
                        if (yp_first (nis_domain, "shadow.bynam", &nis_key,
-                               &nis_keylen, &nis_val, &nis_vallen)) {
+                                     &nis_keylen, &nis_val, &nis_vallen)) {
                                nis_state = native2;
                                goto again;
                        }
                        nis_state = middle;
                } else if (nis_state == middle) {
                        if (yp_next (nis_domain, "shadow.bynam", nis_key,
-                               nis_keylen, &nis_key, &nis_keylen,
-                               &nis_val, &nis_vallen)) {
+                                    nis_keylen, &nis_key, &nis_keylen,
+                                    &nis_val, &nis_vallen)) {
                                nis_state = native2;
                                goto again;
                        }
                }
-               return my_sgetspent(nis_val);
+               return my_sgetspent (nis_val);
        }
 #else
        return (fgetspent (shadow));
@@ -479,68 +431,42 @@ again:
  * getspnam - get a shadow entry by name
  */
 
-struct spwd *
-getspnam(const char *name)
+struct spwd *getspnam (const char *name)
 {
-       struct  spwd    *sp;
-#ifdef NDBM
-       datum   key;
-       datum   content;
-#endif
+       struct spwd *sp;
+
 #ifdef USE_NIS
-       char    buf[BUFSIZ];
-       static  char    save_name[16];
-       int     nis_disabled = 0;
+       char buf[BUFSIZ];
+       static char save_name[16];
+       int nis_disabled = 0;
 #endif
 
        setspent ();
 
-#ifdef NDBM
-
-       /*
-        * If the DBM file are now open, create a key for this UID and
-        * try to fetch the entry from the database.  A matching record
-        * will be unpacked into a static structure and returned to
-        * the user.
-        */
-
-       if (dbmopened) {
-               key.dsize = strlen (name);
-               key.dptr = (char *) name;
-
-               content = dbm_fetch (sp_dbm, key);
-               if (content.dptr != 0) {
-                       memcpy (spwbuf, content.dptr, content.dsize);
-                       spw_unpack (spwbuf, content.dsize, &spwd);
-                       endspent();
-                       return &spwd;
-               }
-       }
-#endif
 #ifdef USE_NIS
        /*
         * Search the shadow.byname map for this user.
         */
 
-       if (! nis_ignore && ! nis_bound)
+       if (!nis_ignore && !nis_bound)
                bind_nis ();
 
-       if (! nis_ignore && nis_bound) {
-               char    *cp;
+       if (!nis_ignore && nis_bound) {
+               char *cp;
 
                if (yp_match (nis_domain, "shadow.byname", name,
-                               strlen (name), &nis_val, &nis_vallen) == 0) {
+                             strlen (name), &nis_val, &nis_vallen) == 0) {
 
                        if (cp = strchr (nis_val, '\n'))
                                *cp = '\0';
 
                        nis_state = middle;
-                       if ((sp = my_sgetspent(nis_val))) {
+                       if ((sp = my_sgetspent (nis_val))) {
                                strcpy (save_name, sp->sp_namp);
                                nis_key = save_name;
                                nis_keylen = strlen (save_name);
                        }
-                       endspent();
+                       endspent ();
                        return sp;
                } else
                        nis_state = native2;
@@ -567,9 +493,9 @@ getspnam(const char *name)
        if (nis_disabled)
                nis_ignore--;
 #endif
-       endspent();
+       endspent ();
        return (sp);
 }
 #else
-extern int errno;  /* warning: ANSI C forbids an empty source file */
-#endif /*}*/
+extern int errno;              /* warning: ANSI C forbids an empty source file */
+#endif                         /*} */
index 0fceeb751701d7c6aeb78a865167beb3cd7fd2e9..095fba1c1638e858ad1f887dc53172499cbc9de1 100644 (file)
@@ -4,68 +4,62 @@
 #ifdef SHADOWPWD
 
 #include "rcsid.h"
-RCSID("$Id: shadowio.c,v 1.13 2001/08/14 21:10:36 malekith Exp $")
-
+RCSID ("$Id: shadowio.c,v 1.14 2005/03/31 05:14:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #ifdef HAVE_SHADOW_H
 # include <shadow.h>
 #endif
 #include <stdio.h>
-
 #include "commonio.h"
 #include "shadowio.h"
-
-struct spwd *
-__spw_dup(const struct spwd *spent)
+struct spwd *__spw_dup (const struct spwd *spent)
 {
        struct spwd *sp;
 
-       if (!(sp = (struct spwd *) malloc(sizeof *sp)))
+       if (!(sp = (struct spwd *) malloc (sizeof *sp)))
                return NULL;
        *sp = *spent;
-       if (!(sp->sp_namp = strdup(spent->sp_namp)))
+       if (!(sp->sp_namp = strdup (spent->sp_namp)))
                return NULL;
-       if (!(sp->sp_pwdp = strdup(spent->sp_pwdp)))
+       if (!(sp->sp_pwdp = strdup (spent->sp_pwdp)))
                return NULL;
        return sp;
 }
 
-static void *
-shadow_dup(const void *ent)
+static void *shadow_dup (const void *ent)
 {
        const struct spwd *sp = ent;
-       return __spw_dup(sp);
+
+       return __spw_dup (sp);
 }
 
-static void
-shadow_free(void *ent)
+static void shadow_free (void *ent)
 {
        struct spwd *sp = ent;
 
-       free(sp->sp_namp);
-       free(sp->sp_pwdp);
-       free(sp);
+       free (sp->sp_namp);
+       free (sp->sp_pwdp);
+       free (sp);
 }
 
-static const char *
-shadow_getname(const void *ent)
+static const char *shadow_getname (const void *ent)
 {
        const struct spwd *sp = ent;
+
        return sp->sp_namp;
 }
 
-static void *
-shadow_parse(const char *line)
+static void *shadow_parse (const char *line)
 {
-       return (void *) sgetspent(line);
+       return (void *) sgetspent (line);
 }
 
-static int
-shadow_put(const void *ent, FILE *file)
+static int shadow_put (const void *ent, FILE * file)
 {
        const struct spwd *sp = ent;
-       return (putspent(sp, file) == -1) ? -1 : 0;
+
+       return (putspent (sp, file) == -1) ? -1 : 0;
 }
 
 static struct commonio_ops shadow_ops = {
@@ -79,102 +73,88 @@ static struct commonio_ops shadow_ops = {
 };
 
 static struct commonio_db shadow_db = {
-       SHADOW_FILE,    /* filename */
-       &shadow_ops,    /* ops */
-       NULL,           /* fp */
-       NULL,           /* head */
-       NULL,           /* tail */
-       NULL,           /* cursor */
-       0,              /* changed */
-       0,              /* isopen */
-       0,              /* locked */
-       0               /* readonly */
+       SHADOW_FILE,            /* filename */
+       &shadow_ops,            /* ops */
+       NULL,                   /* fp */
+       NULL,                   /* head */
+       NULL,                   /* tail */
+       NULL,                   /* cursor */
+       0,                      /* changed */
+       0,                      /* isopen */
+       0,                      /* locked */
+       0                       /* readonly */
 };
 
-int
-spw_name(const char *filename)
+int spw_name (const char *filename)
 {
-       return commonio_setname(&shadow_db, filename);
+       return commonio_setname (&shadow_db, filename);
 }
 
-int
-spw_file_present(void)
+int spw_file_present (void)
 {
-       return commonio_present(&shadow_db);
+       return commonio_present (&shadow_db);
 }
 
-int
-spw_lock(void)
+int spw_lock (void)
 {
-       return commonio_lock(&shadow_db);
+       return commonio_lock (&shadow_db);
 }
 
-int
-spw_open(int mode)
+int spw_open (int mode)
 {
-       return commonio_open(&shadow_db, mode);
+       return commonio_open (&shadow_db, mode);
 }
 
-const struct spwd *
-spw_locate(const char *name)
+const struct spwd *spw_locate (const char *name)
 {
-       return commonio_locate(&shadow_db, name);
+       return commonio_locate (&shadow_db, name);
 }
 
-int
-spw_update(const struct spwd *sp)
+int spw_update (const struct spwd *sp)
 {
-       return commonio_update(&shadow_db, (const void *) sp);
+       return commonio_update (&shadow_db, (const void *) sp);
 }
 
-int
-spw_remove(const char *name)
+int spw_remove (const char *name)
 {
-       return commonio_remove(&shadow_db, name);
+       return commonio_remove (&shadow_db, name);
 }
 
-int
-spw_rewind(void)
+int spw_rewind (void)
 {
-       return commonio_rewind(&shadow_db);
+       return commonio_rewind (&shadow_db);
 }
 
-const struct spwd *
-spw_next(void)
+const struct spwd *spw_next (void)
 {
-       return commonio_next(&shadow_db);
+       return commonio_next (&shadow_db);
 }
 
-int
-spw_close(void)
+int spw_close (void)
 {
-       return commonio_close(&shadow_db);
+       return commonio_close (&shadow_db);
 }
 
-int
-spw_unlock(void)
+int spw_unlock (void)
 {
-       return commonio_unlock(&shadow_db);
+       return commonio_unlock (&shadow_db);
 }
 
-struct commonio_entry *
-__spw_get_head(void)
+struct commonio_entry *__spw_get_head (void)
 {
        return shadow_db.head;
 }
 
-void
-__spw_del_entry(const struct commonio_entry *ent)
+void __spw_del_entry (const struct commonio_entry *ent)
 {
-       commonio_del_entry(&shadow_db, ent);
+       commonio_del_entry (&shadow_db, ent);
 }
 
 /* Sort with respect to passwd ordering. */
-int
-spw_sort()
+int spw_sort ()
 {
-       extern struct commonio_db *__pw_get_db();
+       extern struct commonio_db *__pw_get_db ();
 
-       return commonio_sort_wrt(&shadow_db, __pw_get_db());
+       return commonio_sort_wrt (&shadow_db, __pw_get_db ());
 }
 #endif
index 25ffed0f45e9981fd304d35357c34c26ab9aa329..d5866079b03c48c89ab76f265c5bb1c24aba172d 100644 (file)
@@ -1,14 +1,14 @@
-extern struct spwd *__spw_dup(const struct spwd *);
-extern void __spw_set_changed(void);
-extern int spw_close(void);
-extern int spw_file_present(void);
-extern const struct spwd *spw_locate(const char *);
-extern int spw_lock(void);
-extern int spw_name(const char *);
-extern const struct spwd *spw_next(void);
-extern int spw_open(int);
-extern int spw_remove(const char *);
-extern int spw_rewind(void);
-extern int spw_unlock(void);
-extern int spw_update(const struct spwd *);
-extern int spw_sort(void);
+extern struct spwd *__spw_dup (const struct spwd *);
+extern void __spw_set_changed (void);
+extern int spw_close (void);
+extern int spw_file_present (void);
+extern const struct spwd *spw_locate (const char *);
+extern int spw_lock (void);
+extern int spw_name (const char *);
+extern const struct spwd *spw_next (void);
+extern int spw_open (int);
+extern int spw_remove (const char *);
+extern int spw_rewind (void);
+extern int spw_unlock (void);
+extern int spw_update (const struct spwd *);
+extern int spw_sort (void);
diff --git a/lib/spdbm.c b/lib/spdbm.c
deleted file mode 100644 (file)
index 317ea6b..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 1990 - 1994, Julianne Frances Haugh
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#if defined(SHADOWPWD) && defined(NDBM)        /*{*/
-
-#include "rcsid.h"
-RCSID("$Id: spdbm.c,v 1.3 1997/12/07 23:26:58 marekm Exp $")
-
-#include <string.h>
-#include <stdio.h>
-#include "prototypes.h"
-#include "defines.h"
-
-#include <ndbm.h>
-extern DBM     *sp_dbm;
-
-/*
- * sp_dbm_update
- *
- * Updates the DBM password files, if they exist.
- */
-
-int
-sp_dbm_update(struct spwd *sp)
-{
-       datum   key;
-       datum   content;
-       char    data[BUFSIZ];
-       int     len;
-       static  int     once;
-
-       if (! once) {
-               if (! sp_dbm)
-                       setspent ();
-
-               once++;
-       }
-       if (! sp_dbm)
-               return 0;
-
-       len = spw_pack (sp, data);
-
-       content.dsize = len;
-       content.dptr = data;
-
-       key.dsize = strlen (sp->sp_namp);
-       key.dptr = sp->sp_namp;
-       if (dbm_store (sp_dbm, key, content, DBM_REPLACE))
-               return 0;
-
-       return 1;
-}
-
-/*
- * sp_dbm_remove
- *
- * Updates the DBM password files, if they exist.
- */
-
-int
-sp_dbm_remove(char *user)
-{
-       datum   key;
-       static  int     once;
-
-       if (! once) {
-               if (! sp_dbm)
-                       setspent ();
-
-               once++;
-       }
-       if (! sp_dbm)
-               return 0;
-
-       key.dsize = strlen (user);
-       key.dptr = user;
-       if (dbm_delete (sp_dbm, key))
-               return 0;
-
-       return 1;
-}
-
-int
-sp_dbm_present(void)
-{
-       return (access(SHADOW_PAG_FILE, F_OK) == 0);
-}
-#endif /*} SHADOWPWD && NDBM */
index 463f633ad2389bc46e62e100fb18b4dbd1008dac..c36c4bd326ff77146320c1d704ed3929c16ffb85 100644 (file)
  */
 
 #include <config.h>
-#ifdef SHADOWPWD       /*{*/
+#ifdef SHADOWPWD               /*{ */
 
 #include "rcsid.h"
-RCSID("$Id: sppack.c,v 1.3 1997/12/07 23:26:58 marekm Exp $")
-
+RCSID ("$Id: sppack.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
 #include <stdio.h>
 #include <sys/types.h>
 #include "defines.h"
-
-int
-spw_pack(const struct spwd *spwd, char *buf)
+int spw_pack (const struct spwd *spwd, char *buf)
 {
-       char    *cp;
+       char *cp;
 
        cp = buf;
        strcpy (cp, spwd->sp_namp);
@@ -73,10 +70,9 @@ spw_pack(const struct spwd *spwd, char *buf)
        return cp - buf;
 }
 
-int
-spw_unpack(char *buf, int len, struct spwd *spwd)
+int spw_unpack (char *buf, int len, struct spwd *spwd)
 {
-       char    *org = buf;
+       char *org = buf;
 
        spwd->sp_namp = buf;
        buf += strlen (buf) + 1;
@@ -110,4 +106,4 @@ spw_unpack(char *buf, int len, struct spwd *spwd)
 
        return 0;
 }
-#endif /*}*/
+#endif                         /*} */
index 0b14d14cb6f215518ee533711f79b48eccbd44b4..1a190b848ae4a56385adac4572678ef94967f5ea 100644 (file)
 #include <utmp.h>
 
 #ifndef        lint
-static char rcsid[] = "$Id: utent.c,v 1.4 1998/01/29 23:22:32 marekm Exp $";
+static char rcsid[] = "$Id: utent.c,v 1.5 2005/03/31 05:14:49 kloczek Exp $";
 #endif
 
-static int     utmp_fd = -1;
-static struct  utmp    utmp_buf;
+static int utmp_fd = -1;
+static struct utmp utmp_buf;
 
 /*
  * setutent - open or rewind the utmp file
  */
 
-void
-setutent(void)
+void setutent (void)
 {
        if (utmp_fd == -1)
                if ((utmp_fd = open (_UTMP_FILE, O_RDWR)) == -1)
@@ -62,8 +61,7 @@ setutent(void)
  * endutent - close the utmp file
  */
 
-void
-endutent(void)
+void endutent (void)
 {
        if (utmp_fd != -1)
                close (utmp_fd);
@@ -75,8 +73,7 @@ endutent(void)
  * getutent - get the next record from the utmp file
  */
 
-struct utmp *
-getutent(void)
+struct utmp *getutent (void)
 {
        if (utmp_fd == -1)
                setutent ();
@@ -94,11 +91,10 @@ getutent(void)
  * getutline - get the utmp entry matching ut_line
  */
 
-struct utmp *
-getutline(const struct utmp *utent)
+struct utmp *getutline (const struct utmp *utent)
 {
-       struct  utmp    save;
-       struct  utmp    *new;
+       struct utmp save;
+       struct utmp *new;
 
        save = *utent;
        while (new = getutent ())
@@ -110,5 +106,5 @@ getutline(const struct utmp *utent)
        return (struct utmp *) 0;
 }
 #else
-extern int errno;  /* warning: ANSI C forbids an empty source file */
+extern int errno;              /* warning: ANSI C forbids an empty source file */
 #endif
index 7bf3029299a69831b1c54446060ddeff5e612f1f..7d81de10bbdb7fcb9498921276f24304094a55bf 100644 (file)
@@ -27,9 +27,6 @@ libmisc_a_SOURCES = \
        isexpired.c \
        limits.c \
        list.c log.c \
-       login_access.c \
-       login_desrpc.c \
-       login_krb.c \
        loginprompt.c \
        mail.c \
        motd.c \
index 462d4b4b4c3cf983df9d68d6be4872dc1a9587c7..7b471a816aada826064d7c757d4f9f50d55b092a 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,16 +57,15 @@ am_libmisc_a_OBJECTS = addgrps.$(OBJEXT) age.$(OBJEXT) \
        copydir.$(OBJEXT) entry.$(OBJEXT) env.$(OBJEXT) \
        failure.$(OBJEXT) fields.$(OBJEXT) getdate.$(OBJEXT) \
        hushed.$(OBJEXT) isexpired.$(OBJEXT) limits.$(OBJEXT) \
-       list.$(OBJEXT) log.$(OBJEXT) login_access.$(OBJEXT) \
-       login_desrpc.$(OBJEXT) login_krb.$(OBJEXT) \
-       loginprompt.$(OBJEXT) mail.$(OBJEXT) motd.$(OBJEXT) \
-       myname.$(OBJEXT) obscure.$(OBJEXT) pam_pass.$(OBJEXT) \
-       pwd2spwd.$(OBJEXT) pwdcheck.$(OBJEXT) pwd_init.$(OBJEXT) \
-       rlogin.$(OBJEXT) salt.$(OBJEXT) setugid.$(OBJEXT) \
-       setup.$(OBJEXT) setupenv.$(OBJEXT) shell.$(OBJEXT) \
-       strtoday.$(OBJEXT) sub.$(OBJEXT) sulog.$(OBJEXT) \
-       ttytype.$(OBJEXT) tz.$(OBJEXT) ulimit.$(OBJEXT) utmp.$(OBJEXT) \
-       valid.$(OBJEXT) xmalloc.$(OBJEXT)
+       list.$(OBJEXT) log.$(OBJEXT) loginprompt.$(OBJEXT) \
+       mail.$(OBJEXT) motd.$(OBJEXT) myname.$(OBJEXT) \
+       obscure.$(OBJEXT) pam_pass.$(OBJEXT) pwd2spwd.$(OBJEXT) \
+       pwdcheck.$(OBJEXT) pwd_init.$(OBJEXT) rlogin.$(OBJEXT) \
+       salt.$(OBJEXT) setugid.$(OBJEXT) setup.$(OBJEXT) \
+       setupenv.$(OBJEXT) shell.$(OBJEXT) strtoday.$(OBJEXT) \
+       sub.$(OBJEXT) sulog.$(OBJEXT) ttytype.$(OBJEXT) tz.$(OBJEXT) \
+       ulimit.$(OBJEXT) utmp.$(OBJEXT) valid.$(OBJEXT) \
+       xmalloc.$(OBJEXT)
 libmisc_a_OBJECTS = $(am_libmisc_a_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -122,17 +121,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -231,9 +229,6 @@ libmisc_a_SOURCES = \
        isexpired.c \
        limits.c \
        list.c log.c \
-       login_access.c \
-       login_desrpc.c \
-       login_krb.c \
        loginprompt.c \
        mail.c \
        motd.c \
@@ -272,9 +267,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libmisc/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  libmisc/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  libmisc/Makefile
+         $(AUTOMAKE) --foreign  libmisc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -325,9 +320,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/limits.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/login_access.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/login_desrpc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/login_krb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loginprompt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/motd.Po@am__quote@
index c505d3821edbd57a3b9c3cd06cc21fa90d899c77..feb313fbad5b7b5294763ee22cf4e6ae969d6fe3 100644 (file)
@@ -10,7 +10,7 @@
 #include <errno.h>
 
 #include "rcsid.h"
-RCSID ("$Id: addgrps.c,v 1.6 2003/04/22 10:59:21 kloczek Exp $")
+RCSID ("$Id: addgrps.c,v 1.7 2005/03/31 05:14:50 kloczek Exp $")
 #define SEP ",:"
 /*
  * Add groups with names from LIST (separated by commas or colons)
@@ -58,8 +58,7 @@ int add_groups (const char *list)
                        continue;
                }
 
-               for (i = 0; i < ngroups && grouplist[i] != grp->gr_gid;
-                    i++);
+               for (i = 0; i < ngroups && grouplist[i] != grp->gr_gid; i++);
 
                if (i < ngroups)
                        continue;
@@ -68,9 +67,7 @@ int add_groups (const char *list)
                        fprintf (stderr, _("Warning: too many groups\n"));
                        break;
                }
-               tmp =
-                   realloc (grouplist,
-                            (ngroups + 1) * sizeof (GETGROUPS_T));
+               tmp = realloc (grouplist, (ngroups + 1) * sizeof (GETGROUPS_T));
                if (!tmp) {
                        free (grouplist);
                        return -1;
index 8c851ea1463784c37cd7752924eed5b7094144d7..a807ac5dc33b9b83bc4d0d6913d25799e89fef02 100644 (file)
@@ -41,7 +41,7 @@
 #if defined(SHADOWPWD)
 
 #include "rcsid.h"
-RCSID ("$Id: age.c,v 1.9 2004/03/29 00:26:18 kloczek Exp $")
+RCSID ("$Id: age.c,v 1.10 2005/03/31 05:14:50 kloczek Exp $")
 #ifndef PASSWD_PROGRAM
 #define PASSWD_PROGRAM "/bin/passwd"
 #endif
@@ -124,8 +124,7 @@ int expire (const struct passwd *pw, const struct spwd *sp)
                if (setup_uid_gid (pw, 0))
                        _exit (126);
 
-               execl (PASSWD_PROGRAM, PASSWD_PROGRAM, pw->pw_name,
-                      (char *) 0);
+               execl (PASSWD_PROGRAM, PASSWD_PROGRAM, pw->pw_name, (char *) 0);
                err = errno;
                perror ("Can't execute " PASSWD_PROGRAM);
                _exit ((err == ENOENT) ? 127 : 126);
@@ -170,8 +169,7 @@ void agecheck (const struct passwd *pw, const struct spwd *sp)
                                ("Your password will expire in %ld days.\n"),
                                remain);
                else if (remain == 1)
-                       printf (_
-                               ("Your password will expire tomorrow.\n"));
+                       printf (_("Your password will expire tomorrow.\n"));
                else if (remain == 0)
                        printf (_("Your password will expire today.\n"));
        }
index b9e3ae029f4abe353b2836e8c03e831e1af49988..8c9ec9678e4f90382484dcc5ea7cfb812547d090 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: chkname.h,v 1.2 2000/08/26 18:27:17 marekm Exp $ */
+/* $Id: chkname.h,v 1.3 2005/03/31 05:14:50 kloczek Exp $ */
 #ifndef _CHKNAME_H_
 #define _CHKNAME_H_
 
@@ -9,7 +9,7 @@
 
 #include "defines.h"
 
-extern int check_user_name(const char *);
-extern int check_group_name(const char *name);
+extern int check_user_name (const char *);
+extern int check_group_name (const char *name);
 
 #endif
index 7ed1cf6123376f450ddd788f087b6359ce98761f..4af7b4326878b132fb838d9f5ffd4fe55a4d97c1 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: chowndir.c,v 1.7 2003/04/22 10:59:21 kloczek Exp $")
+RCSID ("$Id: chowndir.c,v 1.8 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "prototypes.h"
@@ -86,8 +86,7 @@ chown_tree (const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid,
                 * destination files.
                 */
 
-               if (strlen (root) + strlen (ent->d_name) + 2 >
-                   sizeof new_name)
+               if (strlen (root) + strlen (ent->d_name) + 2 > sizeof new_name)
                        break;
 
                snprintf (new_name, sizeof new_name, "%s/%s", root,
@@ -114,8 +113,7 @@ chown_tree (const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid,
 #endif
                if (sb.st_uid == old_uid)
                        LCHOWN (new_name, new_uid,
-                               sb.st_gid ==
-                               old_gid ? new_gid : sb.st_gid);
+                               sb.st_gid == old_gid ? new_gid : sb.st_gid);
        }
        closedir (dir);
 
@@ -126,8 +124,7 @@ chown_tree (const char *root, uid_t old_uid, uid_t new_uid, gid_t old_gid,
        if (!stat (root, &sb)) {
                if (sb.st_uid == old_uid)
                        LCHOWN (root, new_uid,
-                               sb.st_gid ==
-                               old_gid ? new_gid : sb.st_gid);
+                               sb.st_gid == old_gid ? new_gid : sb.st_gid);
        }
        return rc;
 }
index 74765d260bf618851fd334c886b7118950caf8ab..bbca5b40e2860bca8d0daac4646a4186169df20d 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: chowntty.c,v 1.10 2003/04/22 10:59:21 kloczek Exp $")
+RCSID ("$Id: chowntty.c,v 1.11 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -103,8 +103,7 @@ void chown_tty (const char *tty, const struct passwd *info)
            chmod (tty, getdef_num ("TTYPERM", 0600))) {
                int err = errno;
 
-               snprintf (buf, sizeof buf, _("Unable to change tty %s"),
-                         tty);
+               snprintf (buf, sizeof buf, _("Unable to change tty %s"), tty);
                perror (buf);
                SYSLOG ((LOG_WARN,
                         "unable to change tty `%s' for user `%s'\n", tty,
index 00a4cb5b57d3a7374974290d56696090af6fb0d7..fe56b5af6061e457b8fd3905cb8867384c6c6758 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: copydir.c,v 1.10 2004/10/18 20:10:10 kloczek Exp $")
-
+RCSID ("$Id: copydir.c,v 1.12 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include "prototypes.h"
 #include "defines.h"
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+static int selinux_enabled = -1;
+#endif
 static const char *src_orig;
 static const char *dst_orig;
 
@@ -50,6 +53,26 @@ struct link_name {
 };
 static struct link_name *links;
 
+#ifdef WITH_SELINUX
+static int selinux_file_context (const char *dst_name)
+{
+       security_context_t scontext = NULL;
+
+       if (selinux_enabled < 0)
+               selinux_enabled = is_selinux_enabled () > 0;
+       if (selinux_enabled) {
+               if (matchpathcon (dst_name, 0, &scontext) < 0)
+                       if (security_getenforce ())
+                               return 1;
+               if (setfscreatecon (scontext) < 0)
+                       if (security_getenforce ())
+                               return 1;
+               freecon (scontext);
+       }
+       return 0;
+}
+#endif
+
 /*
  * remove_link - delete a link from the link list
  */
@@ -80,8 +103,7 @@ static void remove_link (struct link_name *ln)
  * check_link - see if a file is really a link
  */
 
-static struct link_name *check_link (const char *name,
-                                    const struct stat *sb)
+static struct link_name *check_link (const char *name, const struct stat *sb)
 {
        struct link_name *lp;
        int src_len;
@@ -119,9 +141,7 @@ static struct link_name *check_link (const char *name,
  *     as it goes.
  */
 
-int
-copy_tree (const char *src_root, const char *dst_root, uid_t uid,
-          gid_t gid)
+int copy_tree (const char *src_root, const char *dst_root, uid_t uid, gid_t gid)
 {
        char src_name[1024];
        char dst_name[1024];
@@ -202,6 +222,9 @@ copy_tree (const char *src_root, const char *dst_root, uid_t uid,
                         * the user and then recursively copy that directory.
                         */
 
+#ifdef WITH_SELINUX
+                       selinux_file_context (dst_name);
+#endif
                        mkdir (dst_name, sb.st_mode & 0777);
                        chown (dst_name,
                               uid == (uid_t) - 1 ? sb.st_uid : uid,
@@ -238,16 +261,19 @@ copy_tree (const char *src_root, const char *dst_root, uid_t uid,
                                break;
                        }
                        oldlink[len] = '\0';    /* readlink() does not NUL-terminate */
-                       if (!strncmp
-                           (oldlink, src_orig, strlen (src_orig))) {
+                       if (!strncmp (oldlink, src_orig, strlen (src_orig))) {
                                snprintf (dummy, sizeof dummy, "%s%s",
                                          dst_orig,
                                          oldlink + strlen (src_orig));
                                strcpy (oldlink, dummy);
                        }
-                       if (symlink(oldlink, dst_name) ||
-                           lchown (dst_name, uid == (uid_t) -1 ? sb.st_uid:uid,
-                                   gid == (gid_t) -1 ? sb.st_gid:gid)) {
+#ifdef WITH_SELINUX
+                       selinux_file_context (dst_name);
+#endif
+                       if (symlink (oldlink, dst_name) ||
+                           lchown (dst_name,
+                                   uid == (uid_t) - 1 ? sb.st_uid : uid,
+                                   gid == (gid_t) - 1 ? sb.st_gid : gid)) {
                                err++;
                                break;
                        }
@@ -281,8 +307,10 @@ copy_tree (const char *src_root, const char *dst_root, uid_t uid,
                 */
 
                if (!S_ISREG (sb.st_mode)) {
-                       if (mknod
-                           (dst_name, sb.st_mode & ~07777, sb.st_rdev)
+#ifdef WITH_SELINUX
+                       selinux_file_context (dst_name);
+#endif
+                       if (mknod (dst_name, sb.st_mode & ~07777, sb.st_rdev)
                            || chown (dst_name,
                                      uid == (uid_t) - 1 ? sb.st_uid : uid,
                                      gid == (gid_t) - 1 ? sb.st_gid : gid)
@@ -302,6 +330,9 @@ copy_tree (const char *src_root, const char *dst_root, uid_t uid,
                        err++;
                        break;
                }
+#ifdef WITH_SELINUX
+               selinux_file_context (dst_name);
+#endif
                if ((ofd =
                     open (dst_name, O_WRONLY | O_CREAT | O_TRUNC, 0)) < 0
                    || chown (dst_name,
@@ -381,8 +412,7 @@ int remove_tree (const char *root)
                 * Make the filename for the current entry.
                 */
 
-               if (strlen (root) + strlen (ent->d_name) + 2 >
-                   sizeof new_name) {
+               if (strlen (root) + strlen (ent->d_name) + 2 > sizeof new_name) {
                        err++;
                        break;
                }
index e4d9270bf1dd516c6ef4271ab9bbde0fa0d5c652..175c0410b08de43f61cc012f490a7f572985e31a 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: env.c,v 1.10 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: env.c,v 1.11 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -179,8 +179,7 @@ void set_env (int argc, char *const *argv)
                        continue;       /* ignore long entries */
 
                if (!(cp = strchr (*argv, '='))) {
-                       snprintf (variable, sizeof variable, "L%d",
-                                 noname++);
+                       snprintf (variable, sizeof variable, "L%d", noname++);
                        addenv (variable, *argv);
                } else {
                        const char **p;
index 7bfde829dfebf7920468edaee6e27180535ce6e5..e2c659a9798915f992aeb5b68e9458d1ca15aa76 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: failure.c,v 1.9 2003/04/25 21:11:08 kloczek Exp $")
+RCSID ("$Id: failure.c,v 1.12 2005/04/12 14:12:26 kloczek Exp $")
 #include <fcntl.h>
 #include <stdio.h>
 #include "defines.h"
 #include "faillog.h"
 #include "getdef.h"
 #include "failure.h"
-
 #define        YEAR    (365L*DAY)
 /*
  * failure - make failure entry
@@ -227,9 +226,12 @@ void failprint (const struct faillog *fail)
        if (*lasttime == ' ')
                lasttime++;
 #endif
-       printf (_("%d %s since last login.  Last was %s on %s.\n"),
+       printf (ngettext("%d failure since last login.\n"
+                        "Last was %s on %s.\n",
+                        "%d failures since last login.\n"
+                        "Last was %s on %s.\n",
+                        fail->fail_cnt),
                fail->fail_cnt,
-               fail->fail_cnt > 1 ? _("failures") : _("failure"),
                lasttime, fail->fail_line);
 }
 
index 1795b50dc6404b1fdc2a27965b5bce3e67409bb5..06b4c7e2c23a8a65d8b57744fb916656bc64de78 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: failure.h,v 1.2 2000/08/26 18:27:17 marekm Exp $ */
+/* $Id: failure.h,v 1.3 2005/03/31 05:14:50 kloczek Exp $ */
 #ifndef _FAILURE_H_
 #define _FAILURE_H_
 
@@ -12,7 +12,7 @@
  *     failure() creates a new (struct faillog) entry or updates an
  *     existing one with the current failed login information.
  */
-extern void failure(uid_t, const char *, struct faillog *);
+extern void failure (uid_t, const char *, struct faillog *);
 
 /*
  * failcheck - check for failures > allowable
@@ -22,7 +22,7 @@ extern void failure(uid_t, const char *, struct faillog *);
  *     returns FALSE to indicate that the login should be denied even though
  *     the password is valid.
  */
-extern int failcheck(uid_t, struct faillog *, int);
+extern int failcheck (uid_t, struct faillog *, int);
 
 /*
  * failprint - print line of failure information
@@ -30,7 +30,7 @@ extern int failcheck(uid_t, struct faillog *, int);
  *     failprint takes a (struct faillog) entry and formats it into a
  *     message which is displayed at login time.
  */
-extern void failprint(const struct faillog *);
+extern void failprint (const struct faillog *);
 
 /*
  * failtmp - update the cummulative failure log
@@ -38,7 +38,6 @@ extern void failprint(const struct faillog *);
  *     failtmp updates the (struct utmp) formatted failure log which
  *     maintains a record of all login failures.
  */
-extern void failtmp(const struct utmp *);
+extern void failtmp (const struct utmp *);
 
 #endif
-
index 15a27f01de033836cfc2aee2bc5c17ce54f66a32..65a65ed2ca2acb5eba3543f5d24d44c9487305d8 100644 (file)
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875d.  */
+/* A Bison parser, made by GNU Bison 1.875c.  */
 
 /* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -347,7 +347,7 @@ typedef union YYSTYPE {
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  short int yyss;
+  short yyss;
   YYSTYPE yyvs;
   };
 
@@ -357,7 +357,7 @@ union yyalloc
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                    \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
       + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
@@ -399,7 +399,7 @@ union yyalloc
 #if defined (__STDC__) || defined (__cplusplus)
    typedef signed char yysigned_char;
 #else
-   typedef short int yysigned_char;
+   typedef short yysigned_char;
 #endif
 
 /* YYFINAL -- State number of the termination state. */
@@ -491,7 +491,7 @@ static const yysigned_char yyrhs[] =
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short int yyrline[] =
+static const unsigned short yyrline[] =
 {
        0,   191,   191,   192,   195,   198,   201,   204,   207,   210,
      213,   219,   225,   234,   240,   252,   255,   259,   264,   268,
@@ -518,7 +518,7 @@ static const char *const yytname[] =
 # ifdef YYPRINT
 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    token YYLEX-NUM.  */
-static const unsigned short int yytoknum[] =
+static const unsigned short yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,    58,
@@ -739,12 +739,12 @@ do {                                                              \
 
 #if defined (__STDC__) || defined (__cplusplus)
 static void
-yy_stack_print (short int *bottom, short int *top)
+yy_stack_print (short *bottom, short *top)
 #else
 static void
 yy_stack_print (bottom, top)
-    short int *bottom;
-    short int *top;
+    short *bottom;
+    short *top;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
@@ -1011,9 +1011,9 @@ yyparse ()
      to reallocate them elsewhere.  */
 
   /* The state stack.  */
-  short int yyssa[YYINITDEPTH];
-  short int *yyss = yyssa;
-  register short int *yyssp;
+  short        yyssa[YYINITDEPTH];
+  short *yyss = yyssa;
+  register short *yyssp;
 
   /* The semantic value stack.  */
   YYSTYPE yyvsa[YYINITDEPTH];
@@ -1050,7 +1050,6 @@ yyparse ()
   yyssp = yyss;
   yyvsp = yyvs;
 
-
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -1076,7 +1075,7 @@ yyparse ()
           these so that the &'s don't force the real ones into
           memory.  */
        YYSTYPE *yyvs1 = yyvs;
-       short int *yyss1 = yyss;
+       short *yyss1 = yyss;
 
 
        /* Each stack pointer address is followed by the size of the
@@ -1104,7 +1103,7 @@ yyparse ()
        yystacksize = YYMAXDEPTH;
 
       {
-       short int *yyss1 = yyss;
+       short *yyss1 = yyss;
        union yyalloc *yyptr =
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
@@ -1646,8 +1645,8 @@ yyreduce:
 
     }
 
-/* Line 1010 of yacc.c.  */
-#line 1651 "getdate.c"
+/* Line 1000 of yacc.c.  */
+#line 1650 "getdate.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
index 691a508fd0a71f8ec1fcacbf39fcdc456387f498..e136b388b0cd4d054b6ea224bb1e738e7cd5228f 100644 (file)
@@ -4,5 +4,5 @@
 #include <config.h>
 #include "defines.h"
 
-time_t get_date(const char *, const time_t *);
+time_t get_date (const char *, const time_t *);
 #endif
index eca1d7099958fb7fd202465e14df6c5c93f12ce5..2d2a22a7d70f734a289e2a429051e1873879de85 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: hushed.c,v 1.5 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: hushed.c,v 1.6 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include "defines.h"
@@ -64,8 +64,7 @@ int hushed (const struct passwd *pw)
         */
 
        if (hushfile[0] != '/') {
-               snprintf (buf, sizeof (buf), "%s/%s", pw->pw_dir,
-                         hushfile);
+               snprintf (buf, sizeof (buf), "%s/%s", pw->pw_dir, hushfile);
                return (access (buf, F_OK) == 0);
        }
 
@@ -80,8 +79,7 @@ int hushed (const struct passwd *pw)
        for (found = 0; !found && fgets (buf, sizeof buf, fp);) {
                buf[strlen (buf) - 1] = '\0';
                found = !strcmp (buf,
-                                buf[0] ==
-                                '/' ? pw->pw_shell : pw->pw_name);
+                                buf[0] == '/' ? pw->pw_shell : pw->pw_name);
        }
        (void) fclose (fp);
        return found;
index ad79467ca0687a5b23cac108ee23ab7aab762a65..7c8044de47adfad9dbe536339a30db7891b82019 100644 (file)
@@ -41,7 +41,7 @@
 #include <time.h>
 #include "rcsid.h"
 
-RCSID ("$Id: isexpired.c,v 1.11 2003/05/03 16:14:33 kloczek Exp $")
+RCSID ("$Id: isexpired.c,v 1.12 2005/03/31 05:14:50 kloczek Exp $")
 
 /*
  * isexpired - determine if account is expired yet
@@ -77,8 +77,7 @@ int isexpired (const struct passwd *pw, const struct spwd *sp)
         * if /etc/shadow doesn't exist, getspnam() still succeeds and
         * returns sp_lstchg==0 (must change password) instead of -1!
         */
-       if (sp->sp_lstchg == 0
-           && !strcmp (pw->pw_passwd, SHADOW_PASSWD_STRING))
+       if (sp->sp_lstchg == 0 && !strcmp (pw->pw_passwd, SHADOW_PASSWD_STRING))
                return 1;
 
        if (sp->sp_lstchg > 0 && sp->sp_max >= 0 && sp->sp_inact >= 0 &&
index 458d92b17708703b2ae4fe16926dd659f82dc07e..c19d7eb66dc60f99b3b6b1547eee60f4669f5bf2 100644 (file)
 
 #include <config.h>
 
+#ifndef USE_PAM
+
 #include "rcsid.h"
-RCSID ("$Id: limits.c,v 1.14 2003/05/05 21:44:15 kloczek Exp $")
+RCSID ("$Id: limits.c,v 1.16 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -248,8 +250,7 @@ static int do_user_limits (const char *buf, const char *name)
                case 'm':
                case 'M':
                        /* RLIMIT_MEMLOCK - max locked-in-memory address space (KB) */
-                       retval |=
-                           setrlimit_value (RLIMIT_MEMLOCK, pp, 1024);
+                       retval |= setrlimit_value (RLIMIT_MEMLOCK, pp, 1024);
                        break;
 #endif
 #ifdef RLIMIT_NOFILE
@@ -398,8 +399,7 @@ void setup_limits (const struct passwd *info)
                                exit (1);
                        }
 #endif
-               for (cp = info->pw_gecos; cp != NULL;
-                    cp = strchr (cp, ',')) {
+               for (cp = info->pw_gecos; cp != NULL; cp = strchr (cp, ',')) {
                        if (*cp == ',')
                                cp++;
 
@@ -424,3 +424,5 @@ void setup_limits (const struct passwd *info)
                }
        }
 }
+
+#endif                         /* !USE_PAM */
index 1ad2a16c292bc490e50ee8eebe4025a54c71ea6b..22119f28f8e4586abb48c2f6bad7903fcb51f118 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: log.c,v 1.7 2003/12/17 12:52:25 kloczek Exp $")
+RCSID ("$Id: log.c,v 1.9 2005/04/02 11:31:39 kloczek Exp $")
 #include <sys/types.h>
 #include <pwd.h>
 #include <fcntl.h>
 #include <time.h>
 #include "defines.h"
-#if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
-#endif
 /* 
  * dolastlog - create lastlog entry
  *
@@ -89,6 +85,7 @@ dolastlog (struct lastlog *ll, const struct passwd *pw, const char *line,
 
        ll_time = newlog.ll_time;
        time (&ll_time);
+       newlog.ll_time = ll_time;
        strncpy (newlog.ll_line, line, sizeof newlog.ll_line);
 #if HAVE_LL_HOST
        strncpy (newlog.ll_host, host, sizeof newlog.ll_host);
diff --git a/libmisc/login_desrpc.c b/libmisc/login_desrpc.c
deleted file mode 100644 (file)
index 8041185..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Taken from logdaemon-5.0, only minimal changes.  --marekm */
-
-/************************************************************************
-* Copyright 1995 by Wietse Venema.  All rights reserved. Individual files
-* may be covered by other copyrights (as noted in the file itself.)
-*
-* This material was originally written and compiled by Wietse Venema at
-* Eindhoven University of Technology, The Netherlands, in 1990, 1991,
-* 1992, 1993, 1994 and 1995.
-*
-* Redistribution and use in source and binary forms are permitted
-* provided that this entire copyright notice is duplicated in all such
-* copies.  
-*
-* This software is provided "as is" and without any expressed or implied
-* warranties, including, without limitation, the implied warranties of
-* merchantibility and fitness for any particular purpose.
-************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef DES_RPC
-#include "rcsid.h"
-RCSID ("$Id: login_desrpc.c,v 1.8 2003/04/22 10:59:22 kloczek Exp $")
-#include "defines.h"
-    /*
-     * Decrypt the user's secret secure RPC key and stores it into the
-     * keyserver. Returns 0 if successful, -1 on failure.
-     * 
-     * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
-     */
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <rpc/key_prot.h>
-#if !(defined __GLIBC__ && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 0)))
-/* these don't seem to be in any header file (libc-5.4.33) */
-/* but will be in glibc 2.1 <rpc/auth.h> and <rpc/auth_des.h> */
-extern int getnetname (char *);
-extern int getsecretkey (const char *, char *, const char *);
-extern int key_setsecret (const char *);
-#endif
-
-int login_desrpc (const char *passwd)
-{
-       char netname[MAXNETNAMELEN + 1];
-       char secretkey[HEXKEYBYTES + 1];
-
-       if (getnetname (netname) == 0)
-               return -1;
-
-       if (getsecretkey (netname, secretkey, passwd) == 0)
-               return -1;
-
-       if (secretkey[0] == 0) {
-               fprintf (stderr,
-                        _
-                        ("Password does not decrypt secret key for %s.\n"),
-                        netname);
-               return -1;
-       }
-       if (key_setsecret (secretkey) < 0) {
-               fprintf (stderr,
-                        _
-                        ("Could not set %s's secret key: is the keyserv daemon running?\n"),
-                        netname);
-               return -1;
-       }
-       return 0;
-}
-#else
-extern int errno;              /* warning: ANSI C forbids an empty source file */
-#endif
diff --git a/libmisc/login_krb.c b/libmisc/login_krb.c
deleted file mode 100644 (file)
index 93ca578..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Taken from logdaemon-5.0, only minimal changes.  --marekm */
-
-/************************************************************************
-* Copyright 1995 by Wietse Venema.  All rights reserved. Individual files
-* may be covered by other copyrights (as noted in the file itself.)
-*
-* This material was originally written and compiled by Wietse Venema at
-* Eindhoven University of Technology, The Netherlands, in 1990, 1991,
-* 1992, 1993, 1994 and 1995.
-*
-* Redistribution and use in source and binary forms are permitted
-* provided that this entire copyright notice is duplicated in all such
-* copies.  
-*
-* This software is provided "as is" and without any expressed or implied
-* warranties, including, without limitation, the implied warranties of
-* merchantibility and fitness for any particular purpose.
-************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef KERBEROS
-#include "rcsid.h"
-RCSID ("$Id: login_krb.c,v 1.4 2003/04/22 10:59:22 kloczek Exp $")
-#include <krb.h>
-    /*
-     * Do an equivalent to kinit here. We need to do the kinit before trying to
-     * cd to the home directory, because it might be on a remote filesystem that
-     * uses Kerberos authentication. We also need to do this after we've
-     * setuid() to the user, or krb_get_pw_in_tkt() won't know where to put the
-     * ticket.
-     * 
-     * We don't really care about whether or not it succeeds; if it fails, we'll
-     * just carry on bravely.
-     * 
-     * NB: we assume: local realm, same username and password as supplied to login.
-     * 
-     * Security note: if pp is NULL, login doesn't have the password. This is
-     * common when it's called by rlogind. Since this is almost always a remote
-     * connection, we don't want to risk asking for the password by supplying a
-     * NULL pp to krb_get_pw_in_tkt(), because somebody could be listening. So
-     * we'll just forget the whole thing.  -jdd
-     */
-int login_kerberos (const char *username, const char *password)
-{
-       char realm[REALM_SZ];
-
-       (void) krb_get_lrealm (realm, 1);
-       if (password != 0)
-               (void) krb_get_pw_in_tkt (username, "", realm, "krbtgt",
-                                         realm, DEFAULT_TKT_LIFE,
-                                         password);
-}
-#else
-extern int errno;              /* warning: ANSI C forbids an empty source file */
-#endif                         /* KERBEROS */
index 5863259fe95b464dc3ac049b8d75162977b10c6b..b501e6ab3051e8877b4e33a05cd215f7dbbeb361 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: loginprompt.c,v 1.7 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: loginprompt.c,v 1.8 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include <signal.h>
 #include <ctype.h>
@@ -144,8 +144,7 @@ void login_prompt (const char *prompt, char *name, int namesize)
                                envp[envc] = nvar;
                        } else {
                                envp[envc] = xmalloc (strlen (nvar) + 32);
-                               sprintf (envp[envc], "L%d=%s", count++,
-                                        nvar);
+                               sprintf (envp[envc], "L%d=%s", count++, nvar);
                        }
                }
                set_env (envc, envp);
index 2d47f3b761df73bba4519952f5fbb755ba849c61..7c26f54c1964b9b30abce94817610e51f2e0b726 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: motd.c,v 1.4 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: motd.c,v 1.5 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include "prototypes.h"
 #include "defines.h"
@@ -54,8 +54,7 @@ void motd (void)
        strncpy (motdlist, mb, sizeof (motdlist));
        motdlist[sizeof (motdlist) - 1] = '\0';
 
-       for (mb = motdlist; (motdfile = strtok (mb, ":")) != NULL;
-            mb = NULL) {
+       for (mb = motdlist; (motdfile = strtok (mb, ":")) != NULL; mb = NULL) {
                if ((fp = fopen (motdfile, "r")) != NULL) {
                        while ((c = getc (fp)) != EOF)
                                putchar (c);
index e3f8ee2895865522665c6cfcfe8d4042af94ef7f..092a93ae9b4443953bfa08ce6faae420120fae8c 100644 (file)
 
 #include <config.h>
 
+#ifndef USE_PAM
+
 #include "rcsid.h"
-RCSID ("$Id: obscure.c,v 1.11 2003/05/05 21:44:15 kloczek Exp $")
+RCSID ("$Id: obscure.c,v 1.12 2005/03/24 04:29:23 kloczek Exp $")
 
 /*
  * This version of obscure.c contains modifications to support "cracklib"
@@ -273,3 +275,5 @@ int obscure (const char *old, const char *new, const struct passwd *pwdp)
        }
        return 1;
 }
+
+#endif                         /* !USE_PAM */
index dfd8bdffe387e34b12aa78d3d88c5d9aad77c6ae..2a50ed1457fba4daa6bd726550b6abf1e2f78f0e 100644 (file)
@@ -3,7 +3,7 @@
 #ifdef USE_PAM
 
 #include "rcsid.h"
-RCSID ("$Id: pam_pass.c,v 1.9 2003/07/29 09:05:39 kloczek Exp $")
+RCSID ("$Id: pam_pass.c,v 1.10 2005/03/31 05:14:50 kloczek Exp $")
 
 /*
  * Change the user's password using PAM.  Requires libpam and libpam_misc
@@ -41,13 +41,12 @@ void do_pam_passwd (const char *user, int silent, int change_expired)
 
        ret = pam_chauthtok (pamh, flags);
        if (ret != PAM_SUCCESS) {
-               fprintf (stderr, _("passwd: %s\n"),
-                        pam_strerror (pamh, ret));
+               fprintf (stderr, _("passwd: %s\n"), pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                exit (10);      /* XXX */
        }
 
-       fputs(_("passwd: password updated successfully\n"), stderr);
+       fputs (_("passwd: password updated successfully\n"), stderr);
        pam_end (pamh, PAM_SUCCESS);
 }
 #else                          /* !USE_PAM */
index 797960f802c8f0f99cfe3b55524ffb5f0d2f9ecf..80582a68ea695fb63b7478dc2d5d3cee426f59b8 100644 (file)
@@ -1,7 +1,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: pwdcheck.c,v 1.4 2004/11/02 18:46:30 kloczek Exp $")
+RCSID ("$Id: pwdcheck.c,v 1.5 2005/03/31 05:14:50 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <pwd.h>
@@ -13,8 +13,7 @@ RCSID ("$Id: pwdcheck.c,v 1.4 2004/11/02 18:46:30 kloczek Exp $")
 #include "pam_defs.h"
 #endif
 #define WRONGPWD2      "incorrect password for `%s'"
-void
-passwd_check (const char *user, const char *passwd, const char *progname)
+void passwd_check (const char *user, const char *passwd, const char *progname)
 {
 #ifdef USE_PAM
        pam_handle_t *pamh = NULL;
index a63cda95852b2578ab88ed8cd36c09ad9bab6f72..ec7ff2c46f0a3a00f12104a776d4952969c7dd3e 100644 (file)
 #ifdef RLOGIN
 
 #include "rcsid.h"
-RCSID ("$Id: rlogin.c,v 1.7 2005/01/20 12:47:20 kloczek Exp $")
+RCSID ("$Id: rlogin.c,v 1.9 2005/03/31 05:14:50 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <stdio.h>
 #include <pwd.h>
-#include <unistd.h>
-
+#include <netdb.h>
 static struct {
        int spd_name;
        int spd_baud;
index fafa429ed9a1e3daddc89e6ab78f968138a68274..b198ee6feceb1f6bfa96a4eaa1b7570f70b93c91 100644 (file)
@@ -8,13 +8,12 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: salt.c,v 1.6 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: salt.c,v 1.7 2005/04/06 00:21:37 kloczek Exp $")
+#include <sys/time.h>
+#include <stdlib.h>
 #include "prototypes.h"
 #include "defines.h"
-#include <sys/time.h>
-#if 1
 #include "getdef.h"
-extern char *l64a ();
 
 /*
  * Generate 8 base64 ASCII characters of random salt.  If MD5_CRYPT_ENAB
@@ -44,21 +43,3 @@ char *crypt_make_salt (void)
 
        return result;
 }
-#else
-/*
- * This is the old style random salt generator...
- */
-char *crypt_make_salt (void)
-{
-       time_t now;
-       static unsigned long x;
-       static char result[3];
-
-       time (&now);
-       x += now + getpid () + clock ();
-       result[0] = i64c (((x >> 18) ^ (x >> 6)) & 077);
-       result[1] = i64c (((x >> 12) ^ x) & 077);
-       result[2] = '\0';
-       return result;
-}
-#endif
index 030975e0d8e5e4d94c84b5fb09e5beb84190c39d..9eadc564cfa5759648f19d5626cfa24402f56658 100644 (file)
@@ -34,7 +34,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: setugid.c,v 1.7 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: setugid.c,v 1.9 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include <grp.h>
 #include "prototypes.h"
@@ -80,12 +80,7 @@ int change_uid (const struct passwd *info)
        /*
         * Set the real UID to the UID value in the password file.
         */
-#ifndef        BSD
-       if (setuid (info->pw_uid))
-#else
-       if (setreuid (info->pw_uid, info->pw_uid))
-#endif
-       {
+       if (setuid (info->pw_uid)) {
                perror ("setuid");
                SYSLOG ((LOG_ERR, "bad user ID `%d' for user `%s': %m\n",
                         (int) info->pw_uid, info->pw_name));
index fff04366dbb96d0232ca8f82b7678e841cf31e6b..6b7e97bdb888090502114f7ac6237ab23c59fc8f 100644 (file)
@@ -34,7 +34,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: setupenv.c,v 1.13 2003/05/05 21:44:15 kloczek Exp $")
+RCSID ("$Id: setupenv.c,v 1.14 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -44,8 +44,7 @@ RCSID ("$Id: setupenv.c,v 1.13 2003/05/05 21:44:15 kloczek Exp $")
 #include <pwd.h>
 #include "getdef.h"
 static void
-addenv_path (const char *varname, const char *dirname,
-            const char *filename)
+addenv_path (const char *varname, const char *dirname, const char *filename)
 {
        char *buf;
 
index 3ea6e5d1d513404668a546ed34ddd02b236e0295..08095b1d52eec0fdd34be6cbc84cf5e021e48086 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: shell.c,v 1.9 2003/05/05 21:49:56 kloczek Exp $")
+RCSID ("$Id: shell.c,v 1.10 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include <errno.h>
 #include "prototypes.h"
@@ -67,8 +67,7 @@ void shell (const char *file, const char *arg)
         */
 
        if (arg == (char *) 0) {
-               snprintf (arg0, sizeof arg0, "-%s",
-                         Basename ((char *) file));
+               snprintf (arg0, sizeof arg0, "-%s", Basename ((char *) file));
                arg = arg0;
        }
 #ifdef DEBUG
index 3dd51b8fde5d1d6c0cc8437e1ccbfc76fa21f091..4a220f45d28be6d269d70a57c3a02e395d2f44db 100644 (file)
@@ -34,7 +34,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: strtoday.c,v 1.9 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: strtoday.c,v 1.10 2005/03/31 05:14:50 kloczek Exp $")
 #include "defines.h"
 #ifndef USE_GETDATE
 #define USE_GETDATE 1
@@ -190,8 +190,7 @@ long strtoday (const char *str)
         */
 
        total = (long) ((year - 1970) * 365L) + (((year + 1) - 1970) / 4);
-       total += (long) juldays[month] + (month > 2
-                                         && (year % 4) == 0 ? 1 : 0);
+       total += (long) juldays[month] + (month > 2 && (year % 4) == 0 ? 1 : 0);
        total += (long) day - 1;
 
        return total;
index 3ed429fefb8f489c68daeb34744db3876da74307..3a5fa916b89cf02e5a46c43af198e599f616369f 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: sulog.c,v 1.7 2003/04/22 10:59:22 kloczek Exp $")
+RCSID ("$Id: sulog.c,v 1.8 2005/03/31 05:14:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -41,8 +41,7 @@ RCSID ("$Id: sulog.c,v 1.7 2003/04/22 10:59:22 kloczek Exp $")
 /*
  * sulog - log a SU command execution result
  */
-void
-sulog (const char *tty, int success, const char *oldname, const char *name)
+void sulog (const char *tty, int success, const char *oldname, const char *name)
 {
        char *sulog_file;
        time_t now;
index f2f8a01c3b0439248de4112c5033faf65e676e66..56250a3c9870c58dbdd99249efdbb78fdb7fcc9b 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: ttytype.c,v 1.7 2004/08/18 09:53:58 kloczek Exp $")
+RCSID ("$Id: ttytype.c,v 1.9 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include "prototypes.h"
 #include "defines.h"
 #include "getdef.h"
-
 /*
  * ttytype - set ttytype from port to terminal type mapping database
  */
-
 void ttytype (const char *line)
 {
        FILE *fp;
@@ -67,16 +65,9 @@ void ttytype (const char *line)
                if ((cp = strchr (buf, '\n')))
                        *cp = '\0';
 
-#if defined(SUN) || defined(BSD) || defined(SUN4)
-               if ((sscanf (buf, "%s \"%*[^\"]\" %s", port, type) == 2 ||
-                    sscanf (buf, "%s %*s %s", port, type) == 2) &&
-                   strcmp (line, port) == 0)
-                       break;
-#else                          /* USG */
                if (sscanf (buf, "%s %s", type, port) == 2 &&
                    strcmp (line, port) == 0)
                        break;
-#endif
        }
        if (!feof (fp) && !ferror (fp))
                addenv ("TERM", type);
index dffb69efbee80d4cc7524cabd2c4ca9837fd40b4..da810dd975cef909f66349424c68bd6bf0e6e13d 100644 (file)
@@ -41,7 +41,7 @@
 #include <stdio.h>
 
 #include "rcsid.h"
-RCSID ("$Id: utmp.c,v 1.14 2003/12/17 12:52:25 kloczek Exp $")
+RCSID ("$Id: utmp.c,v 1.15 2005/03/31 05:14:50 kloczek Exp $")
 #if HAVE_UTMPX_H
 struct utmpx utxent;
 #endif
@@ -108,8 +108,7 @@ void checkutmp (int picky)
                utent.ut_pid = pid;
                strncpy (utent.ut_line, line, sizeof utent.ut_line);
                /* XXX - assumes /dev/tty?? */
-               strncpy (utent.ut_id, utent.ut_line + 3,
-                        sizeof utent.ut_id);
+               strncpy (utent.ut_id, utent.ut_line + 3, sizeof utent.ut_id);
                strcpy (utent.ut_user, "LOGIN");
                utent.ut_time = time (NULL);
        }
@@ -175,11 +174,9 @@ void checkutmp (int picky)
                        }
                        if (strncmp (line, "/dev/", 5) == 0)
                                line += 5;
-                       strncpy (utent.ut_line, line,
-                                sizeof utent.ut_line);
+                       strncpy (utent.ut_line, line, sizeof utent.ut_line);
 #if HAVE_UTMPX_H
-                       strncpy (utxent.ut_line, line,
-                                sizeof utxent.ut_line);
+                       strncpy (utxent.ut_line, line, sizeof utxent.ut_line);
 #endif
                }
        } else {
@@ -201,15 +198,13 @@ void checkutmp (int picky)
 #if HAVE_UTMPX_H
                strncpy (utxent.ut_line, line, sizeof utxent.ut_line);
                if ((utx = getutxline (&utxent)))
-                       strncpy (utxent.ut_id, utx->ut_id,
-                                sizeof utxent.ut_id);
+                       strncpy (utxent.ut_id, utx->ut_id, sizeof utxent.ut_id);
 
                strcpy (utxent.ut_user, "LOGIN");
                utxent.ut_pid = utent.ut_pid;
                utxent.ut_type = utent.ut_type;
                if (sizeof (utxent.ut_tv) == sizeof (struct timeval))
-                       gettimeofday ((struct timeval *) &utxent.ut_tv,
-                                     NULL);
+                       gettimeofday ((struct timeval *) &utxent.ut_tv, NULL);
                else {
                        struct timeval tv;
 
@@ -393,8 +388,7 @@ void setutmp (const char *name, const char *line, const char *host)
        }
        utline.ut_time = utxline.ut_tv.tv_sec;
 
-       strncpy (utxline.ut_host, host ? host : "",
-                sizeof utxline.ut_host);
+       strncpy (utxline.ut_host, host ? host : "", sizeof utxline.ut_host);
 
        pututxline (&utxline);
        pututline (&utline);
index 56594da2a1110c905500b6a4e684885c67c66d68..d21592cc4f11f16bf4b77959269a1ae23c4aada2 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID ("$Id: xmalloc.c,v 1.5 2004/05/06 21:31:33 kloczek Exp $")
+RCSID ("$Id: xmalloc.c,v 1.6 2005/03/31 05:14:50 kloczek Exp $")
 #include <stdio.h>
 #include "defines.h"
-
 char *xmalloc (size_t size)
 {
        char *ptr;
index 12f39abc3a6780a0d1983c547fe28f68f45b54c9..23f82e3b79cf555dc49c69f5ec241a587987918e 100644 (file)
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -33,6 +33,9 @@ basename="s,^.*/,,g"
 # function.
 progpath="$0"
 
+# RH: define SED for historic ltconfig's generated by Libtool 1.3
+[ -z "$SED" ] && SED=sed
+
 # The name of this program:
 progname=`echo "$progpath" | $SED $basename`
 modename="$progname"
@@ -43,14 +46,9 @@ EXIT_FAILURE=1
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=1.5.10
-TIMESTAMP=" (1.1220.2.131 2004/09/19 12:46:56)"
+VERSION=1.5.6
+TIMESTAMP=" (1.1220.2.95 2004/04/11 05:50:42)"
 
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes.
-if test -n "${ZSH_VERSION+set}" ; then
-  setopt NO_GLOB_SUBST
-fi
 
 # Check that we have a working $echo.
 if test "X$1" = X--no-reexec; then
@@ -240,122 +238,6 @@ func_infer_tag () {
       esac
     fi
 }
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives () {
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-    my_status=""
-
-    $show "${rm}r $my_gentop"
-    $run ${rm}r "$my_gentop"
-    $show "$mkdir $my_gentop"
-    $run $mkdir "$my_gentop"
-    my_status=$?
-    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
-      exit $my_status
-    fi
-
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-       *) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-      my_xdir="$my_gentop/$my_xlib"
-
-      $show "${rm}r $my_xdir"
-      $run ${rm}r "$my_xdir"
-      $show "$mkdir $my_xdir"
-      $run $mkdir "$my_xdir"
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
-       exit $status
-      fi
-      case $host in
-      *-darwin*)
-       $show "Extracting $my_xabs"
-       # Do not bother doing anything if just a dry run
-       if test -z "$run"; then
-         darwin_orig_dir=`pwd`
-         cd $my_xdir || exit $?
-         darwin_archive=$my_xabs
-         darwin_curdir=`pwd`
-         darwin_base_archive=`basename $darwin_archive`
-         darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
-         if test -n "$darwin_arches"; then 
-           darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
-           darwin_arch=
-           $show "$darwin_base_archive has multiple architectures $darwin_arches"
-           for darwin_arch in  $darwin_arches ; do
-             mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-             # Remove the table of contents from the thin files.
-             $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true
-             $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true
-             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             $AR -xo "${darwin_base_archive}"
-             rm "${darwin_base_archive}"
-             cd "$darwin_curdir"
-           done # $darwin_arches
-      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP`
-           darwin_file=
-           darwin_files=
-           for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-             lipo -create -output "$darwin_file" $darwin_files
-           done # $darwin_filelist
-           rm -rf unfat-$$
-           cd "$darwin_orig_dir"
-         else
-           cd $darwin_orig_dir
-           (cd $my_xdir && $AR x $my_xabs) || exit $?
-         fi # $darwin_arches
-       fi # $run
-      ;;
-      *)
-       # We will extract separately just the conflicting names and we will
-       # no longer touch any unique names. It is faster to leave these
-       # extract automatically by $AR in one run.
-       $show "(cd $my_xdir && $AR x $my_xabs)"
-       $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $?
-       if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then
-         :
-       else
-         $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-         $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-         $AR t "$my_xabs" | sort | uniq -cd | while read -r count name
-         do
-           i=1
-           while test "$i" -le "$count"
-           do
-             # Put our $i before any first dot (extension)
-             # Never overwrite any file
-             name_to="$name"
-             while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to"
-             do
-               name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-             done
-             $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')"
-             $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $?
-             i=`expr $i + 1`
-           done
-         done
-       fi
-       ;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-    done
-
-    func_extract_archives_result="$my_oldobjs"
-}
 # End of Shell function definitions
 #####################################
 
@@ -2099,22 +1981,7 @@ EOF
          fi
          case $linkmode in
          lib)
-           valid_a_lib=no
-           case $deplibs_check_method in
-             match_pattern*)
-               set dummy $deplibs_check_method
-               match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-               if eval $echo \"$deplib\" 2>/dev/null \
-                   | $SED 10q \
-                   | $EGREP "$match_pattern_regex" > /dev/null; then
-                 valid_a_lib=yes
-               fi
-               ;;
-             pass_all)
-               valid_a_lib=yes
-               ;;
-            esac
-           if test "$valid_a_lib" != yes; then
+           if test "$deplibs_check_method" != pass_all; then
              $echo
              $echo "*** Warning: Trying to link with static lib archive $deplib."
              $echo "*** I have the capability to make that library automatically link in when"
@@ -2287,17 +2154,10 @@ EOF
            absdir="$libdir"
          fi
        else
-         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           dir="$ladir"
-           absdir="$abs_ladir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         else
-           dir="$ladir/$objdir"
-           absdir="$abs_ladir/$objdir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         fi
+         dir="$ladir/$objdir"
+         absdir="$abs_ladir/$objdir"
+         # Remove this search path later
+         notinst_path="$notinst_path $abs_ladir"
        fi # $installed = yes
        name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
@@ -2518,7 +2378,6 @@ EOF
 
          if test "$linkmode" = prog || test "$mode" != relink; then
            add_shlibpath=
-           add_prefix_dir=
            add_dir=
            add=
            lib_linked=yes
@@ -2644,22 +2503,10 @@ EOF
              add="-l$name"
            fi
 
-           if test -n "$inst_prefix_dir"; then
-             case "$libdir" in
-             [\\/]*)
-               add_prefix_dir="-L$inst_prefix_dir$libdir"
-               ;;
-             esac
-           fi
-  
-           # add_prefix_dir must be appended instead, otherwise it can
-           # possibly be overrided by any hardcoded -L/... path in deplibs
            if test "$linkmode" = prog; then
-             test -n "$add_prefix_dir" && finalize_deplibs="$finalize_deplibs $add_prefix_dir"
              test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
              test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
-             test -n "$add_prefix_dir" && deplibs="$deplibs $add_prefix_dir"
              test -n "$add_dir" && deplibs="$add_dir $deplibs"
              test -n "$add" && deplibs="$add $deplibs"
            fi
@@ -3097,7 +2944,7 @@ EOF
 
        # Check that each of the things are valid numbers.
        case $current in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+       [0-9]*) ;;
        *)
          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
@@ -3106,7 +2953,7 @@ EOF
        esac
 
        case $revision in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+       [0-9]*) ;;
        *)
          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
@@ -3115,7 +2962,7 @@ EOF
        esac
 
        case $age in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+       [0-9]*) ;;
        *)
          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
          $echo "$modename: \`$vinfo' is not valid version information" 1>&2
@@ -3143,7 +2990,7 @@ EOF
          versuffix="$major.$age.$revision"
          # Darwin ld doesn't like 0 for these options...
          minor_current=`expr $current + 1`
-         verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
          ;;
 
        freebsd-aout)
@@ -3831,13 +3678,67 @@ EOF
            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
          else
            gentop="$output_objdir/${outputname}x"
+           $show "${rm}r $gentop"
+           $run ${rm}r "$gentop"
+           $show "$mkdir $gentop"
+           $run $mkdir "$gentop"
+           status=$?
+           if test "$status" -ne 0 && test ! -d "$gentop"; then
+             exit $status
+           fi
            generated="$generated $gentop"
 
-           func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
+           for xlib in $convenience; do
+             # Extract the objects.
+             case $xlib in
+             [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+             *) xabs=`pwd`"/$xlib" ;;
+             esac
+             xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+             xdir="$gentop/$xlib"
+
+             $show "${rm}r $xdir"
+             $run ${rm}r "$xdir"
+             $show "$mkdir $xdir"
+             $run $mkdir "$xdir"
+             status=$?
+             if test "$status" -ne 0 && test ! -d "$xdir"; then
+               exit $status
+             fi
+             # We will extract separately just the conflicting names and we will no
+             # longer touch any unique names. It is faster to leave these extract
+             # automatically by $AR in one run.
+             $show "(cd $xdir && $AR x $xabs)"
+             $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+             if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+               :
+             else
+               $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+               $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+               $AR t "$xabs" | sort | uniq -cd | while read -r count name
+               do
+                 i=1
+                 while test "$i" -le "$count"
+                 do
+                  # Put our $i before any first dot (extension)
+                  # Never overwrite any file
+                  name_to="$name"
+                  while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+                  do
+                    name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+                  done
+                  $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+                  $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+                  i=`expr $i + 1`
+                 done
+               done
+             fi
+
+             libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+           done
          fi
        fi
-       
+
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
          linker_flags="$linker_flags $flag"
@@ -4075,10 +3976,64 @@ EOF
          eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
        else
          gentop="$output_objdir/${obj}x"
+         $show "${rm}r $gentop"
+         $run ${rm}r "$gentop"
+         $show "$mkdir $gentop"
+         $run $mkdir "$gentop"
+         status=$?
+         if test "$status" -ne 0 && test ! -d "$gentop"; then
+           exit $status
+         fi
          generated="$generated $gentop"
 
-         func_extract_archives $gentop $convenience
-         reload_conv_objs="$reload_objs $func_extract_archives_result"
+         for xlib in $convenience; do
+           # Extract the objects.
+           case $xlib in
+           [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+           *) xabs=`pwd`"/$xlib" ;;
+           esac
+           xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+           xdir="$gentop/$xlib"
+
+           $show "${rm}r $xdir"
+           $run ${rm}r "$xdir"
+           $show "$mkdir $xdir"
+           $run $mkdir "$xdir"
+           status=$?
+           if test "$status" -ne 0 && test ! -d "$xdir"; then
+             exit $status
+           fi
+           # We will extract separately just the conflicting names and we will no
+           # longer touch any unique names. It is faster to leave these extract
+           # automatically by $AR in one run.
+           $show "(cd $xdir && $AR x $xabs)"
+           $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+           if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+             :
+           else
+             $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+             $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+             $AR t "$xabs" | sort | uniq -cd | while read -r count name
+             do
+               i=1
+               while test "$i" -le "$count"
+               do
+                # Put our $i before any first dot (extension)
+                # Never overwrite any file
+                name_to="$name"
+                while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+                do
+                  name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+                done
+                $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+                $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+                i=`expr $i + 1`
+               done
+             done
+           fi
+
+           reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+         done
        fi
       fi
 
@@ -4859,7 +4814,7 @@ sed_quote_subst='$sed_quote_subst'
 
 # The HP-UX ksh and POSIX shell print the target directory to stdout
 # if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
 
 relink_command=\"$relink_command\"
 
@@ -5036,10 +4991,65 @@ fi\
 
       if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"
+       $show "${rm}r $gentop"
+       $run ${rm}r "$gentop"
+       $show "$mkdir $gentop"
+       $run $mkdir "$gentop"
+       status=$?
+       if test "$status" -ne 0 && test ! -d "$gentop"; then
+         exit $status
+       fi
        generated="$generated $gentop"
 
-       func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
+       # Add in members from convenience archives.
+       for xlib in $addlibs; do
+         # Extract the objects.
+         case $xlib in
+         [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+         *) xabs=`pwd`"/$xlib" ;;
+         esac
+         xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+         xdir="$gentop/$xlib"
+
+         $show "${rm}r $xdir"
+         $run ${rm}r "$xdir"
+         $show "$mkdir $xdir"
+         $run $mkdir "$xdir"
+         status=$?
+         if test "$status" -ne 0 && test ! -d "$xdir"; then
+           exit $status
+         fi
+         # We will extract separately just the conflicting names and we will no
+         # longer touch any unique names. It is faster to leave these extract
+         # automatically by $AR in one run.
+         $show "(cd $xdir && $AR x $xabs)"
+         $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+         if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+           :
+         else
+           $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+           $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+           $AR t "$xabs" | sort | uniq -cd | while read -r count name
+           do
+             i=1
+             while test "$i" -le "$count"
+             do
+              # Put our $i before any first dot (extension)
+              # Never overwrite any file
+              name_to="$name"
+              while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+              do
+                name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+              done
+              $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+              $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+              i=`expr $i + 1`
+             done
+           done
+         fi
+
+         oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+       done
       fi
 
       # Do each command in the archive commands.
@@ -5684,13 +5694,9 @@ relink_command=\"$relink_command\""
            if test "$finalize" = yes && test -z "$run"; then
              tmpdir="/tmp"
              test -n "$TMPDIR" && tmpdir="$TMPDIR"
+             tmpdir="$tmpdir/libtool-$$"
              save_umask=`umask`
              umask 0077
-              tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
-              if test $? = 0 ; then :
-              else
-                tmpdir="$tmpdir/libtool-$$"
-              fi
              if $mkdir "$tmpdir"; then
                umask $save_umask
              else
index 278377045779ad0395758908518b2043da191344..9e52c3b0f318637eac51f592703eaaa4b925a2f2 100644 (file)
@@ -19,6 +19,7 @@ man_MANS = \
        grpck.8 \
        grpconv.8 \
        grpunconv.8 \
+       gshadow.5 \
        lastlog.8 \
        limits.5 \
        login.1 \
index c1d8be61ed7bd995602446150668efaf142f2106..245a11a95254b60b4e777fdbb4d3ce3b69e54f0e 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -99,17 +99,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -203,6 +202,7 @@ man_MANS = \
        grpck.8 \
        grpconv.8 \
        grpunconv.8 \
+       gshadow.5 \
        lastlog.8 \
        limits.5 \
        login.1 \
@@ -247,9 +247,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/Makefile
+         $(AUTOMAKE) --foreign  man/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -465,7 +465,13 @@ uninstall-man8:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -477,7 +483,7 @@ $(RECURSIVE_TARGETS):
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -485,7 +491,13 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-       @set fnord $$MAKEFLAGS; amf=$$2; \
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
        dot_seen=no; \
        case "$@" in \
          distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -506,7 +518,7 @@ maintainer-clean-recursive:
            local_target="$$target"; \
          fi; \
          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+         || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
index 69564d83ba1300b1704432d035483f49b7982ed9..57c89dd2936729a5cd06129718b789034b2c7fbd 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chage.1,v 1.15 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: chage.1,v 1.24 2005/04/25 15:15:17 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 chage \- change user password expiry information
 .SH SYNOPSIS
 .TP 6
-\fBchage\fR
-[\fB-m \fImindays\fR] [\fB-M \fImaxdays\fR]
-[\fB-d \fIlastday\fR] [\fB-I \fIinactive\fR]
-.br
-[\fB-E \fIexpiredate\fR] [\fB-W \fIwarndays\fR] \fIuser\fR
+\fBchage\fR [\fB\-m\fR \fImindays\fR] [\fB\-M\fR \fImaxdays\fR] [\fB\-d\fR \fIlastday\fR] [\fB\-I\fR \fIinactive\fR]
+[\fB\-E\fR \fIexpiredate\fR] [\fB\-W\fR \fIwarndays\fR] \fIuser\fR
 .TP 6
-\fBchage\fR
-\fB-l \fIuser\fR
+\fBchage\fR \fB\-l\fR \fIuser\fR
 .SH DESCRIPTION
-\fBchage\fR changes the number of days between password changes and the date
-of the last password change. This information is used by the system to
-determine when a user must change her password.
+\fBchage\fR command changes the number of days between password changes and
+the date of the last password change. This information is used by the system
+to determine when a user must change her password.
 .PP
 The \fBchage\fR command is restricted to the root user, except for the
-\fB-l\fR option, which may be used by an unprivileged user to determine
+\fB\-l\fR option, which may be used by an unprivileged user to determine
 when her password or account is due to expire.
 .SH OPTIONS
 The options which apply to the \fBchage\fR command are:
-.IP "\fB-d\fR \fIlastday\fR"
+.IP "\fB\-d\fR \fIlastday\fR"
 Set the number of days since January 1st, 1970 when the password was last
-changed. The date may also be expressed in the format YYYY-MM-DD (or the
+changed. The date may also be expressed in the format YYYY\-MM\-DD (or the
 format more commonly used in your area).
-.IP "\fB-E\fR \fIexpiredate\fR"
+.IP "\fB\-E\fR \fIexpiredate\fR"
 Set the date on which the user's account will no longer be accessible. The
 \fIexpiredate\fR option is the number of days since January 1, 1970 on which
 the accounted is locked. The date may also be expressed in the format
-YYYY-MM-DD (or the format more commonly used in your area). A user whose
+YYYY\-MM\-DD (or the format more commonly used in your area). A user whose
 account is locked must contact the system administrator before being able to
-use the system again.
-.IP "\fB-I\fR \fIinactive\fR"
+use the system again. Passing the number \fI-1\fR as the \fIexpiredate\fR will
+remove an accounts expiration date.
+.IP "\fB\-I\fR \fIinactive\fR"
 Set the number of days of inactivity after a password has expired before the
 account is locked. The \fIinactive\fR option is the number of days of
 inactivity. A value of 0 disables this feature. A user whose account is
 locked must contact the system administrator before being able to use the
 system again.
-.IP "\fB-m\fR \fImindays\fR"
+.IP "\fB\-m\fR \fImindays\fR"
 Set the minimum number of days between password changes. A value of zero for
 this field indicates that the user may change her password at any time.
-.IP "\fB-M\fR \fImaxdays\fR"
+.IP "\fB\-M\fR \fImaxdays\fR"
 Set maximum number of days during which a password is valid. When
 \fImaxdays\fR plus fIlastday\fR is less than the current day, the user will
 be required to change her password before being able to use her account.
-This occurrence can be planned for in advance by use of the \fB-W\fR option,
+This occurrence can be planned for in advance by use of the \fB\-W\fR option,
 which provides the user with advance warning.
-.IP "\fB-W\fR \fIwarndays\fR"
+.IP "\fB\-W\fR \fIwarndays\fR"
 Set the number of days of warning before a password change is required. The
 \fIwarndays\fR option is the number of days prior to the password expiring
 that a user will be warned her password is about to expire.
@@ -89,9 +86,9 @@ The \fBchage\fR program requires shadow password file to be available.
 Its functionality is not available when passwords are stored in the 
 passwd file.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - shadow user account information
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR passwd (5),
 .BR shadow (5)
index 5b5241cbc10f46b28b8e3c1ca7cae43f04a99ed0..6ea06db66505e6321f1b1bd5e9d2865ce6f87ad3 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chfn.1,v 1.11 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: chfn.1,v 1.15 2005/04/05 18:47:50 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -31,16 +31,14 @@ chfn \- change real user name and information
 .SH SYNOPSIS
 .TP 5
 \fBchfn\fR
-[\fB-f \fIfull_name\fR] [\fB-r \fIroom_no\fR]
-.br
-[\fB-w \fIwork_ph\fR] [\fB-h \fIhome_ph\fR] [\fB-o \fIother\fR]
+[\fB\-f\fR \fIfull_name\fR] [\fB\-r\fR \fIroom_no\fR] [\fB\-w\fR \fIwork_ph\fR] [\fB\-h\fR \fIhome_ph\fR] [\fB\-o\fR \fIother\fR]
 [\fIuser\fR]
 .SH DESCRIPTION
 \fBchfn\fR changes user fullname, office number, office extension, and home
 phone number information for a user's account.  This information is
 typically printed by \fBfinger\fR(1) and similar programs. A normal user
 may only change the fields for her own account, the super user may change
-the fields for any account. Also, only the super user may use the \fB-o\fR
+the fields for any account. Also, only the super user may use the \fB\-o\fR
 option to change the undefined portions of the GECOS field.
 .PP
 The only restriction placed on the contents of the fields is that no control
@@ -54,7 +52,7 @@ Enter the new value to change the field, or leave the line blank to use the
 current value. The current value is displayed between a pair of \fB[ ]\fR
 marks. Without options, chfn prompts for the current user account.
 .SH FILES
-\fI/etc/passwd\fR \- user account information
+\fI/etc/passwd\fR      \- user account information
 .SH SEE ALSO
 .BR passwd (5)
 .SH AUTHOR
index 3828b8c3a81b8e7e980f43ec736ea4c1ea888f19..eb6770ddc9107daefc03a9be7768c613199fd1f0 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chpasswd.8,v 1.17 2004/12/12 20:49:52 kloczek Exp $
+.\"$Id: chpasswd.8,v 1.18 2005/04/02 16:10:23 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -27,7 +27,7 @@
 .\" SUCH DAMAGE.
 .TH CHPASSWD 8
 .SH NAME
-chpasswd - update passwords in batch mode
+chpasswd \- update passwords in batch mode
 .SH SYNOPSIS
 \fBchpasswd\fR [\fBoptions\fR]
 .SH DESCRIPTION
@@ -37,18 +37,18 @@ line is of the format:
 .sp 1
          \fIuser_name\fR:\fIpassword\fR
 .sp 1
-By default the supplied password must be in clear-text. Default encription
+By default the supplied password must be in clear\-text. Default encription
 algoritm is DES. Also the password age will be updated, if present.
 .PP
 This command is intended to be used in a large system environment where many
 accounts are created at a single time.
 .SH OPTIONS
 The options which apply to the \fBchpasswd\fR command are:
-.IP "\fB-e\fR, \fB--encrypted\fR"
+.IP "\fB\-e\fR, \fB\-\-encrypted\fR"
 Supplied passwords are in encrypted form.
-.IP "\fB-h\fR, \fB--help\fR"
+.IP "\fB\-h\fR, \fB\-\-help\fR"
 Display help message and exit.
-.IP "\fB-m\fR, \fB--md5\fR"
+.IP "\fB\-m\fR, \fB\-\-md5\fR"
 Use MD5 encryption instead DES when the supplied passwords are not encrypted.
 .SH CAVEATS
 Remember keep protected for reading by others fille passed to standard input
index 8f059d4bc0e57747c0398382b690c1c8162ebd9c..f988b0767c77474dacddec926ca362c2ce2bb241 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chsh.1,v 1.11 2004/11/02 19:28:31 kloczek Exp $
+.\"$Id: chsh.1,v 1.13 2005/04/02 16:10:23 kloczek Exp $
 .\" Copyright 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -30,7 +30,7 @@
 chsh \- change login shell
 .SH SYNOPSIS
 .TP 5
-\fBchsh\fR [\fB-s \fIlogin_shell\fR] [\fIuser\fR]
+\fBchsh\fR [\fB\-s\fR \fIlogin_shell\fR] [\fIuser\fR]
 .SH DESCRIPTION
 \fBchsh\fR changes the user login shell. This determines the name of the
 user's initial login command. A normal user may only change the login shell
@@ -38,7 +38,7 @@ for her own account, the super user may change the login shell for any
 account.
 .PP
 The only restrictions placed on the login shell is that the command name
-must be listed in \fI/etc/shells\fR, unless the invoker is the super-user,
+must be listed in \fI/etc/shells\fR, unless the invoker is the super\-user,
 and then any value may be added. An account with a restricted login shell
 may not change her login shell. For this reason, placing \fB/bin/rsh\fR in
 \fI/etc/shells\fR is discouraged since accidentally changing to a restricted
@@ -46,7 +46,7 @@ shell would prevent the user from every changing her login shell back to its
 original value.
 .PP
 .SH OPTIONS
-If the \fB-s\fR option is not selected, \fBchsh\fR operates in an
+If the \fB\-s\fR option is not selected, \fBchsh\fR operates in an
 interactive fashion, prompting the user with the current login shell. Enter
 the new value to change the shell, or leave the line blank to use the
 current one. The current shell is displayed between a pair of \fB[ ]\fR
index 3723d04b9b28c7e2961fa224c6d9044d96a0c4d3..8d46af45a3a6a6afcf6c7178aaf4ab20c892f7b0 100644 (file)
@@ -2,8 +2,11 @@
 mandir = @mandir@/cs
 
 man_MANS = \
+       groups.1 \
        id.1 \
+       lastlog.8 \
        passwd.5 \
-       shadow.5
+       shadow.5 \
+       su.1
 
 EXTRA_DIST = $(man_MANS)
index 9352652cfd00615fc48951efbf1688b8a5290dc9..49a4fad22e4a3420fd785dd7c55a844e1abc6c16 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -47,8 +47,10 @@ CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
 man1dir = $(mandir)/man1
-am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"
+am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
+       "$(DESTDIR)$(man8dir)"
 man5dir = $(mandir)/man5
+man8dir = $(mandir)/man8
 NROFF = nroff
 MANS = $(man_MANS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -87,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -172,9 +173,12 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 man_MANS = \
+       groups.1 \
        id.1 \
+       lastlog.8 \
        passwd.5 \
-       shadow.5
+       shadow.5 \
+       su.1
 
 EXTRA_DIST = $(man_MANS)
 all: all-am
@@ -189,9 +193,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/cs/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/cs/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/cs/Makefile
+         $(AUTOMAKE) --foreign  man/cs/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -309,6 +313,51 @@ uninstall-man5:
          echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
          rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
        done
+install-man8: $(man8_MANS) $(man_MANS)
+       @$(NORMAL_INSTALL)
+       test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
+       @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.8*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+         else file=$$i; fi; \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         case "$$ext" in \
+           8*) ;; \
+           *) ext='8' ;; \
+         esac; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
+       done
+uninstall-man8:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.8*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         case "$$ext" in \
+           8*) ;; \
+           *) ext='8' ;; \
+         esac; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
+         rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
+       done
 tags: TAGS
 TAGS:
 
@@ -347,7 +396,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(MANS)
 installdirs:
-       for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \
+       for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(mkdir_p) "$$dir"; \
        done
 install: install-am
@@ -398,7 +447,7 @@ install-exec-am:
 
 install-info: install-info-am
 
-install-man: install-man1 install-man5
+install-man: install-man1 install-man5 install-man8
 
 installcheck-am:
 
@@ -420,18 +469,19 @@ ps-am:
 
 uninstall-am: uninstall-info-am uninstall-man
 
-uninstall-man: uninstall-man1 uninstall-man5
+uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-exec install-exec-am \
        install-info install-info-am install-man install-man1 \
-       install-man5 install-strip installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am uninstall uninstall-am uninstall-info-am \
-       uninstall-man uninstall-man1 uninstall-man5
+       install-man5 install-man8 install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am uninstall-man uninstall-man1 uninstall-man5 \
+       uninstall-man8
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/man/cs/groups.1 b/man/cs/groups.1
new file mode 100644 (file)
index 0000000..6de3006
--- /dev/null
@@ -0,0 +1,29 @@
+.TH GROUPS 1 "GNU Shell Utilities" "FSF" \" \-*\- nroff \-*\-
+.do hla cs
+.do hpf hyphen.cs
+.SH JMÉNO
+groups \- vypí¹e skupiny, jich¾ je u¾ivatel èlenem
+.SH POU®ITÍ
+\fBgroups\fR [\fIu¾ivatel...\fR]
+.SH POPIS
+Tato dokumentace není dále udr¾ována a mù¾e být nepøesná nebo neúplná.
+Autoritativním zdrojem je Texinfo dokumentace.
+.PP
+Tato manuálová stránka popisuje GNU verzi pøíkazu
+.BR groups .
+Pøíkaz
+.B groups
+vypí¹e jména v¹ech skupin, v nich¾ je zadaný \fIu¾ivatel\fR nebo aktuální proces,
+pokud u¾ivatel není zadán, èlenem. Pokud jsou zadána jména u¾ivatelù, potom bude
+jméno ka¾dého z u¾ivatelù vypsáno pøed seznam skupin, jich¾ je èlenem.
+.PP
+Seznam skupin je ekvivalentní s výstupem pøíkazu `id \-Gn'.
+.SH VOLBY
+Kdy¾ je GNU pøíkaz \fBgroups\fR vyvolán právì s jedním parametrem,
+jsou rozpoznávány následující volby:
+.TP
+.I "\-\-help"
+Vypí¹e návod k pou¾ití na standardní výstup a bezchybnì skonèí.
+.TP
+.I "\-\-version"
+Vypí¹e èíslo verze na standardní výstup a bezchybnì skonèí.
index de77930a73aded540def0be2a9ac1d357c3b5375..3a2b1437da93d1ba19b585b41a8a312bf6c1df48 100644 (file)
@@ -1,4 +1,4 @@
-.TH ID 1 "GNU Shell Utilities" "FSF" \" -*- nroff -*-
+.TH ID 1 "GNU Shell Utilities" "FSF" \" \-*\- nroff \-*\-
 .do hla cs
 .do hpf hyphen.cs
 .SH JMÉNO
diff --git a/man/cs/lastlog.8 b/man/cs/lastlog.8
new file mode 100644 (file)
index 0000000..6591c8b
--- /dev/null
@@ -0,0 +1,40 @@
+.\"    @(#)lastlog.8   3.3     08:24:58        29 Sep 1993 (National Guard Release)
+.\"    $Id: lastlog.8,v 1.2 2005/04/05 19:08:52 kloczek Exp $
+.\"
+.TH LASTLOG 8
+.SH JMÉNO
+lastlog \- prozkoumá soubor lastlog
+.SH SYNTAXE
+.B lastlog
+.RB [ \-u
+.IR pøihla¹ovací\-jméno ]
+.RB [ \-t
+.IR dny ]
+.SH POPIS
+\fBlastlog\fR setøídí a zobrazí obsah souboru
+\fI/var/log/lastlog\fR,
+který obsahuje záznamy o pøihla¹ování a odhla¹ování u¾ivatelù v systému.
+Zobrazí se \fBpøihla¹ovací jméno\fR, \fBjméno terminálu\fR a \fBèas posledního
+pøihla¹ení\fR.
+Standardnì (tj. bez dal¹ích voleb) lastlog zobrazí záznamy setøídìné
+podle èísla UID.
+Pou¾ití pøepínaèe \fB\-u \fIpøihla¹ovací\-jméno\fR
+zpùsobí, ¾e bude vyti¹tìn pouze poslední záznam o pøihlá¹ení pøíslu¹ného u¾ivatele.
+Zadáním \fB\-t \fIdny\fR se zobrazí pouze
+ta pøihlá¹ení, které jsou døívìj¹í ne¾ zadané \fIdny\fR.
+Parametr \fB\-t\fR pøekryje pøípadný parametr \fB\-u\fR.
+.PP
+Pokud se u¾ivatel je¹tì nikdy nepøihlásil, zobrazí se zpráva \fB"**Never logged in**"\fR (Nikdy nepøihlá¹en)
+místo jména terminálu a èasu.
+.SH SOUBORY
+/var/log/lastlog \- soubor se záznamy o pøihlá¹ení a odhlá¹ení
+.SH NÁMITKY
+Velké rozdíly v UID èíslech jsou zpùsobeny tím, ¾e lastlog program bì¾el dlouho bez
+výstupu na obrazovku (napø. mmdf=800 a poslední uid=170, program se bude
+jevit jako s uid 171\-799).
+.SH AUTOØI
+Julianne Frances Haugh (jfh@austin.ibm.com)
+.br
+Phillip Street
+.SH PØELO®IL
+Ondøej Pavlíèek (mox@post.cz).
index a0d9fd6c5daabd50c1c1df8e4796bb50bddd49f9..42baa690a2e7b9b58c589a41b22da4d4aecffa91 100644 (file)
@@ -1,4 +1,4 @@
-.TH PASSWD 5 "19. bøezna 1997" "Linux" "Linux - pøíruèka programátora"
+.TH PASSWD 5 "19. bøezna 1997" "Linux" "Linux \- pøíruèka programátora"
 .do hla cs
 .do hpf hyphen.cs
 .SH JMÉNO
index 44ed2c742790572331bfbf47c1aa0f01a1bdb6eb..a7c799084f276229a19ef92b62db2d959d9d8997 100644 (file)
@@ -46,7 +46,7 @@ vypr
 Tyto informace o heslu a dobì jeho platnosti mají prioritu pøed
 informacemi ulo¾enými v souboru \fB/etc/passwd\fR.
 .PP
-Tento soubor nesmí být èitelný øádnými u¾ivateli, má-li být
+Tento soubor nesmí být èitelný øádnými u¾ivateli, má\-li být
 ochrana hesel úèinná.
 .SH SOUBORY
 \fI/etc/passwd\fR \- informace o u¾ivatelských úètech
diff --git a/man/cs/su.1 b/man/cs/su.1
new file mode 100644 (file)
index 0000000..8b30ac7
--- /dev/null
@@ -0,0 +1,111 @@
+.TH SU 1 "GNU Shell Utilities" "FSF" \" \-*\- nroff \-*\-
+.do hla cs
+.do hpf hyphen.cs
+.SH JMÉNO
+su \- spustí shell pod jiným u¾ivatelským a skupinovým ID
+.SH POU®ITÍ
+.B su
+[\-flmp] [\-c pøíkaz] [\-s shell] [\-\-login] [\-\-fast]
+[\-\-preserve\-environment] [\-\-command=pøíkaz] [\-\-shell=shell] [\-]
+[\-\-help] [\-\-version] [u¾ivatel [arg...]]
+.SH POPIS
+Tato dokumentace není dále udr¾ována a mù¾e být nepøesná nebo neúplná.
+Autoritativním zdrojem je Texinfo dokumentace.
+.PP
+Tato manuálová stránka popisuje GNU verzi pøíkazu
+.BR su .
+Pøíkaz
+.B su
+umo¾òuje, aby se u¾ivatel doèasnì stal jiným u¾ivatelem. Spustí
+shell s reálným a efektivním user ID, group ID, i skupinami, jich¾
+je zadaný
+.I u¾ivatel
+èlenem. Pokud není zadán
+.IR u¾ivatel ,
+dosadí se root, superu¾ivatel. Jméno shellu je pøevzato ze souboru
+/etc/passwd. Pokud v /etc/passwd jméno shellu není, pou¾ije se
+/bin/sh. Pokud má u¾ivatelský úèet heslo, a pøíkaz
+.B su
+není spu¹tìn pod reálným user ID 0 (tj. superu¾ivatelem), bude
+po¾adovat zadání hesla.
+.PP
+Pøíkaz
+.B su
+implicitnì nemìní aktuální adresáø. Nastavuje promìnné prostøedí
+`HOME' a `SHELL' podle údajù z /etc/passwd a pokud zadaný
+.I u¾ivatel
+není superu¾ivatelem, nastaví promìnné `USER' a `LOGNAME' na
+.IR u¾ivatel .
+Implicitnì není spu¹tìný shell login shellem.
+.PP
+Jsou\-li zadány dal¹í argumenty, budou pøedány jako argumenty shellu.
+.PP
+Pøíkaz
+.B su
+nezpracovává speciálnì /bin/sh nebo ostatní shelly (nastavením
+argv[0] na "\-su", pøedáním volby `\-c' pouze jistým shellùm, atd.).
+.PP
+Na systémech se syslog démonem mù¾e být pøíkaz
+.B su
+pøelo¾en tak, aby zaznamenával pomocí syslogu neúspì¹ná
+a volitelnì i úspì¹ná vyvolání pøíkazu
+.BR su .
+.SS VOLBY
+.TP
+.I "\-c pøíkaz, \-\-command=pøíkaz"
+Místo odstartování interaktivního shellu pøedá
+.I pøíkaz
+s volbou
+.I \-c
+jako jediný pøíkazový øádek shellu.
+.TP
+.I "\-f, \-\-fast"
+Pøedá shellu volbu
+.IR \-f .
+Tuto volbu je pravdìpodobnì vhodné pou¾ívat pouze pro shelly
+.B csh
+a
+.BR tcsh ,
+u nich¾ zabrání provedení startovacího souboru (.cshrc).
+U shellù vycházejících z Bourne shellu volba
+.I \-f
+zakazuje expanzi ¾olíkových znakù, co¾ obecnì není ¾ádoucí.
+.TP
+.I "\-\-help"
+Vypí¹e návod k pou¾ití na standardní výstup a bezchybnì skonèí.
+.TP
+.I "\-, \-l, \-\-login"
+Spustí shell jako login shell. To znamená, ¾e nebude nastaven obsah
+¾ádných promìnných prostøedí kromì `TERM', `HOME', a `SHELL' (které
+budou nastaveny, jak je popsáno vý¹e), `USER' a `LOGNAME' (které
+budou nastaveny i pro superu¾ivatele jak je popsáno vý¹e). Promìnná
+prostøedí `PATH' bude nastavena na hodnotu definovanou pøi pøekladu.
+Aktuální adresáø bude nastaven na domovský adresáø; pøed jméno
+shellu bude pøedøazen znak "\-", který zpùsobí, ¾e bude zpracován
+startovací soubor nebo soubory.
+.TP
+.I "\-m, \-p, \-\-preserve\-environment"
+Nebude mìnit promìnné prostøedí `HOME', `USER', `LOGNAME' ani
+`SHELL'. Je chybou, pokud u¾ivatel, který spustil pøíkaz
+.B su
+není superu¾ivatel a pøitom má nový u¾ivatel omezený shell. Jinak
+se spustí místo u¾ivatelova shellu z /etc/passwd shell zadaný
+v promìnné prostøedí `SHELL'. Omezený shell je takový, který
+není uveden v souboru /etc/shells, nebo v zakompilován seznamu
+souborù, pokud /etc/shells neexistuje. Chování pøíkazu
+.B su
+s touto volbou lze zmìnit volbami
+.I \-\-login
+a
+.I \-\-shell
+(má pøednost pøed hodnotou promìnné prostøedí SHELL).
+.TP
+.I "\-s, \-\-shell shell"
+Spustí zadaný shell místo u¾ivatelova shellu z /etc/passwd.
+Je chybou, pokud u¾ivatel, který spustil
+.B su
+není superu¾ivatel a pøitom shell nového u¾ivatele uvedený
+v /etc/passwd je omezený.
+.TP
+.I "\-\-version"
+Vypí¹e èíslo verze na standardní výstup a bezchybnì skonèí.
index 801492ac90d0f434b64ef364bf7d07cfc5f76f0f..5c155ed0b3708a6ac1e052d2d62efdb8ecfd93d1 100644 (file)
@@ -7,6 +7,7 @@ man_MANS = \
        groups.1 \
        login.1 \
        passwd.1 \
+       passwd.5 \
        vigr.8 \
        vipw.8
 
index b38bb838eab75c28f3e5a5adaa4f75c2818fdc3e..eb3e18340a8aec9e3d154751e94a595664a4cd4e 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -47,7 +47,9 @@ CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
 man1dir = $(mandir)/man1
-am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"
+am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
+       "$(DESTDIR)$(man8dir)"
+man5dir = $(mandir)/man5
 man8dir = $(mandir)/man8
 NROFF = nroff
 MANS = $(man_MANS)
@@ -87,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -177,6 +178,7 @@ man_MANS = \
        groups.1 \
        login.1 \
        passwd.1 \
+       passwd.5 \
        vigr.8 \
        vipw.8
 
@@ -193,9 +195,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/de/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/de/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/de/Makefile
+         $(AUTOMAKE) --foreign  man/de/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -268,6 +270,51 @@ uninstall-man1:
          echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
          rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
        done
+install-man5: $(man5_MANS) $(man_MANS)
+       @$(NORMAL_INSTALL)
+       test -z "$(man5dir)" || $(mkdir_p) "$(DESTDIR)$(man5dir)"
+       @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.5*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+         else file=$$i; fi; \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         case "$$ext" in \
+           5*) ;; \
+           *) ext='5' ;; \
+         esac; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
+         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
+       done
+uninstall-man5:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.5*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         case "$$ext" in \
+           5*) ;; \
+           *) ext='5' ;; \
+         esac; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
+         rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
+       done
 install-man8: $(man8_MANS) $(man_MANS)
        @$(NORMAL_INSTALL)
        test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
@@ -351,7 +398,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(MANS)
 installdirs:
-       for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
+       for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
          test -z "$$dir" || $(mkdir_p) "$$dir"; \
        done
 install: install-am
@@ -402,7 +449,7 @@ install-exec-am:
 
 install-info: install-info-am
 
-install-man: install-man1 install-man8
+install-man: install-man1 install-man5 install-man8
 
 installcheck-am:
 
@@ -424,18 +471,19 @@ ps-am:
 
 uninstall-am: uninstall-info-am uninstall-man
 
-uninstall-man: uninstall-man1 uninstall-man8
+uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-exec install-exec-am \
        install-info install-info-am install-man install-man1 \
-       install-man8 install-strip installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am uninstall uninstall-am uninstall-info-am \
-       uninstall-man uninstall-man1 uninstall-man8
+       install-man5 install-man8 install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am uninstall-man uninstall-man1 uninstall-man5 \
+       uninstall-man8
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 5d2ed9abf9daa09b60c91a59156672567f551a26..bf13347523bc6d4e630296c17a95284b5112bac8 100644 (file)
@@ -11,9 +11,9 @@ chfn \- 
 .SH SYNTAX
 .TP 5
 \fBchfn\fR
-[\fB-f \fIVollerName\fR] [\fB-r \fIRaumnummer\fR]
+[\fB\-f\fR \fIVollerName\fR] [\fB\-r\fR \fIRaumnummer\fR]
 .br
-[\fB-w \fITelArbeit\fR] [\fB-h \fITelPrivat\fR] [\fB-o \fIAnderes\fR]
+[\fB\-w\fR \fITelArbeit\fR] [\fB\-h\fR \fITelPrivat\fR] [\fB\-o\fR \fIAnderes\fR]
 [\fINutzer\fR]
 .SH BESCHREIBUNG
 \fBchfn\fR ändert den vollen Namen, die Büronummer und Büroerweiterung,
@@ -22,8 +22,8 @@ Diese Information wird meist von \fBfinger\fR(1) und anderen Programmen
 verwendet.
 Ein normaler Nutzer darf nur die Felder für sein/ihr eigenes Konto ändern,
 während der Supernutzer dies für alle Konten tun darf.
-Auch darf nur der Supernutzer anhand der Option \fB-o\fR die Inhalte der
-undefinierten Teile des GECOS-Feldes umändern.
+Auch darf nur der Supernutzer anhand der Option \fB\-o\fR die Inhalte der
+undefinierten Teile des GECOS\-Feldes umändern.
 .PP
 Die einzige Beschränkung, die auf den Inhalten dieser Felder liegt, ist daß
 kein Kontrollzeichen verwendet wird, und ebenso kein Komma, Doppelpunkt oder
index 30cb1c72ad4375715fada180e81f710d92a28f51..c4a6587a1ea0a9da38ab194d7dd283dbf6c62049 100644 (file)
@@ -7,37 +7,37 @@
 .\"
 .TH CHSH 1
 .SH BEZEICHNUNG
-chsh \- ändert die Login-Shell
-.SH SYNTAX
+chsh \- ändert die Login\-Shell
+.SH "ÜBERSICHT"
 .TP 5
 \fBchsh\fR
-[\fB-s \fILoginshell\fR] [\fINutzer\fR]
+[\fB\-s\fR \fILoginshell\fR] [\fINutzer\fR]
 .SH BESCHREIBUNG
-\fBchsh\fR ändert die Login-Shell eines Nutzers.
+\fBchsh\fR ändert die Login\-Shell eines Nutzers.
 Es legt den Namen des Befehls fest, der beim Login ausgeführt wird.
-Ein normaler Nutzer kann die Login-Shell nur für sein/ihr eigenes
+Ein normaler Nutzer kann die Login\-Shell nur für sein eigenes
 Konto ändern, während der Supernutzer dies für jedes Konto tun darf.
 .PP
-Die einzige Beschränkung, die für die Login-Shell gilt, ist daß der
-Name des Kommandos in der Datei \fI/etc/shells\fR stehen muß.
+Die einzige Beschränkung, die für die Login\-Shell gilt, ist dass der
+Name des Kommandos in der Datei \fI/etc/shells\fR stehen muss.
 Der Supernutzer darf allerdings jedes beliebige Kommando eintragen.
 Nutzern, deren Konten einer Beschränkung unterliegen, ist es nicht
-gestattet, ihre Login-Shell zu ändern.
+gestattet, ihre Login\-Shell zu ändern.
 Aus diesem Grund ist es nicht empfehlenswert, \fB/bin/rsh\fR in
 \fI/etc/shells\fR einzutragen, da ein versehentlicher Wechsel
 zu einer beschränkten Shell den Nutzer davon abhalten würde,
-seine/ihre Login-Shell wieder auf den Originalwert zurückzusetzen.
-.PP
-Wenn die Option \fB-s\fR nicht ausgewählt ist, wird \fBchsh\fR im
+seine Login\-Shell wieder auf den Originalwert zurückzusetzen.
+.SH OPTIONEN
+Wenn die Option \fB\-s\fR nicht ausgewählt ist, wird \fBchsh\fR im
 interaktiven Modus betrieben, in der das Programm den Nutzer mit
-der aktuellen Login-Shell fragt.
+der aktuellen Login\-Shell fragt.
 Durch Eingabe eines Wertes wird die Shell gewechselt, während sie bei
 einer leeren Zeile gleich bleibt.
 Die aktuelle Shell wird zwischen einem Paar von \fB[ ]\fR angezeigt.
 .SH DATEIEN
 \fI/etc/passwd\fR      \- Informationen über Nutzerkonten
 .br
-\fI/etc/shells\fR      \- Liste der gültigen Login-Shells
+\fI/etc/shells\fR      \- Liste der gültigen Login\-Shells
 .SH "SIEHE AUCH"
 .BR chfn (1),
 .BR passwd (5)
@@ -45,4 +45,3 @@ Die aktuelle Shell wird zwischen einem Paar von \fB[ ]\fR angezeigt.
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
 .br
 Deutsche Übersetzung von Josef Spillner <josef@ggzgamingzone.org>
-
index 02072abcdf7727fe2d99beba29ca2e70dd0659ef..6707baaed956874397b1b8690a885ef5df8b5cd6 100644 (file)
@@ -9,11 +9,11 @@
 .SH BEZEICHNUNG
 login \- startet eine Sitzung auf dem System
 .SH SYNTAX
-\fBlogin\fR [\fB-p\fR] [\fINutzername\fR] [\fIENV=VAR\fR ...]
+\fBlogin\fR [\fB\-p\fR] [\fINutzername\fR] [\fIENV=VAR\fR ...]
 .br
-\fBlogin\fR [\fB-p\fR] [\fB-h \fIHost\fR] [\fB-f \fINutzername\fR]
+\fBlogin\fR [\fB\-p\fR] [\fB\-h\fR \fIHost\fR] [\fB\-f\fR \fINutzername\fR]
 .br
-\fBlogin\fR [\fB-p\fR] \fB-r \fIHost\fR
+\fBlogin\fR [\fB\-p\fR] \fB\-r\fR \fIHost\fR
 .SH BESCHREIBUNG
 .B login
 wird verwendet, um eine neue Sitzung auf dem System zu starten.
@@ -27,22 +27,12 @@ Typischerweise wird
 .B login
 von der Shell als \fBexec login\fR ausgeführt, so daß der Nutzer die
 aktuelle Shell verlassen muß.
-Der Versuch, von einer Shell außer der Login-Shell \fBlogin\fR
+Der Versuch, von einer Shell außer der Login\-Shell \fBlogin\fR
 auszuführen, wird eine Fehlermeldung generieren.
 .PP
-Wenn das Programm vom Prompt \fIlogin:\fR ausgeführt wird,
-kann der Nutzer Umgebungsvariablen nach dem Nutzernamen eingeben.
-
-Diese Variablen werden in der Form \fBNAME=WERT\fR angegeben.
-Nicht alle Variablen können auf diese Art und Weise gesetzt werden,
-insbesondere \fBPATH\fR, \fBHOME\fR und \fBSHELL\fR stellen eine
-Ausnahme dar.
-Außerdem kann \fBIFS\fR dazugehören, wenn die Login-Shell des
-Nutzers \fB/bin/sh\fR ist.
-.PP
 Der Nutzer wird anschließend nach einem Kennwort gefragt, falls
 erforderlich. Dieses wird während der Eingabe nicht angezeigt.
-Es sind nur eine kleine Anzahl von Login-Fehlern möglich,
+Es sind nur eine kleine Anzahl von Login\-Fehlern möglich,
 falls \fBlogin\fR abbricht und die Kommunikation getrennt wird.
 .PP
 Falls die Kennwortalterung für ein Konto aktiviert wurde,
@@ -61,41 +51,41 @@ Die Mailnachricht ist entweder "\fBSie haben neue Mails.\fR",
 "\fBSie haben Mails.\fR", oder "\fBKeine Mails.\fR", je nach
 Zustandes der Mailbox des Nutzers.
 .PP
-Die Nutzer- und Gruppen-IDs werden gemäß den Werten in der Datei
+Die Nutzer\- und Gruppen\-IDs werden gemäß den Werten in der Datei
 \fI/etc/passwd\fR gesetzt.
 Die Werte für \fB$HOME\fR, \fB$SHELL\fR, \fB$PATH\fR, \fB$LOGNAME\fR
 und \fB$MAIL\fR werden ebenfalls entsprechend der Einträge in dem
 Kennworteintrag gesetzt.
 Werte für ulimit, umask und nice können ebenfalls gemäß Werten im
-GECOS-Feld eingestellt werden.
+GECOS\-Feld eingestellt werden.
 .PP
 Auf einigen Installationen wird die Umgebungsvariable \fB$TERM\fR
 entsprechend dem Typ des Ausgabeterminals gesetzt, so wie in
 \fI/etc/ttytype\fR angegeben.
 .PP
-Ein Initialisierungsskript für den Kommandozeilen-Interpreter
+Ein Initialisierungsskript für den Kommandozeilen\-Interpreter
 kann auch ausgeführt werden. Dazu sehe man in den entsprechenden
-Manual-Seiten nach.
+Manual\-Seiten nach.
 .PP
-Ein Subsystem-Login wird durch das Vorhandensein eines "*" als erstem
-Buchstaben der Login-Shell angezeigt. Das angegebene Heimatverzeichnis
+Ein Subsystem\-Login wird durch das Vorhandensein eines "*" als erstem
+Buchstaben der Login\-Shell angezeigt. Das angegebene Heimatverzeichnis
 wird als Wurzel des neuen Dateisystems verwendet werden, in das
 der Nutzer tatsächlich eingeloggt ist.
 .SH OPTIONEN
 .TP
-.B -f
+.B \-f
 Keine Authentifizierung durchführen, Nutzer ist bereits angemeldet.
 .TP
-.B -h
+.B \-h
 Name des entfernten Rechners für das Login.
 .TP
-.B -p
+.B \-p
 Behalte die Umgebungseinstellungen bei.
 .TP
-.B -r
-Führ das Autologin-Protokoll für rlogin aus.
+.B \-r
+Führ das Autologin\-Protokoll für rlogin aus.
 .PP
-Die Optionen \fB-r\fP, \fB-h\fP und \fB-f\fP werden nur genutzt,
+Die Optionen \fB\-r\fP, \fB\-h\fP und \fB\-f\fP werden nur genutzt,
 wenn \fBlogin\fP als root ausgeführt wird.
 .SH HINWEISE
 Diese Version von \fBlogin\fR hat viele Optionen für die Compilierung,
@@ -104,7 +94,7 @@ davon sind eventuell nur einige auf bestimmten Systemen in Gebrauch.
 Der Ort der Konfigurationsdateien kann entsprechend der Systemkonfiguration
 abweichen.
 .PP
-Es liegt NICHT in der Verantwortung von \fBlogin\fR, Nutzer von der utmp-Datei
+Es liegt NICHT in der Verantwortung von \fBlogin\fR, Nutzer von der utmp\-Datei
 zu entfernen.
 Sowohl
 .BR getty (8)
@@ -116,15 +106,15 @@ weiterhin in der Lage sein, eingeloggt zu erscheinen, obwohl er aus der
 Subsitzung ausgeloggt ist.
 .SH DATEIEN
 .br
-\fI/var/run/utmp\fR            \- Liste der aktuellen Login-Sitzungen
+\fI/var/run/utmp\fR            \- Liste der aktuellen Login\-Sitzungen
 .br
-\fI/var/log/wtmp\fR            \- Liste der vorherigen Login-Sitzungen
+\fI/var/log/wtmp\fR            \- Liste der vorherigen Login\-Sitzungen
 .br
 \fI/etc/passwd\fR              \- Informationen über Nutzerkonten
 .br
 \fI/etc/shadow\fR              \- Verschlüsselte Kennwörter und Alterungsinformationen
 .br
-\fI/etc/motd\fR                        \- Systemnachricht-Datei
+\fI/etc/motd\fR                        \- Systemnachricht\-Datei
 .br
 \fI/etc/nologin\fR             \- Verhindert, daß sich Nutzer außer dem Supernutzer einloggen
 .br
@@ -144,4 +134,3 @@ Subsitzung ausgeloggt ist.
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
 .br
 Deutsche Übersetzung von Josef Spillner <josef@ggzgamingzone.org>
-
index 609470225408ff5bc77d67306a669ef1bec4a5f0..7d54ae2299347593855b7c88af346f4c5ca5c4fa 100644 (file)
-.\" Copyleft (C) 2003 Josef Spillner <josef@ggzgamingzone.org>
-.\" Übersetzung der englischen Version von Julianne Frances Haugh
-.\" Ersatz für die originale Version von:
-.\" Copyright 1993 Sebastian Hetze und Peter Orbaek.
+.\" $Id: passwd.1,v 1.7 2005/04/18 12:29:07 kloczek Exp $
+.\" Copyright 1989 - 1994, Julianne Frances Haugh
+.\" All rights reserved.
 .\"
-.\" Veröffentlicht unter der GNU General Public License (GPL).
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
+.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .TH PASSWD 1
 .SH BEZEICHNUNG
-passwd \- ändert das Nutzerkennwort
-.SH SYNTAX
-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIName\fR]
+passwd \- ändert das Passwort eines Nutzers
+.SH "ÜBERSICHT"
+\fBpasswd\fR [\fB\-f\fR|\fB\-s\fR] [\fIName\fR]
 .br
-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIGruppe\fR
+\fBpasswd\fR [\fB\-g\fR] [\fB\-r\fR|\fB\-R\fR] \fIGruppe\fR
 .br
-\fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR]
-[\fB-w \fIwarn\fR] [\fB-i \fIinaktiv\fR] \fILogin\fR
+\fBpasswd\fR [\fB\-x \fImax\fR] [\fB\-n \fImin\fR]
+[\fB\-w \fIwarn\fR] [\fB\-i \fIinact\fR] \fIlogin\fR
 .br
-\fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fILogin\fR
+\fBpasswd\fR {\fB\-l\fR|\fB\-u\fR|\fB\-d\fR|\fB\-S\fR|\fB\-e\fR} \fIlogin\fR
 .SH BESCHREIBUNG
-\fBpasswd\fR ändert Kennwörter für Nutzer- und Gruppenkonten.
-Ein normaler Nutzer darf das Kennwort nur für sein/ihr eigenes
-Login ändern, während der Superuser (root) dies für jedes Login darf.
-Der Administrator einer Gruppe kann das Kennwort für die Gruppe ändern.
-\fBpasswd\fR ändert auch Kontoinformationen, wie den vollen Namen
-des Nutzers, seine/ihre Loginshell, oder das Datum und Intervall des
-Ablaufes des Kennwortes.
+\fBpasswd\fR ändert die Passwörter für Nutzer\- und Gruppenkonten. Ein normaler
+Nutzer kann nur das Passwort seines Kontos verändern, der Superuser dagegen
+kann die Passwörter aller Konten ändern. Der Verwalter einer Gruppe kann das
+Passwort der Gruppe ändern. \fBpasswd\fR verändert auch die Informationen über
+das Konto wie den vollständigen Namen des Nutzers, seine Login\-Shell oder
+Verfallsdatum und \-intervall des Passworts.
 .PP
-Die Option \fB-s\fR sorgt dafür, daß \fBpasswd\fR das Programm \fBchsh\fR
-aufruft, welches die Shell des Nutzers ändert. Die Option \fB-f\fR
-läßt \fBpasswd\fR das Programm \fBchfn\fR zum Ändern der GECOS-Information
-starten.
-Diese beiden Optionen sind nur aus Kompatibilitätsgründen vorhanden, da diese
-Programme direkt aufgerufen werden können.
-.SS Änderung des Kennwortes
-Der Nutzer wird zuerst nach seinem/ihren alten Kennwort gefragt, sofern es
-bereits existiert. Dieses wird dann verschlüsselt und mit dem gespeicherten
-Kennwort verglichen.
-Der Nutzer hat nur einen Versuch, das Kennwort korrekt einzugeben.
-Hingegen kann der Superuser diesen Schritt überspringen, um vergessene
-Kennwörter abzuändern.
+Die Option \fB\-s\fR bewirkt, dass \fBpasswd\fR \fBchsh\fR aufruft, um die Shell
+des Nutzers zu ändern. Die Option \fB\-f\fR hat zur Folge, dass \fBpasswd\fR
+\fBchfn\fR aufruft, um die Gecos\-Informationen des Nutzers zu ändern. Diese
+beiden Optionen sind nur aus Kompatibilitätsgründen vorhanden, da die anderen
+Programme auch direkt aufgerufen werden können.
+.SS Verändern des Passworts
+Der Nutzer wird zuerst nach seinem alten Passwort gefragt, falls eines
+vorhanden ist. Dieses Passwort wird dann verschlüsselt und mit dem
+abgespeicherten Passwort verglichen. Der Nutzer hat nur eine Gelegenheit, das
+richtige Passwort einzugeben. Der Superuser kann diesen Schritt überspringen,
+so dass vergessene Passwörter geändert werden können.
 .PP
-Nachdem das Kennwort eingegeben wurde, wird die Gültigkeitsinformation
-geprüft, um herauszufinden ob der Nutzer zu diesem Zeitpunkt das Kennwort
-ändern darf.
-Wenn das nicht der Fall ist, verweigert \fBpasswd\fR die Kennwortänderung
-und beendet sich.
+Nachdem das Passwort eingegeben wurde, werden Informationen über die
+Gültigkeitsdauer des Passworts abgefragt, um festzustellen, ob der Nutzer das
+Passwort zu dieser Zeit verändern darf. Wenn nicht, lehnt \fBpasswd\fR ab,
+das Passwort zu ändern, und beendet sich.
 .PP
-Anschließend wird der Nutzer nach einem Ersatzkennwort gefragt.
-Dieses wird auf Komplexität überprüft.
-Als Richtlinie sollten Kennwörter mit 6 bis 8 Zeichen gewählt werden,
-inklusive einem oder mehreren Zeichen aus den folgenden Mengen:
+Der Nutzer wird dann aufgefordert, ein neues Passwort einzugeben. Dieses
+Passwort wird auf seine Komplexität überprüft. Eine allgemeine Richtlinie ist,
+dass Passwörter aus sechs bis acht Zeichen bestehen sollten und ein oder
+mehrere Zeichen aus folgenden Mengen enthalten sollten:
 .IP "" .5i
 Kleinbuchstaben
 .IP "" .5i
 Großbuchstaben
 .IP "" .5i
-Ziffern von 0 bis 9
+Zahlen von 0 bis 9
 .IP "" .5i
 Satzzeichen
 .PP
-Es sollte darauf geachtet werden, daß keine Systemlöschzeichen
-oder sonstigen Sonderzeichen darunter sind.
-\fBpasswd\fR lehnt jedes Kennwort ab, welches nicht ein Mindestmaß
-an Komplexität besitzt.
+Seien Sie vorsichtig, dass nicht die standardmäßigen Erase\- oder Killzeichen
+des Systems eingegeben werden. \fBpasswd\fR weist alle Passwörter zurück, die
+nicht ausreichend komplex sind.
 .PP
-Wenn das Kennwort akzeptiert wurde, wird
-\fBpasswd\fR ein weiteres Mal nach dem Kennwort fragen und dieses mit
-der ersten Eingabe vergleichen.
-Beide Eingaben müssen identisch sein, damit das Kennwort geändert
-werden kann.
-.SS Gruppenkennwörter
-Wenn die Option \fB-g\fR benutzt wird, hat das die Änderung des Kennwortes
-für die angegebene Gruppe zur Auswahl.
-Dafür muß der Nutzer entweder der Superuser oder der Gruppenadministrator
-sein.
-Es wird nicht nach dem aktuellen Gruppenkennwort gefragt.
-Die Option \fB-r\fR wird zusammen mit \fB-g\fR verwendet, um das aktuelle
-Kennwort von der angegebenen Gruppe zu entfernen.
-Das erlaubt den Zugriff auf die Gruppe durch alle Mitglieder.
-Die Option \fB-R\fR in Kombination mit \fB-g\fR beschränkt den
-Zugriff für alle Nutzer.
-.SS Kennwortgültigkeitsinformationen
-Die Information zur Gültigkeitsdauer des Kennwortes kann vom Superuser
-mit den Optionen \fB-x\fR, \fB-n\fR, \fB-w\fR und \fB-i\fR geändert werden.
-Mit der Option \fB-x\fR wird die maximale Anzahl an Tagen eingestellt,
-die ein Kennwort gültig bleiben soll.
-Nach \fImax\fR Tagen wird eine Kennwortänderung verlangt.
-Die Option \fB-n\fR setzt die minimale Gültigkeitsdauer in Tagen,
-nach der ein Kennwort geändert werden kann.
-Es ist dem Nutzer nicht gestattet, sein Kennwort zu ändern, bis
-\fImin\fR Tage verstrichen sind.
-Die Option \fB-w\fR wird genutzt, um die Anzahl der Tage zu setzen,
-an denen der Nutzer gewarnt wird, daß die Gültigkeit seines/ihres Kennwortes
-bald ausläuft.
-Die Warnung tritt dann \fIwarn\fR Tage vor dem Ablauf der Gültigkeit ein,
-und teilt dem Nutzer mit, wieviele Tage noch bis zur notwendigen Änderung
-verbleiben.
-Durch \fB-i\fR wird verwendet, ein Konto zu sperren, wenn das Kennwort nicht
-ein paar Tage nach Ablauf der Gültigkeit geändert wurde.
-Wenn die Gültigkeit bereits für \fIinaktiv\fR Tage überschritten wurde,
-kann sich der Nutzer nicht mehr an seinem Konto anmelden.
+Wenn das Passwort akzeptiert wird, fordert \fBpasswd\fR zu einer erneuten
+Eingabe des Passworts auf und vergleicht die zweite Eingabe mit der
+ersten. Beide Eingaben müssen übereinstimmen, damit das Passwort geändert wird.
+.SS Gruppenpasswörter
+Wenn die Option \fB\-g\fR benutzt wird, wird das Passwort für die bezeichnete
+Gruppe verändert. Der Nutzer muss entweder der Superuser oder der Administrator
+der Gruppe sein. Das aktuelle Gruppenpasswort wird nicht abgefragt. Die Option
+\fB\-r\fR wird zusammen mit der Option \fB\-g\fR verwendet, um das aktuelle
+Passwort der Gruppe zu entfernen. Das erlaubt den Zugang zur Gruppe für alle
+Mitglieder. Die Option \fB\-R\fR wird mit der Option \fB\-g\fR benutzt, um den
+Zugang zur Gruppe für alle Nutzer zu beschränken.
+.SS Informationen über den Verfall des Passworts
+Die Informationen über die Gültigkeitsdauer des Passworts können vom Superuser
+mit den Optionen \fB\-x\fR, \fB\-n\fR, \fB\-w\fR und \fB\-i\fR geändert werden.
+Die Option \fB\-x\fR wird verwendet, um die maximale Anzahl von Tagen
+festzulegen, die das Passwort gültig bleibt. Nach \fImax\fR Tagen muss das
+Passwort geändert werden.
+Mit der Option \fB\-n\fR kann die Mindestzahl der Tage bestimmt werden, bevor es
+verändert werden darf. Der Nutzer kann das Passwort nicht ändern, bevor nicht
+\fImin\fR Tage abgelaufen sind.
+Die Option \fB\-w\fR wird verwendet, um die Anzahl der Tage festzulegen, an
+denen der Nutzer eine Warnung erhält, bevor sein Passwort ungültig wird. Die
+Warnung wird dem Nutzer \fIwarn\fR Tage vor dem Verfall mitgeteilt und enthält
+den Hinweis, wie viele Tage noch verbleiben, bis das Passwort verfällt.
+Die Option \fB\-i\fR wird benutzt, um das Nutzerkonto zu deaktivieren, nachdem
+das Passwort für eine bestimmte Anzahl von Tagen ungültig war. Wenn ein
+Nutzerkonto ein abgelaufenes Passwort für \fIinact\fR Tage hatte, kann der
+Nutzer sich nicht mehr bei seinem Konto anmelden.
 .PP
-Wenn die sofortige Ungültigkeit eines Kennwortes gewünscht wird,
-kann dieses über die Option \fB-e\fR eingestellt werden.
-Diese Maßnahme zwingt den Nutzer dazu, sein/ihr Kennwort beim nächsten
-Login zu ändern. Mit der Option \fB-d\fR kann ein Kennwort gelöscht werden.
-Dies sollte mit Vorsicht verwendet werden, denn ein leeres Kennwort kann
-bedeuten, daß beim Login keines mehr benötigt wird und somit Eindringlinge
-Zugang zum System haben.
-.SS Kontoverwaltung
-Nutzerkonten können mit den Optionen \fB-l\fR und \fB-u\fR gesperrt und
-wieder entsperrt werden.
-Die Option \fB-l\fR deaktiviert ein Konto dadurch, daß das Kennwort
-auf einen Wert gesetzt wird, der durch kein verschlüsseltes Kennwort
-dargestellt werden kann.
-Die Option \fB-u\fR schaltet das Konto wieder frei, indem das
-Kennwort auf seinen vorherigen Wert zurückgesetzt wird.
+Wenn Sie wollen, dass ein Passwort eines Kontos sofort verfällt, sollten Sie
+die Option \fB\-e\fR verwenden. Das hat zur Folge, dass der Nutzer gezwungen
+wird, sein Passwort zu ändern, wenn er sich das nächste Mal anmeldet. Sie
+können auch die Option \fB\-d\fR verwenden, um das Passwort eines Nutzers zu
+löschen (es wird also leer).  Seien Sie mit dieser Option vorsichtig, da sie
+dazu führt, dass ein Konto überhaupt kein Passwort zur Anmeldung benötigt. Das
+öffnet Ihr System für Eindringlinge.
+.SS Wartung der Konten
+Nutzerkonten können mit den Flags \fB\-l\fR und \fB\-u\fR gesperrt und
+freigegeben werden.
+Die Option \fB\-l\fR schaltet ein Konto ab, indem es ein Passwort zuweist, das
+mit keinem möglichen verschlüsselten Wert übereinstimmen kann.
+Die Option \fB\-u\fR reaktiviert ein Konto wieder, indem das Passwort auf seinen
+alten Wert zurückgesetzt wird.
 .PP
-Der Status eines Kontos kann mit der Option \fB-S\fR angesehen werden.
-Die Statusinformation besteht aus 7 Feldern.
-Das erste Feld ist der Loginname des Nutzers, gefolgt von dem Zustand
-des Kontos: gesperrt (L), ohne Kennwort (NP), oder normal mit Kennwort
-(P). Das dritte Feld gibt das Datum der letzten Kennwortänderung
-zurück. In den restlichen vier Feldern stehen die minimale und maximale
-Gültigkeitsdauer, die Warnzeit und die Dauer, nach der bei Inaktivität
-das Konto gesperrt wird.
-Diese Werte sind als Tagesangaben zu verstehen.
-Siehe obiger Absatz
-.B Kennwortgültigkeitsinformationen
-für eine Erläuterung dieser Felder.
-.SS Hinweise für Nutzerkennwörter
-Die Sicherheit des Kennwortes hängt von der Leistungsfähigkeit
-des Verschlüsselungsalgorithmus und dem Schlüsselraum ab.
-Die auf \fB\s-2UNIX\s+2\fR-Systemen eingesetzte Verschlüsselungsmethode
-basiert auf dem NBS DES-Algorithmus und gilt als sehr sicher.
-Die Größe des Schlüsselraumes hängt von der Zufälligkeit (Entropie)
-des ausgewählten Kennwortes ab.
+Der Kontostatus kann mit der Option \fB\-S\fR abgerufen werden. Die
+Statusinformation besteht aus sieben Feldern.  
+Das erste Feld ist der Login\-Name des Nutzers.
+Das zweite Feld zeigt an, ob das Nutzerkonto gesperrt ist (L), kein Passwort
+hat (NP) oder ein verwendbares Passwort hat (P).
+Das dritte Feld zeigt das Datum der letzten Veränderung des Passworts an.
+Die nächsten vier Felder sind die minimale Zeit, die maximale Zeit, die Dauer
+der Warnung und die Dauer der Untätigkeit für das Passwort.
+Die Zeiträume werden in Tagen ausgedrückt. Lesen Sie oben
+.B Informationen über den Verfall des Passworts
+zu Ausführungen über diese Felder.
+.SS Hinweise zu Nutzerpasswörtern
+Die Sicherheit eines Passworts hängt von der Stärke des
+Verschlüsselungsalgorithmus und von der Größe des Schlüsselraums (key space)
+ab. Die Verschlüsselung auf \fB\s\-2UNIX\s+2\fR\-Systemen basiert auf dem
+NBS\-DES\-Algorithmus und ist sehr sicher. Die Größe des Schlüsselraums hängt von
+der Zufälligkeit des gewählten Passworts ab.
 .PP
-Zwischenfälle bei Sicherheitsmaßnahmen mit Kennwörtern sind meist
-durch unsachgemäßen Umgang oder ungenügende Kennwortwahl bedingt.
-Aus diesem Grund sollte man kein Kennwort wählen, welches in einem
-Wörterbuch vorkommt, oder so kompliziert ist daß man es notieren
-muß.
-Es sollte auch keinem Namen entsprechen, und ebensowenig der
-Ausweisnummer, dem Geburtstagsdatum oder der Adresse.
-Nichtbeachtung dieser Regeln führt oft zu Verletzungen der Systemsicherheit.
+Gefahren für die Sicherheit von Passwörtern kommen gewöhnlich von sorgloser
+Wahl oder Handhabung des Passworts.
+Daher sollten Sie kein Passwort wählen, das in einem Wörterbuch auftaucht oder
+das aufgeschrieben werden muss. Das Passwort sollte somit kein echter Name,
+Ihr Autokennzeichen, Geburtstag oder Ihre Adresse sein. All das kann dazu
+verwendet werden, das Passwort zu erraten, und stellt daher eine Gefahr für die
+Sicherheit Ihres Systems dar.
 .PP
-Das Kennwort muß dennoch einfach genug gehalten sein, daß man nicht
-gezwungen ist, es auf Papier niederzuschreiben.
-Das kann erreicht werden, indem man zwei kleine Wörter durch ein
-Sonderzeichen miteinander verbindet, bespielsweise so: Pass%wort.
+Sie müssen sich Ihr Passwort leicht merken können, damit Sie nicht gezwungen
+sind, es auf ein Stück Papier aufzuschreiben. Das können Sie dadurch erreichen,
+indem zwei kurze Wörter zusammengefügt werden und mit einem besonderen Zeichen
+oder einer Zahl getrennt werden. Zum Beispiel Pass%wort.
 .PP
-Andere Konstruktionsmethoden beinhalten die Auswahl eines leicht
-zu merkenden Satzes und die Bildung eines Wortes durch
-Aneinanderreihung der Anfangs- oder Endbuchstaben seiner Wörter.
-Das Beispiel hierfür kommt aus 'Faust'
+Eine andere Herangehensweise ist es, einen leicht zu merkenden Satz aus der
+Literatur zu wählen und den ersten oder letzten Buchstaben von jedem Wort zu
+nehmen. Ein Beispiel dafür:
 .IP "" .5i
-Was wollt ihr da? Was schlich sich ein?
+Die Kruste wird im Allgemeinen ueberbewertet!
 .PP
-welches folgendes Wort bildet:
+Das ergibt
 .IP "" .5i
-WwidWss1.
+DKwiAu!
 .PP
-Man kann sich ziemlich sicher sein, daß nur weniger Cracker
-diesen Term in ihrem Wörterbuch haben.
-Man sollte jedoch eigene Methoden zum Konstruieren von
-Kennwörtern finden, und sich nicht ausschließlich auf die
-hier aufgezeigten Kennwörter verlassen.
-.SS Bemerkungen zu Gruppenkennwörtern
-Gruppenkennwörter können ein ernsthaftes Sicherheitsproblem
-darstellen, da mehr als eine Person befugt ist, das Kennwort
-zu kennen.
-Gruppen sind allerdings ein wichtiges Werkzeug für die Kooperation
-unter verschiedenen Nutzern.
-.SH HINWEISE
-Nicht alle Optionen werden unterstützt.
-Die Komplexitätsprüfung für Kennwörter kann sich von Rechner
-zu Rechner unterscheiden.
-Der Nutzer wird angehalten, ein Kennwort zu wählen, was so
-komplex ist wie er/sie es für richtig hält.
-Nutzer können eventuell ihre Kennwörter nicht ändern,
-wenn NIS eingesetzt wird und sie nicht im NIS-Server eingeloggt sind.
+Sie können einigermaßen sicher sein, dass dieses Wort nur wenige Cracker in
+ihren Wörterlisten haben. Sie sollten allerdings Ihre eigenen Methoden
+entwickeln, wie Sie Passwörter wählen, und sich nicht ausschließlich auf die
+hier vorgestellten stützen.
+.SS Anmerkungen zu Gruppenpasswörtern
+Gruppenpasswörter beinhalten ein inhärentes Sicherheitsproblem, da mehr als nur
+eine Person das Passwort kennt. Damit haftet schon der Idee von
+Gruppenpasswörtern ein Sicherheitsproblem an. Jedoch sind Gruppen ein
+nützliches Werkzeug, um Zusammenarbeit zwischen verschiedenen Nutzern zu
+ermöglichen.
+.SH WARNUNGEN
+Es kann sein, dass einige Optionen nicht unterstützt werden.
+Die Komplexität der Passwortprüfung kann sich auf verschiedenen Systemen
+unterscheiden.
+Der Nutzer wird angehalten, ein so komplexes Passwort zu wählen, wie es ihm
+angenehm ist.
+Nutzer können unter Umständen ihr Passwort nicht ändern, wenn auf dem System
+NIS aktiviert ist, sie aber nicht am NIS\-Server angemeldet sind.
 .SH DATEIEN
-.TP
-.I /etc/passwd 
-Informationen über Nutzerkonten
-.TP
-.I /etc/shadow 
-Verschlüsselte Nutzerkennwörter
+\fI/etc/passwd\fR              \- Informationen zu den Nutzerkonten
+.br
+\fI/etc/shadow\fR              \- Verschlüsselte Informationen zu den Nutzerkonten
+.SH "RÜCKGABEWERTE"
+.TP 2
+Der Befehl \fBpasswd\fR gibt beim Beenden folgende Werte zurück:
+\fB0\fR        \- Erfolg
+.br
+\fB1\fR        \- Berechtigung verweigert
+.br
+\fB2\fR        \- ungültige Kombination von Optionen
+.br
+\fB3\fR        \- unerwarteter Fehler, nichts verändert
+.br
+\fB4\fR        \- unerwarteter Fehler, die Datei passwd fehlt
+.br
+\fB5\fR        \- Datei passwd wird benutzt, versuchen Sie es später noch einmal
+.br
+\fB6\fR        \- ungültiges Argument für Option
 .SH "SIEHE AUCH"
 .BR group (5),
-.BR passwd (5)
+.BR passwd (5),
 .BR shadow (5)
 .SH AUTOR
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
-.br
-Deutsche Übersetzung von Josef Spillner <josef@ggzgamingzone.org>
-
+.PP
+Übersetzung von Simon Brandmair <sbrandmair@gmx.net> (Apr 2005)
diff --git a/man/de/passwd.5 b/man/de/passwd.5
new file mode 100644 (file)
index 0000000..a076c98
--- /dev/null
@@ -0,0 +1,94 @@
+.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth\-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" The GNU General Public License's references to "object code"
+.\" and "executables" are to be interpreted as the output of any
+.\" document formatting or typesetting system, including
+.\" intermediate and printed output.
+.\"
+.\" This manual is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public
+.\" License along with this manual; if not, write to the Free
+.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
+.\" USA.
+.\"
+.\" Modified Sun Jul 25 10:46:28 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Sun Aug 21 18:12:27 1994 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified Thu Dec 21 19:49:52 1995 by Rene Tschirley (gremlin@cs.tu\-berlin.de)
+.\" Modified Mon Jun 10 00:15:12 1996 by Martin Schulze (joey@linux.de)
+.\"
+.TH PASSWD 5 "24. Juli 1993" "Linux" "Dateiformate"
+.SH BEZEICHNUNG
+passwd \- Paßwort\-Datei
+.SH BESCHREIBUNG
+.B Passwd
+ist eine ASCII\-Datei, die eine Liste der Benutzer des Systems und
+deren Paßwörter enthält.  Die Paßwort\-Datei sollte für alle
+Benutzer lesbar sein, was für die Verschlüsselung notwendig ist,
+aber nur vom Superuser beschreibbar.  Wenn Sie eine neue Kennung
+einrichten, lassen Sie das Paßwort\-Feld in der Datei frei und benutzen
+.BR passwd (1),
+um dem System ein Paßword für die neue Kennung mitzuteilen.  Ein Stern
+oder ein ähnliches Sonderzeichen im Paßwort bedeutet, daß sich dieser
+Benutzer nicht mit
+.BR login (1)s
+einloggen kann.  Wenn sich Ihr Root\-Dateisystem in  
+.I /dev/ram
+befindet, müssen Sie die veränderte Paßwort\-Datei in
+Ihr Root\-Dateisystem auf der Startdiskette kopieren und die
+Zugriffsrechte überprüfen, bevor Sie Ihr System herunterfahren.
+Wenn Sie Benutzer zu Gruppen zusammenfassen möchten, muß die GID
+übereinstimmen und es muß ein entsprechender Eintrag in der Datei
+.I /etc/group
+existieren, oder die Gruppe wird nicht vom System anerkannt.
+.PP
+Die Datei enthält einen Eintrag pro Zeile, mit dem Format:
+.sp
+.RS
+login_name:passwd:UID:GID:user_name:directory:shell
+.RE
+.sp
+Die Bedeutung der Felder:
+.sp
+.RS
+.TP 1.0in
+.I login_name
+Kennung des Benutzers auf dem System.
+.TP
+.I password
+Das verschlüsselte Paßwort des Benutzers.
+.TP
+.I UID
+Die numerische Benutzernummer.
+.TP
+.I GID
+Die numerische Gruppennummer des Benutzers.
+.TP
+.I user_name
+Ein optionales Kommentarfeld, oft benutzt für den vollen Namen des
+Benutzers und weitere Informationen (Telefon, Raum\-Nummer etc.).
+.TP
+.I directory
+Das Heimatverzeichnis $HOME des Benutzers.
+.TP
+.I shell
+Das Programm, das beim Einloggen gestartet werden soll (falls nicht
+nötig, benutzen Sie 
+.IR /bin/sh ).
+.RE
+.SH DATEIEN
+.I /etc/passwd
+.SH "SIEHE AUCH"
+.BR passwd (1),
+.BR login (1), 
+.BR group (5).
+
index 6793e5f580199f17babc57b6412a560c5b806803..a07125baed1421037731d47dd1ea82295972c6a7 100644 (file)
@@ -1,20 +1,20 @@
-.\"$Id: vipw.8,v 1.1 2004/12/29 23:00:28 kloczek Exp $
+.\"$Id: vipw.8,v 1.2 2005/04/05 19:08:53 kloczek Exp $
 .\"
-.\"Translated into german by Helge Kreutzmann <kreutzm@itp.uni-hannover.de>
+.\"Translated into german by Helge Kreutzmann <kreutzm@itp.uni\-hannover.de>
 .TH VIPW 8 "21 Jul 2004"
 .SH NAME
-vipw, vigr \- bearbeitet die Passwort-, Gruppen, Shadow-Paßwort oder Shadow-Gruppen-Datei.
+vipw, vigr \- bearbeitet die Passwort\-, Gruppen, Shadow\-Paßwort oder Shadow\-Gruppen\-Datei.
 .SH SYNTAX
-\fBvipw\fR [\fB-s\fR]
+\fBvipw\fR [\fB\-s\fR]
 .br
-\fBvigr\fR [\fB-s\fR]
+\fBvigr\fR [\fB\-s\fR]
 .SH BESCHREIBUNG
 .BR vipw " und " vigr
 bearbeiten die Dateien
 .IR /etc/passwd " bzw. " /etc/group .
 Mit dem 
-.B -s
-Schalter bearbeiten sie die Shadow-Version dieser Dateien,
+.B \-s
+Schalter bearbeiten sie die Shadow\-Version dieser Dateien,
 .IR /etc/shadow " bzw. " /etc/gshadow .
 Diese Programme setzen die entsprechenden Locks um Dateibeschädigung
 zu verhindern.
@@ -24,7 +24,7 @@ die Umgebungsvariable
 .BR VISUAL ,
 dann die Umgebungsvariable
 .BR EDITOR ,
-und schließlich den Aufruf des Standard-Editors
+und schließlich den Aufruf des Standard\-Editors
 .BR vi (1).
 .SH "SIEHE AUCH"
 .BR group (5),
index 5873bc26ff1843326043f6127062331615476315..16f2c2c7b4625bb31c71d9670743ff1d88c43a2e 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -86,17 +86,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -188,9 +187,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/es/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/es/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/es/Makefile
+         $(AUTOMAKE) --foreign  man/es/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 3c6c2bddaac0116349a5eb4f606765e5587ad90c..9a73d8080737beaa88c13a4bd15fe5661be8fd46 100644 (file)
@@ -3,7 +3,7 @@
 .\"
 .\" Translated 17 sep. 1998 by Juan José López Mellado(laveneno@hotmail.com) 
 .\"
-.TH LOGIN 1 "4 Noviembre 1996" "Util-linux 1.6" "Manual del Programador de Linux"
+.TH LOGIN 1 "4 Noviembre 1996" "Util\-linux 1.6" "Manual del Programador de Linux"
 .SH NOMBRE
 login \- firmar
 .SH SINOPSIS
@@ -158,7 +158,7 @@ Una secci
 CLASSES
 miclase1               tty1 tty2
 miclase2               tty3 @.foo.com
-.in -.5
+.in \-.5
 .fi
 .PP
 Esto define las clases
@@ -192,7 +192,7 @@ Un ejemplo de una secci
 GROUPS
 sys            tty1 @.bar.edu
 stud           miclase1 tty4
-.in -0.5
+.in \-0.5
 .fi
 .PP
 Este ejemplo especifica que los miembros del grupo
@@ -223,7 +223,7 @@ Una secci
 USERS
 zacho          tty1 @130.225.16.0/255.255.255.0
 pepe           tty3 miclase2
-.in -0.5
+.in \-0.5
 .fi
 .PP
 Esto autoriza al usuario zacho a ingresar solo en el tty1 y desde los
@@ -250,7 +250,7 @@ ttyS0.
 .IP o
 La cadena @localhost, indicando que el usuario está autorizado a
 telnet/rlogin desde el host local al mismo host. Esto también habilita al
-usuario a ejecutar, por ejemplo, el comando: xterm -e /bin/login.
+usuario a ejecutar, por ejemplo, el comando: xterm \-e /bin/login.
 .PP
 .IP o
 Un sufijo de nombre de dominio como @.algun.dom, indicando que el usuario
@@ -270,11 +270,11 @@ Cualquiera de los or
 especificación temporal acordando con la sintaxis:
 .PP
 .nf
-espec-tiempo ::= '[' <día-u-hora> [':' <día-u-hora>]* ']'
+espec\-tiempo ::= '[' <día\-u\-hora> [':' <día\-u\-hora>]* ']'
 día          ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
 hora         ::= '0' | '1' | ... | '23'
-espec-hora   ::= <hora> | <hora> '\-' <hora>
-día-u-hora   ::= <día> | <espec-hora>
+espec\-hora   ::= <hora> | <hora> '\-' <hora>
+día\-u\-hora   ::= <día> | <espec\-hora>
 .fi
 .PP
 Por ejemplo, el origen [mon:tue:wed:thu:fri:8\-17]tty3 significa que solo
@@ -327,6 +327,6 @@ de BSD no est
 .
 .SH AUTOR
 Derivado de login 5.40 de BSD (5/9/89) por Michael Glad (glad@daimi.dk)
-para HP-UX
+para HP\-UX
 .br
 Portado a Linux 0.12: Peter Orbaek (poe@daimi.aau.dk)
index 1d56a13419865cab854ca1459191de65263fa282..165e7a10d0de20add4c05902707b2c90e8a92032 100644 (file)
@@ -3,7 +3,7 @@
 .\"
 .\" Translated 2 Dec 1998 by Victor Moral (victor@venexma.es) 
 .\"
-.TH PASSWD 1 "11 Noviembre 1996" "Util-linux 2.6" "Manual del Programador Linux"
+.TH PASSWD 1 "11 Noviembre 1996" "Util\-linux 2.6" "Manual del Programador Linux"
 .SH NOMBRE
 passwd \- cambia contraseñas
 .SH SINOPSIS
@@ -126,11 +126,9 @@ contrase
 .I /etc/passwd
 El archivo que contiene las contraseñas.
 .SH "VÉASE TAMBIÉN"
-.BR chsh (1),
-.BR chfn (1),
-.BR syslog (3),
-.BR syslog.conf (5),
-.BR passwd (8).
+.BR group (5),
+.BR passwd (5),
+.BR shadow (5)
 .SH AUTOR
 Peter Orbaek (poe@daimi.aau.dk).
 .br
index 197a2d159b2559bd38b27c6996e97f56f99831e3..22c624bb3944477e784e04e367d0447fa24088f9 100644 (file)
@@ -1,4 +1,4 @@
-.\" -*- nroff -*-
+.\" \-*\- nroff \-*\-
 .\"Translated 21 Jul 1998 by Javi Diaz (javid@si.upc.es)
 .TH SU 1 "Utilidades Shell de GNU" "FSF"
 .SH NOMBRE
@@ -6,7 +6,7 @@ su \-  ejecuta una shell con identificadores de grupo y de usuario distintos
 .SH SINOPSIS
 .B su
 [\-flmp] [\-c comando] [\-s shell] [\-\-login] [\-\-fast]
-[\-\-preserve-environment] [\-\-command=comando] [\-\-shell=shell] [\-]
+[\-\-preserve\-environment] [\-\-command=comando] [\-\-shell=shell] [\-]
 [\-\-help] [\-\-version] [usuario [arg...]]
 .SH DESCRIPCIÓN
 Este documento ya no es mantenido y puede ser impreciso o incompleto. La
@@ -40,7 +40,7 @@ a la shell ejecutada.
 .PP
 .B su
 no ejecuta de manera especial /bin/sh u otras shells (colocando en argv[0] el
-valor "-su", pasando -c únicamente a algunas shells, etc.).
+valor "\-su", pasando \-c únicamente a algunas shells, etc.).
 .PP
 En sistemas que utilicen syslog,
 .B su
index f30ab260bff9a09f122b07eb18d64b9ff4d213ed..c832f63c25515183291a2086bdc733a897d1fadd 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: expiry.1,v 1.5 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: expiry.1,v 1.8 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\" Modified for expiry by Ben Collins <bcollins@debian.org>, 1999
 expiry \- check and enforce password expiration policy
 .SH SYNOPSIS
 .TP 6
-\fBexpiry\fR [\fB-c\fR] [\fB-f\fR]
+\fBexpiry\fR [\fB\-c\fR] [\fB\-f\fR]
 .SH DESCRIPTION
-\fBexpiry\fR checks (\fB-c\fR) the current password expiration and forces
-(\fB-f\fR) changes when required. It is callable as a normal user command.
+\fBexpiry\fR checks (\fB\-c\fR) the current password expiration and forces
+(\fB\-f\fR) changes when required. It is callable as a normal user command.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - shadow user account information
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR passwd (5),
 .BR shadow (5)
index af506098fb9618a2b941e83bfe0cca8831b694ac..631e9840adac7e109506ace23e73260ada4019f2 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: faillog.5,v 1.9 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: faillog.5,v 1.10 2005/04/02 16:10:23 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -47,7 +47,7 @@ The structure of the file is
         };
 .DE
 .SH FILES
-\fI/var/log/faillog\fR \       - login failure log
+\fI/var/log/faillog\fR \- login failure log
 .SH SEE ALSO
 .BR faillog (8)
 .SH AUTHOR
index f7e415f6389ec74b097717f7d33e4b47f94d647d..4e9ef16354267bcc481afa441e73d33f77c43496 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: faillog.8,v 1.15 2004/12/11 16:49:33 kloczek Exp $
+.\" $Id: faillog.8,v 1.19 2005/04/09 17:09:56 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"
 .TH FAILLOG 8
 .SH NAME
-faillog \- examine faillog and set login failure limits
+faillog \- display faillog records or set login failure limits
 .SH SYNOPSIS
 .TP 6
-\fBfaillog\fR [\fB-u\fR \fIlogin-name\fR] [\fB-a\fR] [\fB-t\fR \fIdays\fR]
-[\fB-m\fR \fImax\fR] [\fB-pr\fR] 
+\fBfaillog\fR [\fBoptions\fR]
 .SH DESCRIPTION
-\fBfaillog\fR formats the contents of the failure log,
-\fI/var/log/faillog\fR, and maintains failure counts and
-limits. The order of the arguments to \fBfaillog\fR is significant. Each
-argument is processed immediately in the order given.
+\fBfaillog\fR formats the contents of the failure log from \fI/var/log/faillog\fR
+database. It also can be used for maintains failure counters and limits.
+Run \fBfaillog\fR without arguments display only list of user faillog records
+who have ever had a login failure.
 .SH OPTIONS
-The \fB-p\fR flag causes failure entries to be printed in UID order.
-Entering \fB-u \fIlogin-name\fR flag will cause the failure record for
-\fIlogin-name\fR only to be printed. Entering \fB-t \fIdays\fR will cause
-only the failures more recent than \fIdays\fR to be printed. The \fB-t\fR
-flag overrides the use of \fB-u\fR. The \fB-a\fR flag causes all users to be
-selected. When used with the \fB-p\fR flag, this option selects all users
-who have ever had a login failure. It is meaningless with the \fB-r\fR flag.
-.PP
-The \fB-r\fR flag is used to reset the count of login failures. Write access
-to \fI/var/log/faillog\fR is required for this option. Entering \fB-u
-\fIlogin-name\fR will cause only the failure count for \fIlogin-name\fR to
-be reset.
-.PP
-The \fB-m\fR flag is used to set the maximum number of login failures before
-the account is disabled. Write access to \fI/var/log/faillog\fR is required
-for this option. Entering \fB-m \fImax\fR will cause all accounts to be
-disabled after \fImax\fR failed logins occur. This may be modified with
-\fB-u \fIlogin-name\fR to limit this function to \fIlogin-name\fR only.
-Selecting a \fImax\fR value of 0 has the effect of not placing a limit on
-the number of failed logins. The maximum failure count should always be 0
-for \fBroot\fR to prevent a denial of services attack against the system.
-.PP
-Options may be combined in virtually any fashion. Each \fB-p\fR, \fB-r\fR,
-and \fB-m\fR option will cause immediate execution using any \fB-u\fR or
-\fB-t\fR modifier.
+The options which apply to the \fBfaillog\fR command are:
+.IP "\fB\-a\fR, \fB\-\-all\fR"
+Display faillog records for all users.
+.IP "\fB\-h\fR, \fB\-\-help\fR"
+Display help message and exit.
+.IP "\fB\-l\fR, \fB\-\-lock\-time\fR \fISEC\fR"
+Lock accout to \fISEC\fR seconds after failed login.
+.IP "\fB\-m\fR, \fB\-\-maximum\fR \fIMAX\fR"
+Set maiximum number of login failures after the account is disabled to
+\fIMAX\fR. Selecting \fIMAX\fR value of 0 has the effect of not placing a
+limit on the number of failed logins. The maximum failure count should
+always be 0 for \fBroot\fR to prevent a denial of services attack against
+the system.
+.IP "\fB\-r\fR, \fB\-\-reset\fR"
+Reset the counters of login failures or one recor if used with \-u
+\fILOGIN\fR option. Write access to \fI/var/log/faillog\fR is required for
+this option.
+.IP "\fB\-t\fR, \fB\-\-time\fR \fIDAYS\fR"
+Display faillog records more recent than \fIDAYS\fR. The \fB\-t\fR flag
+overrides the use of \fB\-u\fR.
+.IP "\fB\-u\fR, \fB\-\-user\fR \fILOGIN\fR"
+Display faillog record or maintains failure counters and limits (if used
+with \fB\-l\fR, \fB\-m\fR or \fB\-r\fR options) only for user with \fILOGIN\fR.
 .SH CAVEATS
 \fBfaillog\fR only prints out users with no successful login since the last
 failure. To print out a user who has had a successful login since their last
-failure, you must explicitly request the user with the \fB-u\fR flag, or
-print out all users with the \fB-a\fR flag.
+failure, you must explicitly request the user with the \fB\-u\fR flag, or
+print out all users with the \fB\-a\fR flag.
 .SH FILES
-\fI/var/log/faillog\fR \       - failure logging file
+\fI/var/log/faillog\fR \- failure logging file
 .SH SEE ALSO
 .BR login (1),
 .BR faillog (5)
index 5c8b58c93b52928c7183a7e2b356c24267f45737..ccd34e4cb17ab00ddadddcf37b2dcef0bae29ffb 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -89,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -201,9 +200,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/fr/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/fr/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/fr/Makefile
+         $(AUTOMAKE) --foreign  man/fr/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 1861d35512af7726ebdb5da298bcf56f627321cc..1c5433e9ae9c0d22e070d67e4fdf23e7399dd95a 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1990 - 1994 Julianne Frances Haugh
+.\" Copyright 1990 \- 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: chage.1,v 1.2 2003/04/26 13:24:12 kloczek Exp $
+.\"    $Id: chage.1,v 1.4 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .TH CHAGE 1 "1 Novembre 2001"
 .SH NOM
@@ -34,64 +34,64 @@ utilisateur.
 .SH SYNOPSIS
 .TP 6
 \fBchage\fR
-[\fB-m \fImin\fR] [\fB-M \fImax\fR]
-[\fB-d \fIdernier\fR] [\fB-I \fIinactive\fR]
+[\fB\-m\fR \fImin\fR] [\fB\-M\fR \fImax\fR]
+[\fB\-d\fR \fIdernier\fR] [\fB\-I\fR \fIinactive\fR]
 .br
-[\fB-E \fIexpire\fR] [\fB-W \fIalerte\fR] \fIutilisateur\fR
+[\fB\-E\fR \fIexpire\fR] [\fB\-W\fR \fIalerte\fR] \fIutilisateur\fR
 .TP 6
 \fBchage\fR
-\fB-l\fR \fIutilisateur\fR
+\fB\-l\fR \fIutilisateur\fR
 .SH DESCRIPTION
 \fBchage\fR modifie le nombre de jours entre les changements de mot de passe
 ainsi que la date du dernier changement.
 Cette information est utilisée par le système pour déterminer quand un
 utilisateur doit changer son mot de passe.
-La commande \fBchage\fR est réservée au Super-utilisateur, sauf pour l'option
-\fB-l\fR, qui peut être utilisée par un utilisateur non privilégié pour savoir
+La commande \fBchage\fR est réservée au Super\-utilisateur, sauf pour l'option
+\fB\-l\fR, qui peut être utilisée par un utilisateur non privilégié pour savoir
 quand son mot de passe ou sont compte doit expirer.
 .PP
-Avec l'option \fB-m\fR, la valeur de \fImin\fR représente le nombre minimum
+Avec l'option \fB\-m\fR, la valeur de \fImin\fR représente le nombre minimum
 de jours entre chaque changement de mot de passe.
 Une valeur de zéro pour ce champ indique que l'utilisateur peut changer
 son mot de passe n'importe quand.
 .PP
-Avec l'option \fB-M\fR, la valeur de \fImax\fR représente le nombre maximum
+Avec l'option \fB\-M\fR, la valeur de \fImax\fR représente le nombre maximum
 de jours pendant lesquels un mot de passe est valide.
 Quand \fImax\fR plus \fIdernier\fR est inférieur à la date courante,
 l'utilisateur est obligé de changer son mot de passe avant de pouvoir
 utiliser son compte.
-Cet évènement peut être déclenché plus tôt grâce à l'option \fB-W\fR
+Cet évènement peut être déclenché plus tôt grâce à l'option \fB\-W\fR
 qui prévient l'utilisateur à l'avance avec un message d'alerte.
 .PP
-Avec l'option \fB-d\fR, la valeur \fIdernier\fR est le numéro du
+Avec l'option \fB\-d\fR, la valeur \fIdernier\fR est le numéro du
 jour depuis le 1er Janvier 1970, où le mot de passe a été changé la
 dernière fois.
-La date peut aussi être exprimée dans le format YYYY-MM-DD (ou le format
+La date peut aussi être exprimée dans le format YYYY\-MM\-DD (ou le format
 utilisé plus communément dans votre région).
 .PP
-L'option \fB-E\fR est utilisée pour définir une date à partir de laquelle
+L'option \fB\-E\fR est utilisée pour définir une date à partir de laquelle
 le compte de l'utilisateur ne sera plus accessible.
 La valeur \fIexpire\fR est le numéro du jour depuis le 1er Janvier 1970
 après lequel le compte sera bloqué.
-La date peut aussi être exprimée dans un format YYYY-MM-DD (ou le format
+La date peut aussi être exprimée dans un format YYYY\-MM\-DD (ou le format
 plus communément utilisé dans votre région).
 Un utilisateur dont le compte est bloqué doit contacter l'administrateur
 système pour pouvoir utiliser le système à nouveau.
 .PP
-L'option \fB-I\fR est utilisée pour définir le nombre de jours d'inactivité,
+L'option \fB\-I\fR est utilisée pour définir le nombre de jours d'inactivité,
 après qu'un mot de passe a expiré, avant que le compte ne soit bloqué.
 Un utilisateur dont le compte est bloqué doit contacter l'administrateur
 système avant de pouvoir utiliser le système à nouveau.
 La valeur \fIinactive\fR est le nombre de jours d'inactivité. Une valeur
 de 0 désactive cette fonction.
 .PP
-L'option \fB-W\fR est utilisée pour définir le nombre de jours d'alerte
+L'option \fB\-W\fR est utilisée pour définir le nombre de jours d'alerte
 avant que le changement de mot de passe ne soit obligatoire.
 La valeur \fIalerte\fR est le nombre de jours précédent l'expiration
 pendant lesquels un utilisateur sera prévenu que son mot de passe est
 sur le point d'expirer.
 .PP
-Toutes les valeurs ci-dessus sont stockées au jour près quand le fichier
+Toutes les valeurs ci\-dessus sont stockées au jour près quand le fichier
 «\~shadow password\~» est utilisé, mais sont converties en semaines
 quand le fichier de mots de passe standard est utilisé.
 À cause de cette conversion, des erreurs d'arrondis peuvent apparaître.
@@ -110,4 +110,3 @@ La valeur courante est affich
 .BR shadow (5)
 .SH TRADUCTION
 Olivier Marin, 2001.
-
index ad4501c1e3cb7b9ef7103f5d471735948a210160..20cbc9472c2453ae10530f8c4020adad1e2daf7b 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: chpasswd.8,v 1.1 2002/03/10 07:41:04 kloczek Exp $
+.\"    $Id: chpasswd.8,v 1.3 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .TH CHPASSWD 8
 .SH NOM
-\fBchpasswd\fR - met à jour le fichier de mots de passe par lot
+\fBchpasswd\fR \- met à jour le fichier de mots de passe par lot
 .SH SYNOPSIS
-\fBchpasswd [-e]\fR
+\fBchpasswd\fR [\fB\-e\fR]
 .SH DESCRIPTION
 \fBchpasswd\fR lit un fichier contenant des paires de nom d'utilisateur
 et mot de passe depuis l'entrée standard et utilise cette information
-pour mettre à jour un groupe d'utilisateurs existants.  Sans l'option -e, 
-les mots de passe fournis doivent être en clair.  Si l'option -e est
+pour mettre à jour un groupe d'utilisateurs existants.  Sans l'option \-e, 
+les mots de passe fournis doivent être en clair.  Si l'option \-e est
 utilisée, les mots de passe doivent être fournis cryptés.  Chaque ligne
 est au format
 .sp 1
index a49c0c760c539bc570ce859299259a210217e74e..a9f8237e2a560e8ac89d3430ab84cedb9065caaf 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\"  chsh.1 -- change your login shell
+.\"  chsh.1 \-\- change your login shell
 .\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
 .\"  this program is free software.  you can redistribute it and
@@ -7,10 +7,10 @@
 .\"  there is no warranty.
 .\"
 .\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:24 $
+.\"  $Revision: 1.4 $
+.\"  $Date: 2005/04/05 19:08:53 $
 .\"
-.\" Traduction 22/04/1997 par Christophe Blaess (ccb@club-internet.fr)
+.\" Traduction 22/04/1997 par Christophe Blaess (ccb@club\-internet.fr)
 .\"
 .TH CHSH 1 "22 Avril 1997" Linux "Manuel de l'utilisateur Linux"
 .SH NOM
@@ -33,7 +33,7 @@ shell n'est pas mentionn
 .IR /etc/shells .
 .SH OPTIONS
 .TP
-.I "\-l, \-\-list-shells"
+.I "\-l, \-\-list\-shells"
 Afficher la liste des shells mentionnés dans
 .I /etc/shells
 puis quitter.
@@ -44,8 +44,8 @@ Indiquer le shell de connexion d
 .I "\-u, \-\-help"
 Afficher un message d'aide puis quitter.
 .TP
-.I "-v, \-\-version"
-Afficher un numéro de version, puis quitter.
+.I "\-v, \-\-version"
+Afficher un numéro de version puis quitter.
 .SH "VOIR AUSSI"
 .BR login (1),
 .BR passwd (5),
index 3eb0751207ccefa1772848d2625e2674387be786..ecfcb6eb79029013132b777b9ce2fbc58af329ec 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1989 - 1994, Julianne Frances Haugh
+.\" Copyright 1989 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
index c919df7bd292f412868bead9a67b2e376089978f..721795c477da0bb464ab9606ca00c8f9621ed2cd 100644 (file)
@@ -4,7 +4,7 @@
 .\" published by the Free Software Foundation; either version 2 of the
 .\" License, or (at your option) any later version.
 .\"
-.\"    $Id: gpasswd.1,v 1.2 2003/04/26 13:24:12 kloczek Exp $
+.\"    $Id: gpasswd.1,v 1.3 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .TH GPASSWD 1
 .SH NOM
@@ -14,25 +14,25 @@ gpasswd \- administre le fichier /etc/group
 .B gpasswd \fIgroupe\fR
 .br
 .B gpasswd
-.B -a
+.B \-a
 \fIutilisateur\fR \fIgroupe\fR
 .br
 .B gpasswd
-.B -d
+.B \-d
 \fIutilisateur\fR \fIgroupe\fR
 .br
 .B gpasswd
-.B -R
+.B \-R
 \fIgroupe\fR
 .br
 .B gpasswd
-.B -r
+.B \-r
 \fIgroupe\fR
 .br
 .B gpasswd
-.RB [ -A
+.RB [ \-A
 \fIutilisateur\fR,...]
-.RB [ -M
+.RB [ \-M
 \fIutilisateur\fR,...]
 \fIgroupe\fR
 .br
@@ -41,17 +41,17 @@ gpasswd \- administre le fichier /etc/group
 est utilisé pour administrer le fichier /etc/group (ainsi que le fichier /etc/gshadow
 si l'option SHADOWGRP a été définie lors de la compilation).
 Chaque groupe peut avoir des administrateurs, des membres ainsi qu'un mot de passe.
-Les administrateurs systèmes possèdent les droits d'administrateur de groupe et de membre, il peuvent utiliser l'option \fB-A\fR pour définir le(s) administrateur(s) de groupe et l'option \fB-M\fR pour en définir les membres
+Les administrateurs systèmes possèdent les droits d'administrateur de groupe et de membre, il peuvent utiliser l'option \fB\-A\fR pour définir le(s) administrateur(s) de groupe et l'option \fB\-M\fR pour en définir les membres
 .PP
-Un administrateur de groupe peut ajouter ou supprimer des utilisateurs en utilisant respectivement les options \fB-a\fR et \fB-d\fR . Les administrateurs peuvent utiliser l'option \fB-r\fR pour supprimer le mot de passe d'un groupe. Lorsque aucun mot de passe n'est défini, seul les membres d'un groupe peuvent utiliser
+Un administrateur de groupe peut ajouter ou supprimer des utilisateurs en utilisant respectivement les options \fB\-a\fR et \fB\-d\fR . Les administrateurs peuvent utiliser l'option \fB\-r\fR pour supprimer le mot de passe d'un groupe. Lorsque aucun mot de passe n'est défini, seul les membres d'un groupe peuvent utiliser
 .BR newgrp (1)
-pour en faire partie. L'option \fB-R\fR désactive l'accès au groupe via la commande
+pour en faire partie. L'option \fB\-R\fR désactive l'accès au groupe via la commande
 .BR newgrp (1)
 .PP
 .B gpasswd
 exécuté par un administrateur de groupe suivit d'un nom de groupe, affiche simplement l'invite de changement de mot de passe du groupe. Si un mot de passe est défini alors seul les membres du groupe peuvent utiliser la commande
 .BR newgrp (1)
-sans entrer de mot de passe, les non-membres doivent le fournir.
+sans entrer de mot de passe, les non\-membres doivent le fournir.
 
 .SH FICHIERS
 \fI/etc/group\fR \- Identification des groupes
index 5247fa10dd07165b3b01c2a601f15f0d7a5819ef..2eab5393ba75e549a1eeffac6048b91e408bd5b7 100644 (file)
@@ -1,4 +1,4 @@
-.\" Traduction 09/01/1997 par Christophe Blaess (ccb@club-internet.fr)
+.\" Traduction 09/01/1997 par Christophe Blaess (ccb@club\-internet.fr)
 .\"
 .TH GROUPS 1L "9 Janvier 1997" FSF "Manuel de l'utilisateur Linux"
 .SH NOM
index db86f2465850d58e1ac058cafe366254c06780ce..266ee334dd82b18c4ac9a5b09d2e1d57104d887b 100644 (file)
@@ -17,7 +17,7 @@
 .\" the GNU Public License, in which case the provisions of the GPL are
 .\" required INSTEAD OF the above restrictions.  (This clause is
 .\" necessary due to a potential bad interaction between the GPL and
-.\" the restrictions contained in a BSD-style copyright.)
+.\" the restrictions contained in a BSD\-style copyright.)
 .\"
 .\"  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
 .\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 passwd \- mettre à jour les marques d'authentification d'un utilisateur.
 
 .SH SYNOPSIS
-.B passwd [-k] [-l] [-u [-f]] [-d] [-S] [nom_utilisateur]
+\fBpasswd\fR [\fB\-k\fR] [\fB\-l\fR] [\fB\-u\fR [\fB\-f\fR]] [\fB\-d\fR] [\fB\-S\fR] [\fInom_utilisateur\fR]
 .sp 2
 .SH DESCRIPTION
 Passwd est utilisé pour mettre à jour la (les) marque(s) d'authentification
 d'un utilisateur.  Passwd est configuré pour travailler grâce à l'
-.BR "API Linux-PAM" ". "
+.BR "API Linux\-PAM" ". "
 Il s'initialise principalement en tant que service "passwd" avec
-.I Linux-PAM
+.I Linux\-PAM
 et utilise les modules
 .I "password"
 configurés pour authentifier et ensuite mettre à jour le mot de passe d'un utilisateur.
 
 .sp
 Une entrée du fichier de configuration de
-.I Linux-PAM
+.I Linux\-PAM
 pour ce service serait :
 .br
   
@@ -85,36 +85,36 @@ Notez qu'aucun autre type de module n'est requis pour le fonctionnement
 correct de cette application.
 
 .SH OPTIONS
-.IP \fB-d\fR
+.IP \fB\-d\fR
 C'est une façon rapide pour désactiver un mot de passe pour un compte. Il
 supprimera le besoin du mot de passe pour un compte donné. Disponible
 uniquement pour root.
-.IP \fB-k\fR
+.IP \fB\-k\fR
 L'option,
-.BR -k ", "
+.BR \-k ", "
 est utilisée pour indiquer que la mise à jour ne devrait être effectuée que
 pour les marques d'identifications (mots de passe); l'utilisateur conserve
 ses marques non expirés.
-.IP \fB-l\fR
+.IP \fB\-l\fR
 Cette option est utilisé pour verrouiller le compte spécifié, et n'est
 disponible que pour root.  Le verrouillage est effecuté en rendant le mot de
 passe crypté invalide (en le préfixant par un !).
-.IP \fB--stdin\fR
+.IP \fB\-\-stdin\fR
 Cette option est utilisée pour indiquer que \fBpasswd\fR doit lire le
 nouveau mot de passe à partir de l'entrée standard, qui peut être un tube.
-.IP \fB-u\fR
-L'inverse de l'option précédente - il déverrouillera le mot de passe du
+.IP \fB\-u\fR
+L'inverse de l'option précédente \- il déverrouillera le mot de passe du
 compte en supprimant le préfixe "!".  Cette option n'est disponible que pour
 root.  Par défaut, \fBpasswd\fR refusera de créer un compte sans mot de
 passe associé (il ne déverrouillera pas un compte contenant uniquement !
-pour mot de passe).  L'option \fB-f\fR outrepassera cette protection.
-.IP \fB-S\fR
+pour mot de passe).  L'option \fB\-f\fR outrepassera cette protection.
+.IP \fB\-S\fR
 Cela affiche une information courte sur le statut du mot de passe pour un
 compte donné.  Disponible uniquement pour root.
 
-.SH "Rappelez-vous les deux principes suivants"
+.SH "Rappelez\-vous les deux principes suivants"
 .IP \fBProtégez\ votre\ mot de passe.\fR
-N'écrivez nulle part votre mot de passe - mémorisez-le.  En particulier, ne
+N'écrivez nulle part votre mot de passe \- mémorisez\-le.  En particulier, ne
 le laissez pas n'importe où et ne le placez pas non plus dans un fichier non
 crypté !  Utilisez des mots de passe non reliés sur des systèmes contrôlés
 par différentes organisations.  Ne divulguez ni ne partagez votre mot de
@@ -124,7 +124,7 @@ de passe pendant que vous le tapez.  N'entrez pas votre mot de passe sur un
 ordinateur auquel vous ne faites pas confiance, ou si les "choses" ont l'air
 amusantes; quelqu'un pourrait être en train d'essayer de détourner votre mot
 de passe.  Utilisez votre mot de passe pour une période limitée et
-modifiez-le périodiquement.
+modifiez\-le périodiquement.
 .IP \fBChoisisser un mot de passe difficile à deviner.\fR
 .I passwd
 essaiera de vous empêcher de choisir un mot de passe réellemnt mauvais, mais
@@ -138,7 +138,7 @@ personnelle qui soit accessible (comme votre num
 plaque d'immatriculation ou votre numéro de sécurité sociale), ou sur les
 personnes de votre entourage.  N'utilisez pas une date d'anniversaire ou un
 motif simple comme "azerty", "qwerty", "abc" ou "aaa").  N'utilisez aucun
-élément cité ci-dessus suivi ou précédé par un chiffre.  Au lieu de cela,
+élément cité ci\-dessus suivi ou précédé par un chiffre.  Au lieu de cela,
 utilisez un mélange de lettres minuscules et majuscules, de chiffres et de
 signes de ponctuation.  Utiliseez des mots de passe longs (disons d'au moins
 8 caractères).  Vous pourriez utiliser une paire de mots avec un signe de
@@ -160,10 +160,10 @@ dans le flux d'erreur standard.
 
 .SH "CONFORMITÉ À"
 .br
-.BR Linux-PAM
+.BR Linux\-PAM
 (Pluggable Authentication Modules pour Linux).
 .BR
-Notez que si votre distribution de Linux-PAM se conforme au Standard de
+Notez que si votre distribution de Linux\-PAM se conforme au Standard de
 Système de fichiers de Linux, vous pouvez trouver les modules dans
 .I /lib/security/
 au lieu de /usr/lib/security/, comme indiqué dans l'exemple.
@@ -171,8 +171,8 @@ au lieu de /usr/lib/security/, comme indiqu
 .SH "FICHIERS"
 .br
 .B /etc/pam.d/passwd
-- le fichier de configuration de
-.BR Linux-PAM
+\- le fichier de configuration de
+.BR Linux\-PAM
 
 .SH BOGUES
 .sp 2
@@ -186,11 +186,11 @@ et
 
 .sp
 Pour des informations plus complètes sur la façon de configurere cette application avec
-.BR Linux-PAM ", "
+.BR Linux\-PAM ", "
 voyez le
-.BR "Linux-PAM System Administrators' Guide" " at "
+.BR "Linux\-PAM System Administrators' Guide" " at "
 .br
-.I "<http://parc.power.net/morgan/Linux-PAM/index.html>"
+.I "<http://parc.power.net/morgan/Linux\-PAM/index.html>"
 
 .SH AUTEUR
 Cristian Gafton <gafton@redhat.com>
index 77523785ea77928e60e8b4543b52e41f51cf1742..3219e07ddeec103be21cbca73a385345980b03ec 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
+.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth\-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
 .\"
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
@@ -24,8 +24,8 @@
 .\" Modified Sun Aug 21 18:12:27 1994 by Rik Faith (faith@cs.unc.edu)
 .\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl)
 .\"
-.\" Traduction 17/10/1996 par Christophe Blaess (ccb@club-internet.fr)
-.\" Mise à jour 18/05/1998 (LDP-man-pages-1.19)
+.\" Traduction 17/10/1996 par Christophe Blaess (ccb@club\-internet.fr)
+.\" Mise à jour 18/05/1998 (LDP\-man\-pages\-1.19)
 .\"
 .TH PASSWD 5 "18 Mai 1998" Linux "Manuel de l'administrateur Linux"
 .SH NOM
@@ -57,7 +57,7 @@ avec lequel le fichier
 contient des * à la place des mots de passe, et où ces derniers sont
 stockés sous forme cryptée dans
 .I /etc/shadow
-qui n'est lisible que par le Super-utilisateur.
+qui n'est lisible que par le Super\-utilisateur.
 
 Que le masquage des mots de passe soit utilisé ou non, de nombreux
 administrateurs systèmes utilisent un astérique dans le champ
index 408216a90fb157444d87276d1e3fe51c29fc260c..05cc701ac62269075d158a17fe7b1ce2059ee8b7 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1989 - 1990, Julianne Frances Haugh
+.\" Copyright 1989 \- 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: shadow.5,v 1.2 2003/04/26 13:24:12 kloczek Exp $
+.\"    $Id: shadow.5,v 1.3 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .TH SHADOW 5
 .SH NOM
@@ -57,7 +57,7 @@ Le champs
 .I mot de passe
 doit être rempli.
 Le mot de passe crypté comprend 13 à 24 caractères pris dans 
-l'alphabet réduit a-z, A-Z, 0-9, \. et /.
+l'alphabet réduit a\-z, A\-Z, 0\-9, \. et /.
 Consultez \fBcrypt\fR(3) pour plus d'information sur le traitement de cette chaîne.
 .PP
 La date de dernière modification du mot de passe est donné par le nNombre de jours écoulés depuis le 1er janvier 1970 jusqu'au dernier changement de mot de passe.
@@ -73,9 +73,9 @@ Cette information est prioritaire sur toutes les autres champs pr
 .PP
 Ce fichier \fBne doit pas être\fR accessible en lecture par les utilisateurs normaux afin de maintenir la sécurité des mots de passe, en particuliers contre les attaques aux dictionnaires.
 .SH FICHIERS
-\fI/etc/passwd\fR - information sur les comptes des utilisateurs
+\fI/etc/passwd\fR \- information sur les comptes des utilisateurs
 .br
-\fI/etc/shadow\fR - mots de passe cryptés des utilisateurs
+\fI/etc/shadow\fR \- mots de passe cryptés des utilisateurs
 .SH VOIR AUSSI
 .BR chage (1),
 .BR login (1),
index 90c49381f0fdb839c4113648ab406233d9af6a22..99563bc26fcc019e6ee5f8e999cedd95a4a3087d 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: useradd.8,v 1.3 2004/11/04 03:06:31 kloczek Exp $
+.\"    $Id: useradd.8,v 1.4 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .\" Traduction 26/09/00 par Frédéric Delanoy (fdelanoy@info.fundp.ac.be)
 .\"
@@ -35,95 +35,95 @@ useradd \- Cr
 .SH SYNOPSIS
 .TP 8
 .B useradd
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR commentaire ]
-.RB [ -d
+.RB [ \-d
 .IR rép_perso ]
 .br
-.RB [ -e
+.RB [ \-e
 .IR date_expiration ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR groupe_initial ]
-.RB [ -G
+.RB [ \-G
 .IR groupe [,...]]
 .br
-.RB [ -m " [" -k
-.IR rép_squelette ] " |" " " -M ]
-.RB [ -p
+.RB [ \-m " [" \-k
+.IR rép_squelette ] " |" " " \-M ]
+.RB [ \-p
 .IR mot_de_passe ]
 .br
-.RB [ -s
+.RB [ \-s
 .IR shell ]
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
-.RB [ -n ] 
-.RB [ -r ] 
+.BR \-o ]]
+.RB [ \-n ] 
+.RB [ \-r ] 
 .I login
 .TP 8
 .B useradd
-\fB-D\fR
-[\fB-g\fI groupe_défaut\fR]
-[\fB-b\fI rép_perso_défaut\fR]
+\fB\-D\fR
+[\fB\-g\fI groupe_défaut\fR]
+[\fB\-b\fI rép_perso_défaut\fR]
 .br
-[\fB-f\fI inactivité\fR]
-[\fB-e\fI date_expiration_défaut\fR]
+[\fB\-f\fI inactivité\fR]
+[\fB\-e\fI date_expiration_défaut\fR]
 .br
-[\fB-s\fI shell_défaut\fR]
+[\fB\-s\fI shell_défaut\fR]
 .SH DESCRIPTION
 .SS Création de nouveaux utilisateurs
-Quand elle est invoquée sans l'option \fB-D\fR, la commande \fBuseradd\fR crée un nouveau compte utilisateur qui utilise les valeurs spécifiées sur la ligne de commandes, et les valeurs par défaut du système.  Le nouveau compte utilisateur sera inséré dans les fichiers du système quand c'est nécessaire, le répertoire personnel sera créé, et les fichiers initiaux copiés, cela dépendant des options présentes en ligne de commandes.  La version fournie avec Red Hat Linux crée un groupe pour chaque utilisateur ajouté au système, à moins que l'option \fB-n\fR ne soit fournie.  Les options qui s'appliquent à la commande \fBuseradd\fR sont :
-.\" .IP "\fB-A {\fImethod\fR|\fBDEFAULT\fR},..."
+Quand elle est invoquée sans l'option \fB\-D\fR, la commande \fBuseradd\fR crée un nouveau compte utilisateur qui utilise les valeurs spécifiées sur la ligne de commandes, et les valeurs par défaut du système.  Le nouveau compte utilisateur sera inséré dans les fichiers du système quand c'est nécessaire, le répertoire personnel sera créé, et les fichiers initiaux copiés, cela dépendant des options présentes en ligne de commandes.  La version fournie avec Red Hat Linux crée un groupe pour chaque utilisateur ajouté au système, à moins que l'option \fB\-n\fR ne soit fournie.  Les options qui s'appliquent à la commande \fBuseradd\fR sont :
+.\" .IP "\fB\-A {\fImethod\fR|\fBDEFAULT\fR},..."
 .\" The value of the user's authentication method.
 .\" The authentication method is the name of a program which is responsible
 é.\" for validating the user's identity.
 .\" The string \fBDEFAULT\fR may be used to change the user's authentication
 .\" method to the standard system password method.
-.\" This is a comma-separated list of program names.
+.\" This is a comma\-separated list of program names.
 .\" It may include \fBDEFAULT\fR exactly once.
-.IP "\fB-c \fIcommentaire\fR"
+.IP "\fB\-c \fIcommentaire\fR"
 Le champ de commentaire du fichier de mots de passe du nouvel utilisateur.
-.IP "\fB-d \fIrép_perso\fR"
+.IP "\fB\-d \fIrép_perso\fR"
 Le nouvel utilisateur sera créé en utilisant \fIrép_perso\fR comme valeur du répertoire de connexion de l'utilisateur.  Le comportement par défaut est de concaténer le nom de \fIlogin\fR au \fIrép_perso_défaut\fR, et de l'utiliser en tant que nom de répertoire de connexion.
-.IP "\fB-e \fIdate_expiration\fR"
-La date à laquelle le compte de l'utilisateur sera désactivé.  La date est spécifiée dans le format \fIAAAA-MM-JJ\fR.
-.IP "\fB-f \fIjours_inactifs\fR"
-Le nombre de jours suivant l'expiration d'un mot de passe après lequel le compte est définitivement désactivé.  Une valeur de 0 désactive le compte dès que le mot de passe a expiré, et une valeur de -1 désactive cette caractéristique.  La valeur par défaut est de -1.
-.IP "\fB-g \fIgroupe_initial\fR"
+.IP "\fB\-e \fIdate_expiration\fR"
+La date à laquelle le compte de l'utilisateur sera désactivé.  La date est spécifiée dans le format \fIAAAA\-MM\-JJ\fR.
+.IP "\fB\-f \fIjours_inactifs\fR"
+Le nombre de jours suivant l'expiration d'un mot de passe après lequel le compte est définitivement désactivé.  Une valeur de 0 désactive le compte dès que le mot de passe a expiré, et une valeur de \-1 désactive cette caractéristique.  La valeur par défaut est de \-1.
+.IP "\fB\-g \fIgroupe_initial\fR"
 Le nom du groupe ou le numéro du groupe de connexion initial de l'utilisateur.  Le nom du groupe doit exister.  Un numéro de groupe doit se référer à un groupe préexistant.  Le numéro de groupe par défaut est de 1.
-.IP "\fB-G \fIgroupe,[...]\fR"
-Une liste de groupes supplémentaires auxquels fait également partie l'utilisateur.  Chaque groupe est séparé du suivant par une virgule, sans espace entre les deux.  Les groupes sont soumis aux mêmes restrictions que celui donné avec l'option \fB-g\fR.  Le comportement par défaut pour l'utilisateur est de n'appartenir qu'au groupe initial.
-.IP \fB-m\fR
-Le répertoire personnel de l'utilisateur sera créé s'il n'existe pas déjà.  Les fichiers contenus dans \fIrép_squelette\fR seront copiés dans le répertoire personnel si l'option \fB-k\fR est employée; sinon, les fichiers contenus dans \fIrép_squelette\fR seront utilisés à la place.  Tous les répertoires contenus dans \fIrép_squelette\fR ou dans \fI/etc/skel\fR seront également créés dans le répertoire personnel de l'utilisateur.  L'option \fB-k\fR n'est valide qu'en conjonction avec l'option \fB-m\fR.  Le comportement par défaut est de ne pas créer le répertoire, et de ne copier aucun fichier.
-.IP \fB-M\fR 
+.IP "\fB\-G \fIgroupe,[...]\fR"
+Une liste de groupes supplémentaires auxquels fait également partie l'utilisateur.  Chaque groupe est séparé du suivant par une virgule, sans espace entre les deux.  Les groupes sont soumis aux mêmes restrictions que celui donné avec l'option \fB\-g\fR.  Le comportement par défaut pour l'utilisateur est de n'appartenir qu'au groupe initial.
+.IP \fB\-m\fR
+Le répertoire personnel de l'utilisateur sera créé s'il n'existe pas déjà.  Les fichiers contenus dans \fIrép_squelette\fR seront copiés dans le répertoire personnel si l'option \fB\-k\fR est employée; sinon, les fichiers contenus dans \fIrép_squelette\fR seront utilisés à la place.  Tous les répertoires contenus dans \fIrép_squelette\fR ou dans \fI/etc/skel\fR seront également créés dans le répertoire personnel de l'utilisateur.  L'option \fB\-k\fR n'est valide qu'en conjonction avec l'option \fB\-m\fR.  Le comportement par défaut est de ne pas créer le répertoire, et de ne copier aucun fichier.
+.IP \fB\-M\fR 
 Le répertoire personnel de l'utilisateur ne sera pas créé, même si les réglages globaux au système présents dans \fI/etc/login.defs\fR consistent en la création de répertoires personnels. 
-.IP \fB-n\fR 
+.IP \fB\-n\fR 
 Un groupe de même nom que l'utilisateur ajouté au système sera créé par défaut.  Cette option désactivera ce comportement spécifique de Red Hat Linux. 
-.IP \fB-r\fR 
+.IP \fB\-r\fR 
 Cette option est utilisée pour créer un compte système, çàd un utilisateur avec un UID plus petit que la valeur de UID_MIN définie dans
-\fI/etc/login.defs\fR.  Notez que \fBuseradd\fR ne créera pas de répertoire personnel pour un tel utilisateur, et ce quel que soit le réglage par défaut présent dans \fI/etc/login.defs\fR.  Vous devez spécifier l'option \fB-m\fR si vous désirez la création d'un répertoire personnel pour un tel utilisateur.  C'est une option ajoutée par Red Hat. 
-.IP "\fB-p \fImot_de_passe\fR"
+\fI/etc/login.defs\fR.  Notez que \fBuseradd\fR ne créera pas de répertoire personnel pour un tel utilisateur, et ce quel que soit le réglage par défaut présent dans \fI/etc/login.defs\fR.  Vous devez spécifier l'option \fB\-m\fR si vous désirez la création d'un répertoire personnel pour un tel utilisateur.  C'est une option ajoutée par Red Hat. 
+.IP "\fB\-p \fImot_de_passe\fR"
 Le mot de passe crypté, comme renvoyé par \fBcrypt\fR(3).  Le comportement par défaut est de désactiver le compte.
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s \fIshell\fR"
 Le nom du shell de connexion de l'utilisateur.  Le comportement par défaut est de laisser ce compte vide, ce qui fait sélectionner au système le shell de connexion par défaut.
-.IP "\fB-u \fIuid\fR"
-La valeur numérique de l'ID de l'utilisateur.  Cette valeur doit être unique, à moins que l'option \fI-o\fR ne soit utilisée.  La valeur doit être non négative.  Le comportement par défaut est d'utiliser la plus petite valeur d'ID plus grande que 999, et plus grande que celle de n'importe quel autre utilisateur.  Les valeurs comprises entre 0 et 499 sont typiquement réservées pour les comptes systèmes.
+.IP "\fB\-u \fIuid\fR"
+La valeur numérique de l'ID de l'utilisateur.  Cette valeur doit être unique, à moins que l'option \fI\-o\fR ne soit utilisée.  La valeur doit être non négative.  Le comportement par défaut est d'utiliser la plus petite valeur d'ID plus grande que 999, et plus grande que celle de n'importe quel autre utilisateur.  Les valeurs comprises entre 0 et 499 sont typiquement réservées pour les comptes systèmes.
 .SS Modifier les valeurs par défaut.
-Quand il est invoqué avec l'option \fB-D\fR, \fBuseradd\fR soit affichera les valeurs actuelles par défaut, soit mettra à jour les valeurs par défaut via la ligne de commandes.  Les options valides sont
-.IP "\fB-b \fIrép_perso\fR"
-Le préfixe de chemin initial pour un nouveau répertoire personnel d'utilisateur.  Le nom de l'utilisateur sera suffixé à la fin de \fIrép_perso\fR pour créer le nom du nouveau répertoire si l'option \fB-d\fI n'est pas utilisée pendant la création d'un nouveau compte.
-.IP "\fB-e \fIdate_expiration_défaut\fR"
+Quand il est invoqué avec l'option \fB\-D\fR, \fBuseradd\fR soit affichera les valeurs actuelles par défaut, soit mettra à jour les valeurs par défaut via la ligne de commandes.  Les options valides sont
+.IP "\fB\-b \fIrép_perso\fR"
+Le préfixe de chemin initial pour un nouveau répertoire personnel d'utilisateur.  Le nom de l'utilisateur sera suffixé à la fin de \fIrép_perso\fR pour créer le nom du nouveau répertoire si l'option \fB\-d\fI n'est pas utilisée pendant la création d'un nouveau compte.
+.IP "\fB\-e \fIdate_expiration_défaut\fR"
 La date à laquelle le compte utilisateur sera désactivé.
-.IP "\fB-f \fIinactivité\fR"
+.IP "\fB\-f \fIinactivité\fR"
 Le nombre de jours après l'expiration d'un mot de passe avant que le compte ne soit désactivé.
-.IP "\fB-g \fIgroupe_défaut\fR"
+.IP "\fB\-g \fIgroupe_défaut\fR"
 Le nom de groupe ou l'ID du groupe initial d'un nouvel utilisateur.  Le groupe nommé doit exister, et un ID de groupe numérique doit déjà exister en tant qu'ID de groupe.
-.IP "\fB-s \fIshell_défaut\fR"
+.IP "\fB\-s \fIshell_défaut\fR"
 Le nom du shell de connexion d'un nouvel utilisateur.  Le programme nommé sera utilisé pour tous les futurs nouveaux comptes.
 .PP
 Si aucune option n'est spécifiée, \fBuseradd\fR affichera les valeurs par défaut du moment.
@@ -134,17 +134,17 @@ Cette version de \fIuseradd\fR a 
 .SH INCONVÉNIENTS
 Vous ne pouvez pas ajouter d'utilisateur à un groupe NIS.  Cela doit être effectué sur le serveur NIS.
 .SH FICHIERS
-\fB/etc/passwd\fR - information sur les comptes utilisateurs
+\fB/etc/passwd\fR \- information sur les comptes utilisateurs
 .br
-\fB/etc/shadow\fR - information sécurisée sur les comptes utilisateurs
+\fB/etc/shadow\fR \- information sécurisée sur les comptes utilisateurs
 .br
-\fB/etc/group\fR - information de groupes
+\fB/etc/group\fR \- information de groupes
 .br
-\fB/etc/default/useradd\fR - information par défaut
+\fB/etc/default/useradd\fR \- information par défaut
 .br
-\fB/etc/login.defs\fR - réglages globaux du système
+\fB/etc/login.defs\fR \- réglages globaux du système
 .br
-\fB/etc/skel\fR - répertoire contenant les fichiers utilisés par défaut
+\fB/etc/skel\fR \- répertoire contenant les fichiers utilisés par défaut
 .SH "VOIR AUSSI"
 .BR chfn (1),
 .BR chsh (1),
index 6d5778067c9130ea956ada7a9b27d5d6bd24bba2..24c8bb9a3a667cf47e0e6f38afc183f4cabeba87 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: userdel.8,v 1.2 2003/04/26 13:24:12 kloczek Exp $
+.\"    $Id: userdel.8,v 1.3 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .\" Traduction 27/09/2000 par Frédéric Delanoy (fdelanoy@info.fundp.ac.be)
 .\"
 userdel \- Effacer un compte utilisateur et les fichiers associés
 .SH SYNOPSIS
 .B userdel
-[\fB-r\fR]
+[\fB\-r\fR]
 .I login
 .SH DESCRIPTION
 La commande \fBuserdel\fR modifie les fichiers des comptes du système, en supprimant toutes les entrées qui se réfèrent à \fIlogin\fR.  L'utilisateur nommé doit exister.
 .SH OPTIONS
-.IP \fB-r\fR
-Les fichiers présents dans le répertoire personnel de l'utilisateur seront supprimés en même temps que le répertoire lui-même.  Les fichiers situés dans d'autres systèmes de fichiers devront être recherchés et éliminés manuellement.
+.IP \fB\-r\fR
+Les fichiers présents dans le répertoire personnel de l'utilisateur seront supprimés en même temps que le répertoire lui\-même.  Les fichiers situés dans d'autres systèmes de fichiers devront être recherchés et éliminés manuellement.
 .SH FICHIERS
-\fI/etc/passwd\fR - information sur les comptes utilisateurs
+\fI/etc/passwd\fR \- information sur les comptes utilisateurs
 .br
-\fI/etc/shadow\fR - information sécurisée sur les comptes utilisateurs
+\fI/etc/shadow\fR \- information sécurisée sur les comptes utilisateurs
 .br
-\fI/etc/group\fR - information de groupes
+\fI/etc/group\fR \- information de groupes
 .SH INCONVÉNIENTS
 \fBuserdel\fR ne vous permet pas de supprimer un compte si l'utilisateur en question est actuellement connecté.  Vous devez tuer tous les processus en cours d'exécution appartenant à l'utilisateur possédant le compte que vous êtes en train de supprimer.  Vous ne pouvez pas supprimer d'attribut NIS d'un client NIS.  Cela doit être effectué sur le serveur NIS.
 .SH "VOIR AUSSI"
index 02f56d4d6ee8493f428a9d5c293bcf5d9a6cf7a2..a2e546c4c6f1c5cbb75b320e50dbfccfd132fbaa 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: usermod.8,v 1.5 2004/11/04 03:06:31 kloczek Exp $
+.\"    $Id: usermod.8,v 1.6 2005/04/05 19:08:53 kloczek Exp $
 .\"
 .\" Traduction 27/09/2000 par Frédéric Delanoy (fdelanoy@info.fundp.ac.be)
 .\"
@@ -35,76 +35,76 @@ usermod \- modifier un compte utilisateur
 .SH SYNOPSIS
 .TP 8
 .B usermod
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR commentaire ]
-.RB [ -d
+.RB [ \-d
 .IR rép_perso " ["
-.BR -m ]]
+.BR \-m ]]
 .br
-.RB [ -e
+.RB [ \-e
 .IR date_expiration ]
-.RB [ -f
+.RB [ \-f
 .IR inactivité ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR groupe_initial ]
-.RB [ -G
+.RB [ \-G
 .IR groupe [,...]]
 .br
-.RB [ -l
+.RB [ \-l
 .IR nom_connexion ]
-.RB [ -p
+.RB [ \-p
 .IR mot_de_passe ]
 .br
-.RB [ -s
+.RB [ \-s
 .IR shell ]
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
-.RB [ -L | -U ]
+.BR \-o ]]
+.RB [ \-L | \-U ]
 .I login
 .SH DESCRIPTION
 La commande \fBusermod\fR modifie les fichiers des comptes du système pour refléter les modifications qui ont été spécifiées sur la ligne de commandes.  Les options qui s'appliquent à la commande \fBusermod\fR sont
-.\" .IP "\fB-A \fImethod\fR|\fBDEFAULT\fR"
+.\" .IP "\fB\-A \fImethod\fR|\fBDEFAULT\fR"
 .\" The new value of the user's authentication method.
 .\" The authentication method is the name of a program which is responsible
 .\" for validating the user's identity.
 .\" The string \fBDEFAULT\fR may be used to change the user's authentication
 .\" method to the standard system password method.
-.IP "\fB-c \fIcommentaire\fR"
+.IP "\fB\-c \fIcommentaire\fR"
 La nouvelle valeur du fichier du champ de commentaire du fichier de mot de passe de l'utilisateur.  Il est normalement modifié en utilisant l'utilitaire \fBchfn\fR(1).
-.IP "\fB-d \fIrép_perso\fR"
-Le nouveau répertoire de connexion de l'utilisateur.  Si l'option \fB-m\fR est fournie, le contenu du répertoire personnel actuel sera déplacé dans le nouveau répertoire personnel, qui sera créé si nécessaire.
-.IP "\fB-e \fIdate_expiration\fR"
-La date à laquelle le compte utilisateur sera désactivé.  La date est spécifiée dans le format \fIAAAA-MM-JJ\fR.
-.IP "\fB-f \fIjours_inactifs\fR"
-Le nombre de jours suivant l'expiration d'un mot de passe après lequel le compte est définitivement désactivé.  Une valeur de 0 désactive le compte dès que le mot de passe a expiré, et une valeur de -1 désactive cette caractéristique.  La valeur par défaut est de -1.
-.IP "\fB-g \fIgroupe_initial\fR"
+.IP "\fB\-d \fIrép_perso\fR"
+Le nouveau répertoire de connexion de l'utilisateur.  Si l'option \fB\-m\fR est fournie, le contenu du répertoire personnel actuel sera déplacé dans le nouveau répertoire personnel, qui sera créé si nécessaire.
+.IP "\fB\-e \fIdate_expiration\fR"
+La date à laquelle le compte utilisateur sera désactivé.  La date est spécifiée dans le format \fIAAAA\-MM\-JJ\fR.
+.IP "\fB\-f \fIjours_inactifs\fR"
+Le nombre de jours suivant l'expiration d'un mot de passe après lequel le compte est définitivement désactivé.  Une valeur de 0 désactive le compte dès que le mot de passe a expiré, et une valeur de \-1 désactive cette caractéristique.  La valeur par défaut est de \-1.
+.IP "\fB\-g \fIgroupe_initial\fR"
 Le nom du groupe ou le numéro du groupe de connexion initial de l'utilisateur.  Le nom du groupe doit exister.  Un numéro de groupe doit se référer à un groupe préexistant.  Le numéro de groupe par défaut est de 1.
-.IP "\fB-G \fIgroupe,[...]\fR"
-Une liste de groupes supplémentaires auxquels fait également partie l'utilisateur.  Chaque groupe est séparé du suivant par une virgule, sans espace entre les deux.  Les groupes sont soumis aux mêmes restrictions que celles données avec l'option \fB-g\fR.  Si l'utilisateur fait actuellement partie d'un groupe qui n'est pas listé, l'utilisateur sera supprimé du groupe.
-.IP "\fB-l \fInom_connexion\fR"
+.IP "\fB\-G \fIgroupe,[...]\fR"
+Une liste de groupes supplémentaires auxquels fait également partie l'utilisateur.  Chaque groupe est séparé du suivant par une virgule, sans espace entre les deux.  Les groupes sont soumis aux mêmes restrictions que celles données avec l'option \fB\-g\fR.  Si l'utilisateur fait actuellement partie d'un groupe qui n'est pas listé, l'utilisateur sera supprimé du groupe.
+.IP "\fB\-l \fInom_connexion\fR"
 Le nom de l'utilisateur passera de \fIlogin\fR à \fIlogin_name\fR.  Rien d'autre n'est modifié.  En particulier, le répertoire personnel de l'utilisateur devra probablement être changé pour refléter le nouveau nom de connexion.
-.IP "\fB-L\fR"
-Verrouiller le mot de passe d'un utilisateur.  Cette option ajoute un `!' devant le mot de passe crypté, ce qui désactive le mot de passe.  Vous ne pouvez pas utiliser cette option avec \fI-p\fR ou \fI-U\fR.
-.IP "\fB-p \fImot_de_passe\fR"                                                
+.IP "\fB\-L\fR"
+Verrouiller le mot de passe d'un utilisateur.  Cette option ajoute un `!' devant le mot de passe crypté, ce qui désactive le mot de passe.  Vous ne pouvez pas utiliser cette option avec \fI\-p\fR ou \fI\-U\fR.
+.IP "\fB\-p \fImot_de_passe\fR"                                                
 Le mot de passe crypté, comme renvoyé par \fBcrypt\fR(3).
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s \fIshell\fR"
 Le nom du nouveau shell de connexion de l'utilisateur.  Si shell n'est pas fourni, le système sélectionnera le shell de connexion par défaut.
-.IP "\fB-u \fIuid\fR"
-La valeur numérique de l'ID de l'utilisateur.  Cette valeur doit être unique, à moins que l'option \fI-o\fR ne soit utilisée.  La valeur doit être non négative.  Les valeurs comprises entre 0 et 999 sont typiquement réservées aux comptes systèmes.  Tous les fichiers possédés par l'utilisateur et qui sont situés dans le sous-arbre de répertoires "débutant" au répertoire personnel de l'utilisateur verront leur ID d'utilisateur automatiquement modifié.  Les fichiers situés à l'extérieur du répertoire personnel de l'utilisateur doivent être modifiés à la main.
-.IP "\fB-U\fR"
-Déverrouiller le mot de passe d'un utilisateur.  Cela supprime le `!' situé devant le mot de passe crypté.  Vous ne pouvez pas utiliser cette option avec \fI-p\fR ou \fI-L\fR.
+.IP "\fB\-u \fIuid\fR"
+La valeur numérique de l'ID de l'utilisateur.  Cette valeur doit être unique, à moins que l'option \fI\-o\fR ne soit utilisée.  La valeur doit être non négative.  Les valeurs comprises entre 0 et 999 sont typiquement réservées aux comptes systèmes.  Tous les fichiers possédés par l'utilisateur et qui sont situés dans le sous\-arbre de répertoires "débutant" au répertoire personnel de l'utilisateur verront leur ID d'utilisateur automatiquement modifié.  Les fichiers situés à l'extérieur du répertoire personnel de l'utilisateur doivent être modifiés à la main.
+.IP "\fB\-U\fR"
+Déverrouiller le mot de passe d'un utilisateur.  Cela supprime le `!' situé devant le mot de passe crypté.  Vous ne pouvez pas utiliser cette option avec \fI\-p\fR ou \fI\-L\fR.
 .SH INCONVÉNIENTS
 \fBusermod\fR ne vous permet pas de modifier le nom d'un utilisateur qui est actuellement connecté.  Vous devez être sûr que l'utilisateur nommé n'est pas en train d'exécuter un quelconque programme quand cette commande est exécutée si l'UID numérique de l'utilisateur est modifié.  Vous devez modifier le nom du propriétaire de tous les fichiers \fIcrontab\fR manuellement.  Vous devez modifier le nom du propriétaire de n'importe quel travail \fIat\fR manuellement.  Vous devez effectuer les modifications impliquant NIS sur le serveur NIS.
 .SH FICHIERS
-\fI/etc/passwd\fR - information sur les comptes utilisateurs
+\fI/etc/passwd\fR \- information sur les comptes utilisateurs
 .br
-\fI/etc/shadow\fR - information sécurisée sur les comptes utilisateurs
+\fI/etc/shadow\fR \- information sécurisée sur les comptes utilisateurs
 .br
-\fI/etc/group\fR - information de groupes
+\fI/etc/group\fR \- information de groupes
 .SH "VOIR AUSSI"
 .BR chfn (1),
 .BR chsh (1),
index e891a0f99bc0334d9a732b20d62c5d41855da3eb..2aa03dec99e5579c4b49b771369d9997f0149779 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: gpasswd.1,v 1.10 2004/11/02 19:28:31 kloczek Exp $
+.\"$Id: gpasswd.1,v 1.17 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1996, Rafal Maszkowski <rzm@pdi.net>
 .\" All rights reserved. You can redistribute this man page and/or
 .\" modify it under the terms of the GNU General Public License as
@@ -11,37 +11,37 @@ gpasswd \- administer the /etc/group file
 .br
 .SH SYNOPSIS
 .TP 6
-\fBgpasswd \fIgroup\fR
+\fBgpasswd\fR \fIgroup\fR
 .br
-\fBgpasswd -a \fIuser\fR \fIgroup\fR
+\fBgpasswd \-a\fR \fIuser\fR \fIgroup\fR
 .br
-\fBgpasswd -d \fIuser\fR \fIgroup\fR
+\fBgpasswd \-d\fR \fIuser\fR \fIgroup\fR
 .br
-\fBgpasswd -R \fIgroup\fR
+\fBgpasswd \-R\fR \fIgroup\fR
 .br
-\fBgpasswd -r \fIgroup\fR
+\fBgpasswd \-r\fR \fIgroup\fR
 .br
-\fBgpasswd\fR [\fB-A \fIuser\fR,...] [\fB-M\fR \fIuser\fR,...] \fIgroup\fR
+\fBgpasswd\fR [\fB\-A\fR \fIuser\fR,...] [\fB\-M\fR \fIuser\fR,...] \fIgroup\fR
 .SH DESCRIPTION
 \fBgpasswd\fR is used to administer the \fI/etc/group\fR file (and
 \fI/etc/gshadow\fR file if compiled with SHADOWGRP defined). Every group can
 have administrators, members and a password. System administrator can use
-\fB-A\fR option to define group administrator(s) and \fB-M\fR option to
+\fB\-A\fR option to define group administrator(s) and \fB\-M\fR option to
 define members and has all rights of group administrators and members.
 .SH OPTIONS
 .PP
-Group administrator can add and delete users using \fB-a\fR and \fB-d\fR
-options respectively. Administrators can use \fB-r\fR option to remove group
+Group administrator can add and delete users using \fB\-a\fR and \fB\-d\fR
+options respectively. Administrators can use \fB\-r\fR option to remove group
 password. When no password is set only group members can use \fBnewgrp\fR to
-join the group. Option \fB-R\fR disables access to the group through
-\fBnewgrp\fR command.
+join the group. Option \fB\-R\fR disables access via a password to the group
+through \fBnewgrp\fR command (however members will still be able to switch to
+this group).
 .PP
 \fBgpasswd\fR called by a group administrator with group name only prompts
 for the group password. If password is set the members can still
-.BR newgrp (1)
-without a password, non-members must supply the password.
+\fBnewgrp\fR(1) without a password, non\-members must supply the password.
 .SH FILES
-\fI/etc/group\fR       \- group information
+\fI/etc/group\fR       \- group account information
 .br
 \fI/etc/gshadow\fR     \- shadow group information
 .SH SEE ALSO
@@ -49,6 +49,8 @@ without a password, non-members must supply the password.
 .BR groupadd (8),
 .BR groupdel (8),
 .BR groupmod (8),
-.BR grpck (8)
+.BR grpck (8),
+.BR group (5),
+.BR gshadow (5)
 .SH AUTHOR
 Rafal Maszkowski <rzm@pdi.net>
index 35c2d61931b23a34a1ab7199b9850d2e1345301f..1d909bb9ed9d60390797e3169e587c9a7a05312f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groupadd.8,v 1.21 2004/11/04 03:06:31 kloczek Exp $
+.\"$Id: groupadd.8,v 1.24 2005/04/05 18:47:50 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 groupadd \- Create a new group
 .SH SYNOPSIS
 .TP 6
-\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgroup\fR
+\fBgroupadd\fR [\fB\-g\fR \fIgid \fR[\fB\-o\fR]] [\fB\-f\fR] \fIgroup\fR
 .SH DESCRIPTION
 The \fBgroupadd\fR command creates a new group account using the values
 specified on the command line and the default values from the system. The
 new group will be entered into the system files as needed.
 .SH OPTIONS
 The options which apply to the \fBgroupadd\fR command are:
-.IP "\fB-f\fR"
+.IP "\fB\-f\fR"
 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-g\fR \fIgid\fR"
+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\-g\fR \fIgid\fR"
 The numerical value of the group's ID. This value must be unique, unless the
-\fB-o\fR option is used. The value must be non-negative. The default is to
+\fB\-o\fR option is used. The value must be non\-negative. The default is to
 use the smallest ID value greater than 999 and greater than every other
 group. Values between 0 and 999 are typically reserved for system accounts.
 .SH FILES
@@ -60,7 +60,7 @@ The \fBgroupadd\fR command exits with the following values:
 .br
 \fB3\fR        \- invalid argument to option
 .br
-\fB4\fR        \- gid not unique (when -o not used)
+\fB4\fR        \- gid not unique (when \-o not used)
 .br
 \fB9\fR        \- group name not unique
 .br
index 3dccc4b43a0f92afd11d3b97170652fb5a6c53a2..ee1412df7cdb10ea8fe582d6f9e722393ede8da0 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groupdel.8,v 1.13 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: groupdel.8,v 1.14 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -40,7 +40,7 @@ the named group as the file group ID.
 You may not remove the primary group of any existing user. You must remove
 the user before you remove the group.
 .SH FILES
-\fI/etc/group\fR       \- group information
+\fI/etc/group\fR       \- group account information
 .br
 \fI/etc/gshadow\fR     \- secure group information
 .SH EXIT VALUES
index f326ce5651a98f0252e37752403e7e5153f5a44d..4ac44ec23d42327d587f16dbf3c2be6472ce100c 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groupmod.8,v 1.16 2004/12/12 20:58:26 kloczek Exp $
+.\"$Id: groupmod.8,v 1.20 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAME
 groupmod \- modify a group
 .SH SYNOPSIS
-\fBgroupmod\fR [\fB-g\fR \fIGID\fR [\fB-o\fR]] [\fB-n\fR \fINEW_GROUP_NAME\fR]
-\fIGROUP\fR
+\fBgroupmod\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-n\fR \fInew_group_name\fR]
+\fIgroup\fR
 .SH DESCRIPTION
 The \fBgroupmod\fR command modifies the system account files to reflect the
 changes that are specified on the command line.
 .SH OPTIONS
 The options which apply to the \fBgroupmod\fR command are:
-.IP "\fB-g\fR \fIGID\fR"
+.IP "\fB\-g\fR \fIgid\fR"
 The numerical value of the group's ID. This value must be unique, unless the
-\fB-o\fR option is used. The value must be non-negative. Values between 0
+\fB\-o\fR option is used. The value must be non\-negative. Values between 0
 and 999 are typically reserved for system groups. Any files which the old
 group ID is the file group ID must have the file group ID changed manually.
-.IP "\fB-n\fR \fINEW_GROUP_NAME\fR"
-The name of the group will be changed from \fIGROUP\fR to \fINEW_GROUP_NAME\fR.
+.IP "\fB\-n\fR \fInew_group_name\fR"
+The name of the group will be changed from \fIgroup\fR to \fInew_group_name\fR.
 .SH FILES
-\fI/etc/group\fR       \- group information
+\fI/etc/group\fR       \- group account information
 .br
 \fI/etc/gshadow\fR     \- secure group information
 .SH EXIT VALUES
 .TP 2
 The \fBgroupmod\fR command exits with the following values:
 .br
-\fB0\fR \- success
+\fB0\fR        \- success
 .br
 \fB2\fR        \- bad command syntax
 .br
 \fB3\fR        \- invalid argument to option
 .br
-\fB4\fR        \- gid already in use (and no -o)
+\fB4\fR        \- gid already in use (and no \-o)
 .br
 \fB6\fR        \- specified group doesn't exist
 .br
index 355e1e1921d4c50d6d70d8d4a7fad437b541d6a7..d1d01bed12e494c36b880414e53094f1ba65808f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groups.1,v 1.12 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: groups.1,v 1.14 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -42,7 +42,7 @@ from \fI/etc/group\fR reported.
 The user must use \fBnewgrp\fR or \fBsg\fR to change their current real and
 effective group ID.
 .SH FILES
-\fI/etc/group\fR \     - group information
+\fI/etc/group\fR       \- group account information
 .SH SEE ALSO
 .BR newgrp (1),
 .BR getgid (2),
index 039353b5f4e59b47f5576d4b8bc2a1b2fba1d511..33274df29b7976d0b76c058d73cc5a4f45b8d8e8 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: grpck.8,v 1.14 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: grpck.8,v 1.17 2005/04/12 17:53:21 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -29,7 +29,7 @@
 .SH NAME
 grpck \- verify integrity of group files
 .SH SYNOPSIS
-\fBgrpck\fR [\fB-r\fR] [\fIgroup\fR \fIshadow\fR]
+\fBgrpck\fR [\fB\-r\fR] [\fIgroup\fR \fIshadow\fR]
 .SH DESCRIPTION
 \fBgrpck\fR verifies the integrity of the system authentication information.
 All entries in the \fI/etc/group\fR and \fI/etc/gshadow\fR are checked to
@@ -40,12 +40,12 @@ have other incorrectable errors.
 Checks are made to verify that each entry has:
 .sp
 .in +.5i
-- the correct number of fields
+\- the correct number of fields
 .br
-- a unique group name
+\- a unique group name
 .br
-- a valid list of members and administrators
-.in -.5i
+\- a valid list of members and administrators
+.in \-.5i
 .sp
 .PP
 The checks for correct number of fields and unique group name are fatal. If
@@ -63,17 +63,17 @@ circumstances to remove the offending entry.
 By default, \fBgrpck\fR operates on the files \fI/etc/group\fR and
 \fI/etc/gshadow\fR. The user may select alternate files with the \fIgroup\fR
 and \fIshadow\fR parameters. Additionally, the user may execute the command
-in read-only mode by specifying the \fB-r\fR flag. This causes all questions
+in read\-only mode by specifying the \fB\-r\fR flag. This causes all questions
 regarding changes to be answered \fBno\fR without user intervention.
 \fBgrpck\fR can also sort entries in \fI/etc/group\fR and \fI/etc/gshadow\fR
-by GID. To run it in sort mode pass it \fB-s\fR flag. No checks are
+by GID. To run it in sort mode pass it \fB\-s\fR flag. No checks are
 performed then, it just sorts.
 .SH FILES
-\fI/etc/group\fR\      - group account information
+\fI/etc/group\fR       \- group account information
 .br
-\fI/etc/gshadow\fR\    - encrypted passwords and group administrator information
+\fI/etc/gshadow\fR     \- encrypted passwords and group administrator information
 .br
-\fI/etc/passwd\fR\     - user information
+\fI/etc/passwd\fR      \- user account information
 .SH SEE ALSO
 .BR group (5),
 .BR passwd (5),
diff --git a/man/gshadow.5 b/man/gshadow.5
new file mode 100644 (file)
index 0000000..686d556
--- /dev/null
@@ -0,0 +1,65 @@
+.\"$Id: gshadow.5,v 1.2 2005/04/02 16:10:23 kloczek Exp $
+.\" Copyright 2005, Nicolas FRANCOIS
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of Nicolas FRANCOIS nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY NICOLAS FRANCOIS AND CONTRIBUTORS ``AS IS''
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL NICOLAS FRANCOIS OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+.\" THE POSSIBILITY OF SUCH DAMAGE.
+.TH GSHADOW 5
+.SH NAME
+gshadow \- shadowed group file
+.SH DESCRIPTION
+.I gshadow
+contains the shadowed information for group accounts.
+It contains lines with the folowing colon\-separated fields:
+.IP "" .5i
+Group name
+.IP "" .5i
+Encrypted password
+.IP "" .5i
+Comma\-separated list of group administrators
+.IP "" .5i
+Comma\-separated list of group members.
+.PP
+The group name and password fields must be filled.
+The encryped password consists of 13 characters from the 64\-character
+alphabet a thru z, A thru Z, 0 thru 9, \. and /.
+Refer to \fBcrypt\fR(3) for details on how this string is interpreted.
+If the password field contains some string that is not valid result
+of \fBcrypt\fR(3), for instance ! or *, the user will not be able to use
+a unix password to log in, subject to \fBpam\fR(7).
+.PP
+This information supercedes any password present in \fI/etc/group\fR.
+.PP
+This file must not be readable by regular users if password
+security is to be maintained.
+.SH FILES
+\fI/etc/group\fR       \- user group file
+.br
+\fI/etc/gshadow\fR     \- shadowed group file
+.SH SEE ALSO
+.BR group (5),
+.BR gpasswd (5),
+.BR newgrp (5)
+.SH AUTHOR
+Nicolas FRANCOIS
index 4bb05d4c66d24549753e06f65481b412ff741478..228495b226127e6fca1b48d43d3f9da7cea15e6c 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -86,17 +86,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -193,9 +192,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/hu/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/hu/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/hu/Makefile
+         $(AUTOMAKE) --foreign  man/hu/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index d5663800ec93351bf10eb44a761582bea4ad06a2..4dd31170a756d39727d85ccc8971c5a0bb69905c 100644 (file)
@@ -29,7 +29,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: chsh.1,v 1.2 2003/04/26 13:24:13 kloczek Exp $
+.\"    $Id: chsh.1,v 1.4 2005/04/05 19:08:54 kloczek Exp $
 .\"
 .TH CHSH 1
 .SH NÉV
@@ -37,7 +37,7 @@ chsh \- bejelentkez
 .SH ÁTTEKINTÉS
 .TP 5
 \fBchsh\fR
-[\fB-s \fIhéjjprogram\fR] [\fIfelhasználó\fR]
+[\fB\-s\fR \fIhéjjprogram\fR] [\fIfelhasználó\fR]
 .SH LEÍRÁS
 A \fBchsh\fR parancs a felhasználó bejelentkezési parancsértelmezõjét változtatja meg.
 Normál felhasználó csak a saját parancsértelmezõjét állíthatja, a 
@@ -47,11 +47,11 @@ A h
 a \fI/etc/shells\fR fájlban, kivéve ha a rendszergazdáé mert
 neki minden beállítás elfogadott.
 Korlátozott parancsértelmezõt nem lehet másikra átállítani.
-Ezért nem tanácsos a \fB/bin/rsh\fR-nak a \fI/etc/shells\fR-ben
-való felsorolása, mert ha a felhasználó átvált erre a héjj-ra
+Ezért nem tanácsos a \fB/bin/rsh\fR\-nak a \fI/etc/shells\fR\-ben
+való felsorolása, mert ha a felhasználó átvált erre a héjj\-ra
 nem válthat másikra.
 .PP
-A \fB-s\fR opció nélkül a \fBchsh\fR interaktív módon
+A \fB\-s\fR opció nélkül a \fBchsh\fR interaktív módon
 mûködik. Be kell írni az új értéket, vagy üresen hagyni a sort, hogy
 az éppen aktuális beállítás maradjon, ami \fB[ ]\fR jelek között látható.
 .SH FÁJLOK
index cdd8b45540dc2d8b38cdc36a65e4252c1d641eb6..d1755e85f3b1f99858067cb17f711c6a82ece8da 100644 (file)
@@ -4,7 +4,7 @@
 .\" published by the Free Software Foundation; either version 2 of the
 .\" License, or (at your option) any later version.
 .\"
-.\"    $Id: gpasswd.1,v 1.2 2003/04/26 13:24:13 kloczek Exp $
+.\"    $Id: gpasswd.1,v 1.3 2005/04/05 19:08:54 kloczek Exp $
 .\"
 .TH GPASSWD 1
 .SH NÉV
@@ -14,25 +14,25 @@ gpasswd \- az /etc/group f
 .B gpasswd \fIcsoport\fR
 .br
 .B gpasswd
-.B -a
+.B \-a
 \fIfelhasználó\fR \fIcsoport\fR
 .br
 .B gpasswd
-.B -d
+.B \-d
 \fIfelhasználó\fR \fIcsoport\fR
 .br
 .B gpasswd
-.B -R
+.B \-R
 \fIcsoport\fR
 .br
 .B gpasswd
-.B -r
+.B \-r
 \fIcsoport\fR
 .br
 .B gpasswd
-.RB [ -A
+.RB [ \-A
 \fIfelhasználó\fR,...]
-.RB [ -M
+.RB [ \-M
 \fIfelhasználó\fR,...]
 \fIcsoport\fR
 .br
@@ -42,18 +42,18 @@ A
 program segítségével adminisztrálhatjuk az /etc/group fájlt
 illetve az /etc/gshadow fájlt amennyiben a SHADOWGPR definiálva
 volt a fordítás alatt. Minden csoportban lehetnek adminisztrátorok,
-tagok és egy jelszó. A rendszeradminisztrátor a \fB-A\fR opció
-segítségével definiálhat csoportadminisztrátor(oka)t és a \fB-M\fR
+tagok és egy jelszó. A rendszeradminisztrátor a \fB\-A\fR opció
+segítségével definiálhat csoportadminisztrátor(oka)t és a \fB\-M\fR
 opcióval tagokat. A rendszeradminisztátor minden joggal rendelkezik,
 amellyel a csoportadminisztrátor és a csoport tagjai.
 .PP
-A csoportadminisztrátor a \fB-a\fR kapcsolóval hozhat létre
-felhasználókat, és a \fB-d\fR opcióval törölheti õket. Az 
-adminisztrátorok a \fB-r\fR opcióval törölhetik a csoport
+A csoportadminisztrátor a \fB\-a\fR kapcsolóval hozhat létre
+felhasználókat, és a \fB\-d\fR opcióval törölheti õket. Az 
+adminisztrátorok a \fB\-r\fR opcióval törölhetik a csoport
 jelszavát. Ha nincs jelszó beállítva, akkor csak a csoport
 tagjai használhatják a 
 .BR newgrp (1)
-parancsot a csatlakozáshoz. A \fB-R\fR opció
+parancsot a csatlakozáshoz. A \fB\-R\fR opció
 meggátolja a csoport elérését a 
 .BR newgrp (1)
 parancson keresztül.
index e631db7bcb66b1815fe16179e2a2ee7e6479be13..153e52d350f4308f52b0153ccf247a11c6463cf8 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: groups.1,v 1.4 2003/04/28 02:07:12 kloczek Exp $
+.\"    $Id: groups.1,v 1.5 2005/04/05 19:08:54 kloczek Exp $
 .\"
 .TH GROUPS 1
 .SH NÉV
index c6bfef997d84d81a43090fe46357cdfa12080fd4..319d093dce6194a6e81ac9cf632eddab09418cfd 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1989 - 1994, Julianne Frances Haugh
+.\" Copyright 1989 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: login.1,v 1.4 2003/04/28 02:07:12 kloczek Exp $
+.\"    $Id: login.1,v 1.6 2005/04/05 19:08:54 kloczek Exp $
 .\"
 .TH LOGIN 1
 .SH NÉV
@@ -45,19 +45,12 @@ A
 a shell szempontjából különleges kezelésû lehet és elôfordulhat, hogy 
 nem hívható meg alfolyamatként. Tipikus példa erre, amikor a 
 .B login
-parancsot a shell \fBexec login\fR -ként értelmezi, tehát az új 
+parancsot a shell \fBexec login\fR \-ként értelmezi, tehát az új 
 bejelentkezés elõtt az aktuálisból való kilépésre készteti a 
 felhasználót. 
 Ha nem login shellbõl próbáljuk meg a \fBlogin\fR parancsot végrehajtani, 
 hibaüzenetet kapunk.
 .PP
-Amikor a \fIlogin:\fR promptnál kerül meghívásra, lehetõség van a 
-felhasználónév után környezeti változók megadására, \fBNÉV=ÉRTÉK\fR. 
-formában, azonban nem minden változót tudunk ily módon szabályozni: 
-például a \fBPATH\fR, \fBHOME\fR és a \fBSHELL\fR nem kaphat itt értéket, 
-továbbá az \fBIFS\fR letiltásra kerülhet, ha a \felhasználó login shellje 
-a fB/bin/sh\fR.
-.PP
 Ezután a jelszavunkat kell megadnunk. A beírt karakterek nem jelennek meg 
 a képernyõn, megelõzvén a 'leskelõdést'. Ha többször hibás jelszót adunk 
 meg, a \fBlogin\fR kilép, és a kapcsolat megszakad.
@@ -76,7 +69,7 @@ k
 levél van), "\fBYou have mail.\fR" (Levél van), vagy "\fBNo Mail.\fR" 
 (Nincs levél).
 .PP
-A felhasználói- (UID) és a csoportazonosítónk (GID) beállításra kerül az 
+A felhasználói\- (UID) és a csoportazonosítónk (GID) beállításra kerül az 
 \fI/etc/passwd\fR alapján. A \fB$HOME\fR, \fB$SHELL\fR,
 \fB$PATH\fR, \fB$LOGNAME\fR és a \fB$MAIL\fR környezeti változók 
 beállításra kerülnek a passwd adatbázis megfelelõ mezõi alapján.
@@ -84,10 +77,10 @@ Az ulimit, umask 
 alapján.
 .PP
 Néhány rendszeren a \fB$TERM\fR változó is értéket kap, miként az a 
-\fI/etc/ttytype\fR-ban meg van írva.
+\fI/etc/ttytype\fR\-ban meg van írva.
 .PP
 Végrehajtódhat a parancsértelmezõnk inicializációs scriptje is. Ez ügyben 
-lásd a megfelelõ kézikönyv-oldalt.
+lásd a megfelelõ kézikönyv\-oldalt.
 .SH FIGYELMEZTETÉSEK
 .PP
 A \fBlogin\fR ezen verziója sok fordítási opcióval rendelkezik, bár csak 
@@ -101,13 +94,13 @@ v
 .br
 \fI/var/log/wtmp\fR \- az elõzõ (eddigi) bejelentkezések listája
 .br
-\fI/etc/passwd\fR \- felhasználói account-okra vonatkozó információk
+\fI/etc/passwd\fR \- felhasználói account\-okra vonatkozó információk
 .br
-\fI/etc/shadow\fR \- titkosított jelszavak és érvényességi idõ-információk
+\fI/etc/shadow\fR \- titkosított jelszavak és érvényességi idõ\-információk
 .br
 \fI/etc/motd\fR \- rendszerüzenet file
 .br
-\fI/etc/nologin\fR \- nem-root felhasználók belépésének tiltása
+\fI/etc/nologin\fR \- nem\-root felhasználók belépésének tiltása
 .br
 \fI/etc/ttytype\fR \- termináltípusok listája
 .br
index e6a18577ac0f661d8719eba921acdecafedd4dd3..1a47939d771182de3f7475e8cc93231f9cb4ddff 100644 (file)
@@ -26,7 +26,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: newgrp.1,v 1.3 2003/04/26 13:24:13 kloczek Exp $
+.\"    $Id: newgrp.1,v 1.5 2005/04/12 18:08:46 kloczek Exp $
 .\"
 .TH NEWGRP 1
 .SH NÉV
@@ -34,11 +34,11 @@ newgrp \- Csoportazonos
 .br
 sg \- Parancs végrehajtása más csoportazonoító alatt
 .SH ÁTTEKINTÉS
-.BR newgrp " [" - ]
+.BR newgrp " [" \- ]
 [\fIgroup\fR]
 .br
-.BR sg " [" - ]
-[\fIgroup\fR [\fB-c\fR \fIcommand\fR]]
+.BR sg " [" \- ]
+[\fIgroup\fR [\fB\-c\fR \fIcommand\fR]]
 .SH LEÍRÁS
 A
 .B newgrp
@@ -46,13 +46,13 @@ parancs a jelenlegi bejelentkez
 módosítására használható.  Ha a parancsot az elhagyható \fB\-\fR
 kapcsolóval hívtuk meg, akkor a rendszer úgy inicializálja újra
 a felhasználói környezetet, ahogy az a bejelelentkezés során 
-megtörténik, ellenkezõ esetben a jelenlegi környezet - beleértve
-az aktuális munkakönyvtárat is - változatlan marad.
+megtörténik, ellenkezõ esetben a jelenlegi környezet \- beleértve
+az aktuális munkakönyvtárat is \- változatlan marad.
 .PP
 A
 .B newgrp
 parancs lecseréli az aktuális csoportazonosítót a megnevezett
-vagy - ha nincs megadva - az \fI/etc/passwd\fR fájlban megadott
+vagy \- ha nincs megadva \- az \fI/etc/passwd\fR fájlban megadott
 alapértelmezett csoportra.  Ha a felhasználó nem rendelkezik jelszóval,
 de a csoport igen, vagy a felhasználó nem tagja a csoportnak,
 de a csoport rendelkezik jelszóval, akkor a rendszer bekéri a csoport
@@ -69,15 +69,15 @@ eredeti csoportazonos
 Az
 .B sg
 parancsnak egy másik, aposztrófok közé zárt parancsot is meg lehet
-adni, amely a Bourne parancsértelmezõvel kerül végrehajtásra.
+adni, amely a \fB/bin/sh\fR parancsértelmezõvel kerül végrehajtásra.
 .SH HIBÁK
 A \fBnewgrp\fR többféle fordítási beállítással rendelkezik,
 amelyeknek egy adott felhasználási környezetben csak egy részére
 lehet szükség.
 .SH FÁJLOK
-\fI/etc/passwd\fR \- felhasználói információk
+\fI/etc/passwd\fR      \- felhasználói információk
 .br
-\fI/etc/group\fR \- csoportinfomációk
+\fI/etc/group\fR       \- csoportinfomációk
 .SH LÁSD MÉG
 .BR id (1),
 .BR login (1),
index e1dc5067e491bba5ef2991c86af4d28f1bb3946d..8051160167b45254c03155b4f1a9c83606a63e1b 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1989 - 1994, John F. Haugh II
+.\" Copyright 1989 \- 1994, John F. Haugh II
 .\" All rights reserved.
 .\"
 .\" Redistribution is allowed, provided that the following conditions
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: passwd.1,v 1.3 2003/04/26 13:24:13 kloczek Exp $
+.\"    $Id: passwd.1,v 1.5 2005/04/13 10:02:27 kloczek Exp $
 .\"
-.TH PASSWD 1 "" \" -*- nroff -*-
+.TH PASSWD 1 "" \" \-*\- nroff \-*\-
 .SH NÉV
 passwd \- Felhasználói jelszó megváltoztatása
 .SH ÁTTEKINTÉS
-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fInév\fR]
+\fBpasswd\fR [\fB\-f\fR|\fB\-s\fR] [\fInév\fR]
 .br
-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIcsoport\fR
+\fBpasswd\fR [\fB\-g\fR] [\fB\-r\fR|\fB\-R\fR] \fIcsoport\fR
 .br
-\fBpasswd\fR [\fB-x\fR \fImax\fR] [\fB-n\fR \fImin\fR]
-[\fB-w\fR \fIfigy\fR] [\fB-i\fR \fIinakt\fR] \fInév\fR
+\fBpasswd\fR [\fB\-x\fR \fImax\fR] [\fB\-n\fR \fImin\fR]
+[\fB\-w\fR \fIfigy\fR] [\fB\-i\fR \fIinakt\fR] \fInév\fR
 .br
-\fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR} \fInév\fR
+\fBpasswd\fR {\fB\-l\fR|\fB\-u\fR|\fB\-d\fR|\fB\-S\fR} \fInév\fR
 .SH LEÍRÁS
 A \fBpasswd\fR a felhasználók és a csoportok megváltoztatását végzi.
 A felhasználók csak a saját jelszavukat változtathatják meg, a rendszergazda
@@ -64,8 +64,8 @@ az id
 változtatás nélkül.
 .PP
 Ezekután a program bekéri a felhasználótól az új jelszót, majd
-megvizsgálja hogy elég bonyolult-e.
-Általános szabályként elmondható, hogy a jelszavak jók, ha 6-8 karakterbõl
+megvizsgálja hogy elég bonyolult\-e.
+Általános szabályként elmondható, hogy a jelszavak jók, ha 6\-8 karakterbõl
 állnak, és a következõ jelkészletekbõl tartalmaz elemeket:
 .IP "" .5i
 Az ABC kis betûi
@@ -84,35 +84,35 @@ Ha a jelsz
 a \fBpasswd\fR a biztonság kedvéért még egyszer bekéri az új jelszót, és
 csak akkor hajtja végre a változtatást, ha a két bevitt jelszó megegyezik.
 .SS Csoportok jelszavai
-A \fB-g\fR kapcsoló használata esetén a megadott nevû csoport jelszava
+A \fB\-g\fR kapcsoló használata esetén a megadott nevû csoport jelszava
 változik meg. Ezt csak a rendszergazda vagy a csoport adminisztrátora teheti
 meg.
 A jelenlegi csoportjelszavat nem kéri változtatás elõtt.
-Az \fB-r\fR kapcsolót a \fB-g\fR kapcsolóval használva lehet a csoport jelszavát kikapcsolni, ezáltal minden tag használhatja a csoportot.
-Az \fB-R\fR kapcsoló a \fB-g\fR kapcsolóval használva a csoport minden felhasználó elõtt lezárul.
+Az \fB\-r\fR kapcsolót a \fB\-g\fR kapcsolóval használva lehet a csoport jelszavát kikapcsolni, ezáltal minden tag használhatja a csoportot.
+Az \fB\-R\fR kapcsoló a \fB\-g\fR kapcsolóval használva a csoport minden felhasználó elõtt lezárul.
 
 .SS A jelszavak "szavatossági ideje"
-A jelszavak elévülési idejét a rendszergazda a \fB-x\fR, \fB-n\fR, \fB-w\fR, és \fB-i\fR kapcsolókkal szabályozhatja.
-A \fB-x\fR kapcsoló a jelszócserék közti maximális idõt állítja be. 
+A jelszavak elévülési idejét a rendszergazda a \fB\-x\fR, \fB\-n\fR, \fB\-w\fR, és \fB\-i\fR kapcsolókkal szabályozhatja.
+A \fB\-x\fR kapcsoló a jelszócserék közti maximális idõt állítja be. 
 A jelszót legkésõbb \fImax\fR naponként meg kell változtatni.
-Az \fB-n\fR kapcsoló a két jelszócsere közötti minimális idõt szabályozza: a felhasználó addig nem változtathatja meg jelszavát, amíg legalább
+Az \fB\-n\fR kapcsoló a két jelszócsere közötti minimális idõt szabályozza: a felhasználó addig nem változtathatja meg jelszavát, amíg legalább
 \fImin\fR nap el nem telt az elõzõ változtatás óta.
-A \fB-w\fR kapcsolóval azt állíthatod be, hogy hány nappal a jelszó lejárta elõtt kezdje el a rendszer a felhasználót figyelmeztetni. Az elsõ figyelmeztetés \fIfigy\fR nappal a lejárat elõtt jelenik meg, és utána naponta tájékoztatja a felhasználót a még hátralévõ napok számáról.
-Az \fB-i\fR kapcsoló \fIinakt\fR nappal a jelszó lejárta után lezárja a felhasználó belépési lehetõségét.
+A \fB\-w\fR kapcsolóval azt állíthatod be, hogy hány nappal a jelszó lejárta elõtt kezdje el a rendszer a felhasználót figyelmeztetni. Az elsõ figyelmeztetés \fIfigy\fR nappal a lejárat elõtt jelenik meg, és utána naponta tájékoztatja a felhasználót a még hátralévõ napok számáról.
+Az \fB\-i\fR kapcsoló \fIinakt\fR nappal a jelszó lejárta után lezárja a felhasználó belépési lehetõségét.
 
-.SS Jogosultság-kezelés
-A felhasználók lezárhatóak és újra beengedhetõek a \fB-l\fR és a \fB-u\fR kapcsolókkal.
-Az \fB-l\fR kapcsoló a jelszót kicseréli egy olyan értékre, ami semmilyen lehetséges jelszó kódolt értékével nem egyezik.
-Az \fB-u\fR kapcsoló visszaállítja a jelszót a régire, és így újra engedélyezi a belépést.
+.SS Jogosultság\-kezelés
+A felhasználók lezárhatóak és újra beengedhetõek a \fB\-l\fR és a \fB\-u\fR kapcsolókkal.
+Az \fB\-l\fR kapcsoló a jelszót kicseréli egy olyan értékre, ami semmilyen lehetséges jelszó kódolt értékével nem egyezik.
+Az \fB\-u\fR kapcsoló visszaállítja a jelszót a régire, és így újra engedélyezi a belépést.
 .PP
-A jogosultságok az \fB-S\fR kapcsolóval állíthatóak be. Ez 6 részbõl áll:
+A jogosultságok az \fB\-S\fR kapcsolóval állíthatóak be. Ez 6 részbõl áll:
 Az elsõ azt jelzi, hogy a felhaszáló le van zárva (L), nincs jelszava (NP), vagy van érvényes jelszava (P).
 A második rész az utolsó jelszóváltoztatás dátuma.
 A következõ négy rész a jelszavak minimális és maximális ideje, az elsõ figyelmeztetés a jelszó lejárta elõtt és hogy mennyi ideig él a jelszó lejárta után.
 
 .SS Tippek a felhasználói jelszavakhoz
 Egy jelszavas rendszer biztonsága a kódolási algoritmus erõsségétõl és a lehetséges kulcsok számától függ.
-A \fB\s-2UNIX\s+2\fR rendszerek kódolási módja az NBS DES algoritmuson alapul, és nagyon biztonságos. A lehetséges kulcsok száma a választott jelszó véletlenszerûségén múlik.
+A \fB\s\-2UNIX\s+2\fR rendszerek kódolási módja az NBS DES algoritmuson alapul, és nagyon biztonságos. A lehetséges kulcsok száma a választott jelszó véletlenszerûségén múlik.
 .PP
 A jelszavas rendszerek feltörése legtöbbször a gondatlanul megválasztott jelszóválasztásnak vagy a jelszavak cserélgetésének eredménye.
 Ezen okok miatt célszerû olyan jelszót választanod, ami nem szerepel a szótárban és nem szükséges leírnod. Tipikusan rossz választás még, ha valamilyen nevet, valamilyen azonosítószámodat, születésnapodat, vagy címedet használod jelszóként.
@@ -129,7 +129,7 @@ szav
 .IP "" .5i
 Morzsa kutyám hegyezd füled
 .PP
--bõl
+\-bõl
 .IP "" .5i
 Maqmhdfd
 .PP
@@ -140,7 +140,7 @@ m
 
 .SS Megjegyzés a csoportok jelszavairól
 A csoportok jelszavai állandó biztonsági problémát jelenthetnek, mivel
-nemcsak egy ember ismerheti a jelszavat. A csoport-kezelés azonban
+nemcsak egy ember ismerheti a jelszavat. A csoport\-kezelés azonban
 hasznos abban az esetben, ha több felhasználó együttmûködését kell
 megoldani.
 
@@ -150,16 +150,15 @@ Az, hogy hogyan vizsg
 változhat.
 Minden felhasználónak célszerû a lehetõ legbonyolultabb, de még használható
 jelszót használnia.
-Ha NIS-t használ a felhasználók azonosítására a rendszer és a felhasználó nem
+Ha NIS\-t használ a felhasználók azonosítására a rendszer és a felhasználó nem
 lépett be a NIS kiszolgálóra, nem változtathatja meg jelszavát.
 .SH FÁJLOK
-\fI/etc/passwd\fR \- felhasználói információk
+\fI/etc/passwd\fR      \- felhasználói információk
 .br
-\fI/etc/shadow\fR \- kódolt felhasználói jelszavak
+\fI/etc/shadow\fR      \- kódolt felhasználói jelszavak
 .SH LÁSD MÉG
-.BR passwd (3),
-.BR shadow (3),
 .BR group (5),
-.BR passwd (5)
+.BR passwd (5),
+.BR shadow (5)
 .SH MAGYAR FORDÍTÁS
 Érdi "Cactus" Gergõ <cactus@freemail.c3.hu>
index f5698a22115f8a9525bd83b612fdb0cde51bdbc3..2853dde0e52812de73459e7f4649e58de4d1f055 100644 (file)
@@ -3,7 +3,7 @@
 .\" gnumaniak distribution
 .\"
 .\" The author kindly requests that no comments regarding the "better"
-.\" suitability or up-to-date notices of any info documentation alternative
+.\" suitability or up\-to\-date notices of any info documentation alternative
 .\" is added without contacting him first.
 .\"
 .\" (C) 1999 Ragnar Hojland Espinosa <ragnar@macula.net>
 .\"     <ragnar@macula.net>
 .TH su 1 "18 August 1999" "GNU Shell Utilities 2.0"
 .SH NÉV
-su \- indít egy shellt más felhasználó- és csoportazonosítóval
+su \- indít egy shellt más felhasználó\- és csoportazonosítóval
 .SH ÁTTEKINTÉS
 .B su
 .BI "[\-] [\-flmp] [\-c " parancs "] [\-s " shell "] [\-\-fast] [\-\-login]"
-.B [\-\-preserve-environment]
+.B [\-\-preserve\-environment]
 .BI "[\-\-command=" parancs "] [\-\-shell=" shell "]"
 .BI [ felhasználó " [" argumentum... ]]
 .sp
@@ -26,19 +26,19 @@ su \- ind
 Az
 .B su
 parancs lehetõvé teszi, hogy ideiglenesen más felhasználóvá válhassunk 
-úgy, hogy egy új shell-t indít a kért 
+úgy, hogy egy új shell\-t indít a kért 
 .I felhasználó 
 valós és effektív felhasználói azonosítójával, csoportazonosítójával és 
 másodlagos csoportjaival. Ha nem adunk meg 
-.IR felhasználó -t,
-az alapértelmezett érték a root (super-user). Az a shell indul el, ami a 
+.IR felhasználó \-t,
+az alapértelmezett érték a root (super\-user). Az a shell indul el, ami a 
 .I felhasználó 
 passwd bejegyzésében szerepel, ha ott nincs 
 semmi, akkor a /bin/sh. Ha a 
-.IR felhasználó -nak
+.IR felhasználó \-nak
 van jelszava, akkor az
 .B su
-meg fogja azt kérdezni, kivéve ha root-ként (a felhasználói azonosító 0) 
+meg fogja azt kérdezni, kivéve ha root\-ként (a felhasználói azonosító 0) 
 futtatjuk.
 .PP
 Alapértelmezésben az
@@ -51,7 +51,7 @@ k
 .I felhasználó
 password bejegyzésébõl kinézett értékekre, és ha a 
 .I felhasználó
-nem a root (a super-user) a 
+nem a root (a super\-user) a 
 .BR USER és LOGNAME 
 változókat a 
 .I felhasználó
@@ -59,13 +59,13 @@ nev
 bejelentkezési shell.
 .PP
 Ha megadunk 
-.IR argumentum -ként
+.IR argumentum \-ként
 valamit, az is átadódik az induló shellnek.
 .PP
 Az 
 .B su
-se a /bin/sh-t, se más shell-eket nem kezel speciálisan.
-(ilyen az argv[0] "-su"-ra állítása, vagy a -c paraméter csak 
+se a /bin/sh\-t, se más shell\-eket nem kezel speciálisan.
+(ilyen az argv[0] "\-su"\-ra állítása, vagy a \-c paraméter csak 
 bizonyos shelleknek való átadása, stb.)
 .PP
 Azokon a rendszereken, ahol van
@@ -79,7 +79,7 @@ sikeres pr
 .BI "\-c " parancs ", \-\-command=" parancs
 Csak a 
 .I parancs
-parancsot hajtatja végre a shell-lel a
+parancsot hajtatja végre a shell\-lel a
 .B \-c
 opció segítségével, így a shell nem interaktívan 
 indul el.
@@ -94,7 +94,7 @@ opci
 shelleknél van értelme ahol
 .B \-f
 opció megakadályozza, hogy a startup fájlt (.cshrc) a shell beolvassa.
-A Bourne-hoz hasonló shelleknél a
+A Bourne\-hoz hasonló shelleknél a
 .B \-f
 opció letiltja a fájlnév minták kiterjesztését (filename pattern 
 expansion), ami általában nem kívánatos dolog. 
@@ -102,20 +102,20 @@ expansion), ami 
 .B "\-, \-l, \-\-login"
 A shellt bejelentkezési shellként indítja. Ez a következõket jelenti: 
 törli az összes környezeti változót, kivéve a 
-.BR TERM "-et, " HOME -ot, 
+.BR TERM "\-et, " HOME \-ot, 
 és a 
-.BR SHELL -t 
+.BR SHELL \-t 
 (amiket a fent leírt módon állít át), és a
-.BR USER "-t és " LOGNAME -t 
+.BR USER "\-t és " LOGNAME \-t 
 (amiket szintén a fent leírt módon állít át
 a rootnak), továbbá a 
-.BR PATH -t, 
+.BR PATH \-t, 
 amit a fordításkor meghatározott 
 alapértékre állít. Az aktuális könyvtárat a 
 .I felhasználó
-home-könyvtárára
+home\-könyvtárára
 állítja. A shell neve elé egy 
-.B \- -t 
+.B \- \-t 
 szúr be, így eléri azt, hogy
 az beolvassa a startup fájlját illetve fájljait.
 .TP
@@ -139,11 +139,11 @@ opci
 .TP
 .BI "\-s, \-\-shell " shell
 A 
-.IR shell "-t indítja a " felhasználó 
+.IR shell "\-t indítja a " felhasználó 
 /etc/passwd fájlban szereplõ
 shellje helyett, ha parancsot vagy a superuser futtatja,
 vagy ha nem korlátozott shellt akar futtatni. (Korlátozott 
-shell-t lásd fentebb.)
+shell\-t lásd fentebb.)
 .TP
 .B "\-\-help"
 Használati útmutatót ír a standard kimenetre, majd sikeres visszatérési értékkel kilép.
@@ -154,7 +154,7 @@ sikeres visszat
 .SH Miért nem támogatja a GNU su a wheel csoportot? (Richard Stallman)
 
 Néha a rendszer fölötti teljes ellenõrzést egy néhány emberbõl 
-álló csoport akarja kézbe venni. Például 1984-ben pár user a MIT AI
+álló csoport akarja kézbe venni. Például 1984\-ben pár user a MIT AI
 laborban úgy döntött, hogy átveszik az irányítást a Twenex rendszer
 operátori jelszavának megváltoztatásával, és annak titokban tartásával. 
 (A puccsot sikerült leverni, és a felhasználókat jogaikba visszahelyezni 
@@ -179,7 +179,7 @@ vissza
 .B sudo
 csomaggal.
 .SH MEGJEGYZÉS
-A hibákat a bug-sh-utils@gnu.org címen lehet jelenteni.
+A hibákat a bug\-sh\-utils@gnu.org címen lehet jelenteni.
 Az oldalt Ragnar Hojland Espinosa <ragnar@macula.net> frissítette.
 .SH MAGYAR FORDÍTÁS
 Havasi Ferenc <hafy@prins.externet.hu> és Tímár András <timar_a@freemail.hu>
index 7007fd5597e02af2af9cf53aa848c5890fd2a9e9..77975cfbb3ccc40d1f34f4b50f4f1827c5e04802 100644 (file)
--- a/man/id.1
+++ b/man/id.1
@@ -1,4 +1,4 @@
-.\"$Id: id.1,v 1.13 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: id.1,v 1.16 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAME
 id \- Display current user and group ID names
 .SH SYNOPSIS
-\fBid [\fB-a\fR]
+\fBid\fR [\fB\-a\fR]
 .SH DESCRIPTION
 \fBid\fR displays the current real and effective user and group ID names or
 values. If the value does not have a corresponding entry in
 \fI/etc/passwd\fR or \fI/etc/group\fR, the value will be displayed without
-the corresponding name. The optional \fB-a\fR flag will display the group
+the corresponding name. The optional \fB\-a\fR flag will display the group
 set on systems which support multiple concurrent group membership.
 .SH FILES
-\fI/etc/passwd\fR\     - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/group\fR\      - group information
+\fI/etc/group\fR       \- group account information
 .SH SEE ALSO
 .BR getgid (2),
 .BR getgroups (2),
index ca9b53cf6c0f25de8624a7e1dbd2d085325998bf..186fcf3d7d4e2dc2dc73db7f705188407d7f07a3 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -87,17 +87,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -189,9 +188,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/id/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/id/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/id/Makefile
+         $(AUTOMAKE) --foreign  man/id/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 2f034f15a96146ccfa4c518aa0ddf82850ef618e..9e27387e9a201a3541f58fda7f8aa44183b04558 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\"  chsh.1 -- change your login shell
+.\"  chsh.1 \-\- change your login shell
 .\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
 .\"  this program is free software.  you can redistribute it and
@@ -7,8 +7,8 @@
 .\"  there is no warranty.
 .\"
 .\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:25 $
+.\"  $Revision: 1.3 $
+.\"  $Date: 2005/04/05 19:08:54 $
 .\"
 .TH CHSH 1 "October 13 1994" "chsh" "Linux Reference Manual"
 .SH NAMA PERINTAH/PROGRAM
@@ -22,7 +22,7 @@ digunakan untuk merubah shell login Anda.
 Bila shell tidak diberikan pada baris perintah maka
 .B chsh
 menampilkan prompt untuk memasukkan shell.
-.SS SHELL-SHELL YANG BENAR
+.SS SHELL\-SHELL YANG BENAR
 .B chsh
 akan menerima pathname lengkap dari file executable pada sistem.
 Walau demikian, akan menampilkan peringatan bila shell tidak terdapat
@@ -30,7 +30,7 @@ dalam file
 .I /etc/shells .
 .SH OPTION
 .TP
-.I "\-l, \-\-list-shells"
+.I "\-l, \-\-list\-shells"
 Menampilkan daftar shell yang ada dalam
 .I /etc/shells
 dan keluar atau exit.
@@ -41,7 +41,7 @@ Menentukan shell login Anda.
 .I "\-u, \-\-help"
 Menampilkan cara penggunaan program.
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 Menampilkan informasi versi program.
 .SH "LIHAT JUGA"
 .BR login (1),
index 58f9f20f9192194caf99149fce08515d8981937b..f43865bc4f5068234faff8fabb1f6cac996ca512 100644 (file)
@@ -1,6 +1,6 @@
 .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
 .\" May be distributed under the GNU General Public License
-.TH LOGIN 1 "4 November 1996" "Util-linux 1.6" "Linux Programmer's Manual"
+.TH LOGIN 1 "4 November 1996" "Util\-linux 1.6" "Linux Programmer's Manual"
 .SH NAME
 login \- masuk ke system
 .SH SYNOPSIS
@@ -14,7 +14,7 @@ login \- masuk ke system
 .SH PENJELASAN
 .B login
 digunakan ketika hendak masuk ke sebuah system.  Ia juga dapat digunakan
-untuk berpindah dari satu user ke user lainnya kapan saja (shell-shell yang
+untuk berpindah dari satu user ke user lainnya kapan saja (shell\-shell yang
 modern mendukung kemampuan ini).
 Jika tidak diikuti oleh sebuah argumen
 .B login
@@ -39,7 +39,7 @@ di
 Kegagalan akan dicatat pada log melalui fasilitas
 .B syslog .
 
-Setelah kondisi-kondisi tersebut dicek, anda akan dimintai password untuk
+Setelah kondisi\-kondisi tersebut dicek, anda akan dimintai password untuk
 kemudian dicek (jika ada password untuk username tersebut).  Anda dapat
 mencoba sepuluh kali sebelum
 .B login
@@ -112,7 +112,7 @@ tidak mengubah environment
 .SH "PEMBATASAN AKSES TERTENTU/SPECIAL ACCESS RESTRICTIONS"
 File
 .I /etc/securetty
-mencatat nama-nama tty dimana root boleh login.  Nama device tty yang tidak
+mencatat nama\-nama tty dimana root boleh login.  Nama device tty yang tidak
 berawalan /dev/ harus ditentukan pada setiap barisnya.  Jika file tersebut 
 tidak ditemukan, root boleh login di tty mana saja.
 
@@ -135,7 +135,7 @@ Komentar diawali oleh karakter # yang berlaku hingga akhir baris.
 .SS "Bagian CLASSES"
 Bagian CLASSES dimulai dengan kata CLASSES pada baris awal dalam
 huruf besar semua.  Setiap baris berikutnya hingga permulaan bagian baru
-atau akhir file terdiri dari urutan kata-kata yang dipisahkan oleh tab
+atau akhir file terdiri dari urutan kata\-kata yang dipisahkan oleh tab
 atau spasi.  Tiap baris mendefinisikan kelas tty dan pola host.
 
 .PP
@@ -153,7 +153,7 @@ Contoh bagian CLASSES:
 CLASSES
 myclass1               tty1 tty2
 myclass2               tty3 @.foo.com
-.in -.5
+.in \-.5
 .fi
 .PP
 File di atas mendefinisikan
@@ -171,10 +171,10 @@ dan
 .I /etc/group
 dan jika sebuah group disebutkan pada bagian GROUPS di
 .I /etc/usertty
-maka user diberikan akses jika memang itu group-nya.
+maka user diberikan akses jika memang itu group\-nya.
 .PP
 Bagian GROUPS diawali oleh kata GROUPS dalam huruf besar semua pada permulaan
-baris dan tiap baris selanjutnya merupakan urutan kata-kata yang dipisahkan
+baris dan tiap baris selanjutnya merupakan urutan kata\-kata yang dipisahkan
 oleh spasi atau tab.  Kata pertama pada sebuah baris adalah nama group dan
 sisanya menentukan tty dan host dimana anggota group tersebut boleh 
 mendapatkan akses.  Ketentuan ini dapat mengikutsertakan kelas yang telah
@@ -188,21 +188,21 @@ Contoh bagian GROUPS
 GROUPS
 sys            tty1 @.bar.edu
 stud           myclass1 tty4
-.in -0.5
+.in \-0.5
 .fi
 .PP
 Contoh ini menentukan bahwa anggota group
 .I sys
-boleh log in pada tty1 dan dari host-host yang terdapat pada domain
+boleh log in pada tty1 dan dari host\-host yang terdapat pada domain
 bar.edu.  User yang terdapat pada group
 .I stud
-boleh log in dari host-host/tty-tty yang ditentukan pada kelas myclass1
+boleh log in dari host\-host/tty\-tty yang ditentukan pada kelas myclass1
 atau dari tty4
 .PP
 
 .SS "Bagian USERS"
 Bagian USERS dimulai dengan kata USERS dalam huruf besar semua pada awal
-baris, dan tiap baris berikutnya adalah urutan kata-kata yang dipisahkan
+baris, dan tiap baris berikutnya adalah urutan kata\-kata yang dipisahkan
 oleh tab atau spasi.  Kata pertama pada sebuah baris adalah username
 dan sisanya merupakan definisi tentang tty dan host tempat user boleh
 log in.  Ketentuan ini dapat melibatkan kelas yang didefinisikan pada
@@ -217,17 +217,17 @@ Contoh penggunaan bagian USERS:
 USERS
 zacho          tty1 @130.225.16.0/255.255.255.0
 blue           tty3 myclass2
-.in -0.5
+.in \-0.5
 .fi
 .PP
 KEtentuan ini mengizinkan zacho hanya boleh login pada tty1 dan dari
-host-host yang alamat IP-nya terletak di kisaran 130.225.16.0 \-
+host\-host yang alamat IP\-nya terletak di kisaran 130.225.16.0 \-
 130.225.16.255, dan user bernama blue boleh log in dari tty3 dan apa
 saja yang disebutkan pada kelas myclass2.
 .PP
 Mungkin terdapat sebuah baris pada bagian USERS yang dimulai dengan
 sebuah username bernama *.  Ini adalah aturan default dan ia akan
-diterapkan pada user yang tidak tercantum pada baris-baris definisi.
+diterapkan pada user yang tidak tercantum pada baris\-baris definisi.
 .PP
 Jika user ditemukan pada baris USERS dan GROUPS maka user tersebut boleh
 mengakses dari gabungan tty/host yang disebutkan pada ketentuan tersebut.
@@ -242,7 +242,7 @@ Nama sebuah device tty tanpa awalan /dev/, contohnya tty1 atau ttyS0.
 .IP o
 String @localhost, artinya user boleh melakukan telnet/rlogin
 dari local host ke host yang sama.  Ini juga membolehkan user untuk
-menjalankan perintah: xterm -e /bin/login.
+menjalankan perintah: xterm \-e /bin/login.
 .PP
 .IP o
 Sebuah akhiran nama domain seperti @.some.dom, artinya user boleh
@@ -255,16 +255,16 @@ alamat IP pada notasi desimal biasa dan y.y.y.y adalah bitmask dalam
 notasi yang sama yang menentukan bit mana pada alamat tersebut untuk
 dibandingkan dengan alamat IP dari remote host.  Contohnya @130.225.16.0/
 255.255.254.0 berarti user boleh rlogin/telnet dari host mana saja yang
-alamat IP-nya berada pada kisaran 130.225.16.0 \- 130.225.17.255.
+alamat IP\-nya berada pada kisaran 130.225.16.0 \- 130.225.17.255.
 .PP
 Origin di atas boleh diawali oleh penentuan waktu menurut syntax:
 .PP
 .nf
-timespec    ::= '[' <day-or-hour> [':' <day-or-hour>]* ']'
+timespec    ::= '[' <day\-or\-hour> [':' <day\-or\-hour>]* ']'
 day         ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
 hour        ::= '0' | '1' | ... | '23'
 hourspec    ::= <hour> | <hour> '\-' <hour>
-day-or-hour ::= <day> | <hourspec>
+day\-or\-hour ::= <day> | <hourspec>
 .fi
 .PP
 Contohnya, origin [mon:tue:wed:thu:fri:8\-17]tty3 berarti log in 
index 8d2ba380ce467aaab88f16e7aa46c4a57b69ca45..f1add9f8016d70cb4f876ff767e1e2e473f5adf8 100644 (file)
@@ -1,14 +1,14 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Pendistribusian dan penggunaan dalam bentuk source dan binary, dengan
-.\" atau tanpa modifikasi, diperbolehkan asal syarat-syarat ini dipenuhi :
+.\" atau tanpa modifikasi, diperbolehkan asal syarat\-syarat ini dipenuhi :
 .\" 1. Pendistribusian source code harus mempertahankan tulisan copyright
 .\"    di atas, persyaratan ini, dan disclaimer berikut.
 .\" 2. Pendistribusian dalam bentuk binary harus menampilkan copyright di atas,
 .\"    persyaratan ini, dan disclaimer yang tercantum pada dokumentasi dan/
 .\"    atau keterangan lainnya yang terdapat pada distribusi ini.
-.\" 3. Nama Julianne F. Haugh atau nama-nama kontributor lainnya tidak boleh
+.\" 3. Nama Julianne F. Haugh atau nama\-nama kontributor lainnya tidak boleh
 .\"    digunakan sebagai jaminan atau untuk mempromosikan produk yang berasal
 .\"    dari software ini tanpa izin khusus tertulis.
 .\"
@@ -25,7 +25,7 @@
 .\" KARENA KESALAHAN DALAM MENGGUNAKAN SOFTWARE INI, BAHKAN JIKA TELAH
 .\" DIPERINGATKAN SEBELUMNYA TENTANG KEMUNGKINAN AKAN KERUSAKAN TERSEBUT.
 .\"
-.\"    $Id: useradd.8,v 1.3 2004/11/04 03:06:31 kloczek Exp $
+.\"    $Id: useradd.8,v 1.4 2005/04/05 19:08:54 kloczek Exp $
 .\"
 .TH USERADD 8
 .SH NAME
@@ -33,147 +33,147 @@ useradd \- Membuat user baru atau memperbarui informasi tentang user baru
 .SH SYNOPSIS
 .TP 8
 .B useradd
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR comment ]
-.RB [ -d
+.RB [ \-d
 .IR home_dir ]
 .br
-.RB [ -e
+.RB [ \-e
 .IR expire_date ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR initial_group ]
-.RB [ -G
+.RB [ \-G
 .IR group [,...]]
 .br
-.RB [ -m " [" -k
-.IR skeleton_dir ] " |" " " -M ]
-.RB [ -s
+.RB [ \-m " [" \-k
+.IR skeleton_dir ] " |" " " \-M ]
+.RB [ \-s
 .IR shell ]
 .br
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
-.RB [ -n ]
-.RB [ -r ]
+.BR \-o ]]
+.RB [ \-n ]
+.RB [ \-r ]
 .I login
 .TP 8
 .B useradd
-\fB-D\fR
-[\fB-g\fI default_group\fR]
-[\fB-b\fI default_home\fR]
+\fB\-D\fR
+[\fB\-g\fI default_group\fR]
+[\fB\-b\fI default_home\fR]
 .br
-[\fB-f\fI default_inactive\fR]
-[\fB-e\fI default_expire_date\fR]
+[\fB\-f\fI default_inactive\fR]
+[\fB\-e\fI default_expire_date\fR]
 .br
-[\fB-s\fI default_shell\fR]
+[\fB\-s\fI default_shell\fR]
 .SH PENJELASAN
 .SS Membuat User Baru
-Jika digunakan tanpa option \fB-D\fR, perintah \fBuseradd\fR menciptakan
+Jika digunakan tanpa option \fB\-D\fR, perintah \fBuseradd\fR menciptakan
 sebuah  user account baru dengan menggunakan nilai yang terdapat pada
 baris perintah dan nilai default dari system.
 User account yang baru tersebut akan dimasukkan ke system files seperlunya,
-home directory akan dibuatkan, dan initial files di-copy-kan, tergantung
+home directory akan dibuatkan, dan initial files di\-copy\-kan, tergantung
 option yang terdapat pada baris perintah.
 Versi yang terdapat pada Red Hat Linux akan membuat sebuah group untuk
-setiap user yang didaftarkan pada system, jika \fB-b\fR tidak diberikan.
+setiap user yang didaftarkan pada system, jika \fB\-b\fR tidak diberikan.
 Option yang dapat digunakan pada perintah \fBuseradd\fR adalah
-.\" .IP "\fB-A {\fImethod\fR|\fBDEFAULT\fR},..."
+.\" .IP "\fB\-A {\fImethod\fR|\fBDEFAULT\fR},..."
 .\" Nilai milik user dalam metode autentikasi/pengecekan.
 .\" Metode autentikasi/pengecekan adalah nama sebuah program yang bertanggung 
 .\" jawab untuk memeriksa identitas user.
 .\" String \fBDEFAULT\fR dapat digunakan untuk mengubah metode autentikasi
 .\" menjadi metode password system yang standar.
-.\" Daftar tersebut berisi nama-nama program, yang dipisahkan oleh koma.
+.\" Daftar tersebut berisi nama\-nama program, yang dipisahkan oleh koma.
 .\" \fBDEFAULT\fR hanya dapat dicantumkan sekali saja.
 .\" 
 .\" 
 .\" 
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c \fIcomment\fR"
 Komentar pada file password milik user baru.
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d \fIhome_dir\fR"
 User baru akan diciptakan dengan \fIhome_dir\fR sebagai lokasi directory 
-login-nya.
-Default-nya adalah menambahkan nama \fIlogin\fR pada \fIdefault_home\fR
+login\-nya.
+Default\-nya adalah menambahkan nama \fIlogin\fR pada \fIdefault_home\fR
 dan menggunakannya sebagai nama directory login.
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e \fIexpire_date\fR"
 Tanggal ketika user account dimatikan.
 Tanggal ditulis dalam format \fIMM/DD/YY\fR.
-.IP "\fB-f \fIinactive_days\fR"
+.IP "\fB\-f \fIinactive_days\fR"
 Jumlah hari setelah sebuah password kadaluarsa hingga account 
 tersebut dimatikan secara permanen.
 Nilai 0 mematikan account segera setelah password kadaluarsa,
-dan nilai -1 mematikan fungsi ini.
-Nilai default-nya adalah -1.
-.IP "\fB-g \fIinitial_group\fR"
+dan nilai \-1 mematikan fungsi ini.
+Nilai default\-nya adalah \-1.
+.IP "\fB\-g \fIinitial_group\fR"
 Nama group atau angka initial login group.
 Nama group harus sudah ada.  Seorang anggota group harus merujuk
 pada group yang sudah ada.
-Nilai group default-nya adalah 1.
-.IP "\fB-G \fIgroup,[...]\fR"
-Daftar group tambahan yang juga merupakan group-nya user.
+Nilai group default\-nya adalah 1.
+.IP "\fB\-G \fIgroup,[...]\fR"
+Daftar group tambahan yang juga merupakan group\-nya user.
 Setiap group dipisahkan oleh koma, tanpa diikuti spasi.
-Group juga mengikuti aturan yang diberikan dengan option \fB-g\fR.
-Default-nya hanyalah untuk user yang terdaftar pada group awal.
-.IP \fB-m\fR
+Group juga mengikuti aturan yang diberikan dengan option \fB\-g\fR.
+Default\-nya hanyalah untuk user yang terdaftar pada group awal.
+.IP \fB\-m\fR
 Home directory milik user akan dibuatkan jika belum ada.
 File yang terdapat pada \fIskeleton_dir\fR atau \fI/etc/skel\fR
 akan dibuatkan pada home directory milik user.
-Option \fB-k\fR hanya valid jika bertemu option \fB-m\fR.
-Dafault-nya adalah tidak membuat directory dan tidak meng-copy
+Option \fB\-k\fR hanya valid jika bertemu option \fB\-m\fR.
+Dafault\-nya adalah tidak membuat directory dan tidak meng\-copy
 segala file.
-.IP \fB-M\fR
+.IP \fB\-M\fR
 Home directory milik user tidak akan dibuatkan, bahkan jika setting
 system pada \fI/etc/login.defs\fR ditujukan untuk membuat home 
 directory.
-.IP \fB-n\fR
+.IP \fB\-n\fR
 Sebuah group yang namanya sama dengan user akan ditambahkan ke dalam
 system secara default.  Option ini akan mematikan kebiasaan tersebut
 yang terdapat pada Red Hat Linux.
-.IP \fB-r\fR
+.IP \fB\-r\fR
 Flag ini digunakan untuk membuat sebuah system account.  Yaitu, user
 dengan UID yang lebih kecil dari UID_MIN yang tercantum pada 
 \fI/etc/login.defs\fR.  Harap diingat bahwa \fBuseradd\fR tidak akan
 membuat home directory untuk user semacam ini, menghiraukan setting
 default yang terdapat di \fI/etc/login.defs\fR.
-Anda harus menyebutkan option \fB-m\fR jika ingin membuat home directory
+Anda harus menyebutkan option \fB\-m\fR jika ingin membuat home directory
 untuk sebuah system account yang akan dibuat.
 Ini adalah option yang ditambahkan oleh Red Hat.
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s \fIshell\fR"
 Nama login shell milik user.
-Default-nya adalah membiarkan field ini kosong, yang menyebabkan
+Default\-nya adalah membiarkan field ini kosong, yang menyebabkan
 system untuk memilih login shell yang default.
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u \fIuid\fR"
 Nilai user ID secara numerik.
-Nilai ini harus unique, kecuali jika option \fI-o\fR digunakan.
+Nilai ini harus unique, kecuali jika option \fI\-o\fR digunakan.
 Nilai tersebut tidak boleh negatif.
-Default-nya adalah menggunakan nilai ID yang lebih besar dari 999
+Default\-nya adalah menggunakan nilai ID yang lebih besar dari 999
 dan lebih besar dari semua user lain.
 Nilai di antara 0 dan 999 biasanya disiapkan untuk system aacount.
-.SS Mengubah nilai-nilai default.
-Ketika digunakan dengan option \fB-D\fR, \fBuseradd\fR akan
+.SS Mengubah nilai\-nilai default.
+Ketika digunakan dengan option \fB\-D\fR, \fBuseradd\fR akan
 menampilkan nilai default, atau memperbarui nilai default baru
 yang terdapat pada baris perintah.
 Option yang dapat digunakan adalah
-.IP "\fB-b \fIdefault_home\fR"
+.IP "\fB\-b \fIdefault_home\fR"
 Awalan path untuk home directory milik user baru.
 Nama user akan ditambahkan setelah akhir \fIdefault_home\fR
-ketika membuat nama directory baru jika option \fB-d\fI tidak
+ketika membuat nama directory baru jika option \fB\-d\fI tidak
 disebutkan dalam membuat account baru.
-.IP "\fB-e \fIdefault_expire_date\fR"
+.IP "\fB\-e \fIdefault_expire_date\fR"
 Tanggal ketika user account dimatikan.
-.IP "\fB-f \fIdefault_inactive\fR"
+.IP "\fB\-f \fIdefault_inactive\fR"
 Jumlah hari setelah password kadaluarsa sebelum account
 dimatikan.
-.IP "\fB-g \fIdefault_group\fR"
+.IP "\fB\-g \fIdefault_group\fR"
 Nama group atau ID sebagai group awal user baru.
 Nama group yang disebut harus sudah ada dan nomor group ID
 harus mempunyai entry.
-.IP "\fB-s \fIdefault_shell\fR"
+.IP "\fB\-s \fIdefault_shell\fR"
 Nama untuk login shell milik user baru.
 Nama program yang disebutkan akan digunakan untuk semua user
 account baru mendatang.
@@ -198,7 +198,7 @@ Ini harus dilakukan pada server NIS.
 .br
 \fB/etc/default/useradd\fR \- informasi tentang nilai default
 .br
-\fB/etc/login.defs\fR \- system-wide settings
+\fB/etc/login.defs\fR \- system\-wide settings
 .br
 \fB/etc/skel\fR \- directory yang mengandung default files
 .SH LIHAT JUGA
index c08a42952cd9583dab13ce587c5cb9eba4ad539e..b04c36f1db5d35dd37ce0b39017721f111fdec5f 100644 (file)
@@ -1,30 +1,35 @@
 
 mandir = @mandir@/it
 
+# Links to missing pages:
+#      grpconv.8 \
+#      grpunconv.8 \
+#      pwunconv.8 \
 man_MANS = \
+       chage.1 \
        chfn.1 \
+       chpasswd.8 \
        chsh.1 \
-       gpasswd.1 \
-       groupadd.8 \
-       groupdel.8 \
-       groupmod.8 \
+       expiry.1 \
+       faillog.5 \
+       faillog.8 \
+       getspnam.3 \
        groups.1 \
        grpck.8 \
-       grpconv.8 \
-       grpunconv.8 \
+       id.1 \
        lastlog.8 \
        login.1 \
+       logoutd.8 \
        newgrp.1 \
-       passwd.1 \
-       passwd.5 \
-       pwconv.8 \
-       pwunconv.8 \
+       porttime.5 \
+       pwck.8 \
+       sg.1 \
+       shadow.3 \
        shadow.5 \
-       useradd.8 \
-       userdel.8 \
-       usermod.8 \
+       shadowconfig.8 \
+       su.1 \
        vigr.8 \
        vipw.8
 
 EXTRA_DIST = $(man_MANS)
\ No newline at end of file
index 34550796befab9592f4e910b185a8d91ed5f1954..0e067e1b66b7dd655343ee0b8521f70f9f9e6509 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -46,13 +46,6 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
-man1dir = $(mandir)/man1
-am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
-       "$(DESTDIR)$(man8dir)"
-man5dir = $(mandir)/man5
-man8dir = $(mandir)/man8
-NROFF = nroff
-MANS = $(man_MANS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
@@ -89,17 +82,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -173,31 +165,36 @@ sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-man_MANS = \
-       chfn.1 \
-       chsh.1 \
-       gpasswd.1 \
-       groupadd.8 \
-       groupdel.8 \
-       groupmod.8 \
-       groups.1 \
-       grpck.8 \
-       grpconv.8 \
-       grpunconv.8 \
-       lastlog.8 \
-       login.1 \
-       newgrp.1 \
-       passwd.1 \
-       passwd.5 \
-       pwconv.8 \
-       pwunconv.8 \
-       shadow.5 \
-       useradd.8 \
-       userdel.8 \
-       usermod.8 \
-       vigr.8 \
-       vipw.8
 
+# Links to missing pages:
+#      grpconv.8 \
+#      grpunconv.8 \
+#      pwunconv.8 \
+#man_MANS = \
+#      chage.1 \
+#      chfn.1 \
+#      chpasswd.8 \
+#      chsh.1 \
+#      expiry.1 \
+#      faillog.5 \
+#      faillog.8 \
+#      getspnam.3 \
+#      groups.1 \
+#      grpck.8 \
+#      id.1 \
+#      lastlog.8 \
+#      login.1 \
+#      logoutd.8 \
+#      newgrp.1 \
+#      porttime.5 \
+#      pwck.8 \
+#      sg.1 \
+#      shadow.3 \
+#      shadow.5 \
+#      shadowconfig.8 \
+#      su.1 \
+#      vigr.8 \
+#      vipw.8
 EXTRA_DIST = $(man_MANS)
 all: all-am
 
@@ -211,9 +208,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/it/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/it/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/it/Makefile
+         $(AUTOMAKE) --foreign  man/it/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -241,141 +238,6 @@ clean-libtool:
 distclean-libtool:
        -rm -f libtool
 uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
-       @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
-uninstall-man1:
-       @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
-install-man5: $(man5_MANS) $(man_MANS)
-       @$(NORMAL_INSTALL)
-       test -z "$(man5dir)" || $(mkdir_p) "$(DESTDIR)$(man5dir)"
-       @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.5*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           5*) ;; \
-           *) ext='5' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
-       done
-uninstall-man5:
-       @$(NORMAL_UNINSTALL)
-       @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.5*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           5*) ;; \
-           *) ext='5' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
-       done
-install-man8: $(man8_MANS) $(man_MANS)
-       @$(NORMAL_INSTALL)
-       test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
-       @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.8*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           8*) ;; \
-           *) ext='8' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
-       done
-uninstall-man8:
-       @$(NORMAL_UNINSTALL)
-       @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.8*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           8*) ;; \
-           *) ext='8' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
-       done
 tags: TAGS
 TAGS:
 
@@ -412,11 +274,8 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(MANS)
+all-am: Makefile
 installdirs:
-       for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
-       done
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -459,13 +318,13 @@ info: info-am
 
 info-am:
 
-install-data-am: install-man
+install-data-am:
 
 install-exec-am:
 
 install-info: install-info-am
 
-install-man: install-man1 install-man5 install-man8
+install-man:
 
 installcheck-am:
 
@@ -485,21 +344,17 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am uninstall-man
-
-uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
+uninstall-am: uninstall-info-am
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-exec install-exec-am \
-       install-info install-info-am install-man install-man1 \
-       install-man5 install-man8 install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
+       install-info install-info-am install-man install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic \
        mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-info-am uninstall-man uninstall-man1 uninstall-man5 \
-       uninstall-man8
+       uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/man/it/chfn.1 b/man/it/chfn.1
deleted file mode 100644 (file)
index 7240f50..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-.\" $Id: chfn.1,v 1.2 2004/08/04 13:02:25 kloczek Exp $
-.\"
-.\"  chfn.1 -- change your finger information
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"
-.\"  Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\"  Agosto 1996
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:25 $
-.\"
-.\" " for hilit19
-.TH CHFN 1 "13 ottobre 1994" "chfn" "Linux Reference Manual"
-.SH NOME
-chfn \- cambia le proprie "finger information"
-.SH SINTASSI
-.B chfn
-[\ \-f\ nome_vero\] [\ \-o\ ufficio\] [\ \-p\ telefono_ufficio\]
-[\ \-h\ telefono_casa\] [\ \-u\ ] [\ \-v\ ] [\ nome_utente\]
-.SH DESCRIZIONE
-.B chfn
-è usato per cambiare le proprie finger information. Queste informazioni sono
-salvate nel file
-.IR /etc/passwd ,
-e sono mostrate dal programma 
-.BR finger .
-Il comando
-.B finger
-di Linux mostra quattro porzioni di informazione che possono essere 
-cambiati tramite 
-.BR chfn :
-il proprio nome vero, l'ufficio e il numero di telefono di quest'ultimo, e il
-proprio numero di telefono di casa.
-.SS LINEA DI COMANDO
-Ognuno delle quattro porzioni può essere specificata nella linea di comando.
-Se non viene passata alcuna informazione sulla linea di comando,
-.B chfn
-entra in modo interattivo.
-.SS MODO INTERATTIVO
-Nel modo interattivo,
-.B chfn
-chiederà ognuno dei campi. Al prompt, possono essere immesse le nuove 
-informazioni, o premere return per non cambiare il campo. L'immissione della
-parola chiave "none" cancella il campo.
-.SH OPZIONI
-.TP
-.I "\-f, \-\-full-name"
-Specifica il proprio nome reale.
-.TP
-.I "\-h, \-\-home-phone"
-Specifica il numero di telefono di casa.
-.TP
-.I "\-o, \-\-office"
-Specifica il numero del proprio ufficio.
-.TP
-.I "\-p, \-\-office-phone"
-Specifica il numero di telefono del proprio ufficio.
-.TP
-.I "\-u, \-\-help"
-Mostra un messaggio d'aiuto ed esce.
-.TP
-.I "-v, \-\-version"
-Mostra informazioni sulla versione ed esce.
-.SH "VEDERE ANCHE"
-.BR finger (1),
-.BR passwd (5)
-.SH AUTORE
-Salvatore Valente <svalente@mit.edu>
diff --git a/man/it/chsh.1 b/man/it/chsh.1
deleted file mode 100644 (file)
index 1d1da81..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-.\" $Id: chsh.1,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\"
-.\"  chsh.1 -- change your login shell
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Agosto 1996
-.\" Aggiornamento alla 2.9 di Roberto Pertile <triplej@iol.it>
-.\" Maggio 1999
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.1 $
-.\"  $Date: 2002/03/10 07:41:06 $
-.\"
-.TH CHSH 1 "7 ottobre 1998" "chsh" "Linux Reference Manual"
-.SH NOME
-chsh \- cambia la shell di login
-.SH SINTASSI
-.B chsh
-[\ \-s\ shell\ ] [\ \-l\ ] [\ \-u\ ] [\ \-v\ ] [\ nome_utente\ ]
-.SH DESCRIZIONE
-.B chsh
-è usato per cambiare la propria shell di login.
-Se nella linea di comando non viene fornita una shell,
-.B chsh
-ne chiede una.
-.SS SHELL VALIDE
-.B chsh
-accetterà l'intero percorso di qualunque file eseguibile nel sistema.
-Tuttavia, emetterà un messaggio di avviso se la shell non è elencata nel
-file
-.I /etc/shells.
-D'altra parte, può anche essere configurato in modo tale da accettare solo
-shell elencate in questo file, a meno che sia eseguito da root.
-.SH OPZIONI
-.TP
-.I "\-s, \-\-shell"
-Specifica la propria shell di login.
-.TP
-.I "\-l, \-\-list-shells"
-Stampa la lista delle shell elencate in 
-.I /etc/shells
-ed esce.
-.TP
-.I "\-u, \-\-help"
-Stampa un messaggio sull'uso ed esce.
-.TP
-.I "-v, \-\-version"
-Stampa informazioni sulla versione ed esce.
-.SH "VEDERE ANCHE"
-.BR login (1),
-.BR passwd (5),
-.BR shells (5)
-.SH AUTORE
-Salvatore Valente <svalente@mit.edu>
diff --git a/man/it/gpasswd.1 b/man/it/gpasswd.1
deleted file mode 100644 (file)
index b87e521..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-.\" Copyright 1996, Rafal Maszkowski, rzm@pdi.net
-.\" All rights reserved. You can redistribute this man page and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of the
-.\" License, or (at your option) any later version.
-.\"
-.\"    $Id: gpasswd.1,v 1.3 2003/04/28 06:09:52 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH GPASSWD 1
-.SH NOME
-gpasswd \- amministra il file /etc/group
-.br
-.SH SINTASSI
-.B gpasswd \fIgruppo\fR
-.br
-.B gpasswd
-.B -a
-\fIutente\fR \fIgruppo\fR
-.br
-.B gpasswd
-.B -d
-\fIutente\fR \fIgruppo\fR
-.br
-.B gpasswd
-.B -R
-\fIgruppo\fR
-.br
-.B gpasswd
-.B -r
-\fIgruppo\fR
-.br
-.B gpasswd
-.RB [ -A
-\fIutente\fR,...]
-.RB [ -M
-\fIutente\fR,...]
-\fIgruppo\fR
-.br
-.SH DESCRIZIONE
-.B gpasswd
-viene usato per amministrare il file /etc/group (ed il file /etc/gshadow
-se compilato con SHADOWGRP definito). Ogni gruppo può avere amministratori,
-membri ed una password. L'amministratore di sistema può usare l'opzione \fB-A\fR
-per definire l'amministratore/gli amministratori di gruppo e l'opzione \fB-M\fR
-per definire i membri ed ha tutti i diritti degli amministratori di gruppo e
-dei membri.
-.PP
-L'amministratore di gruppo può aggiungere e rimuovere utenti usando
-rispettivamente le opzioni \fB-a\fR e \fB-d\fR. Gli amministratori possono usare
-l'opzione \fB-r\fR per rimuovere la password di gruppo. Quando non è 
-impostata alcuna password solo i membri del gruppo possono usare
-.BR newgrp (1)
-per unirsi al gruppo. L'opzione \fB-R\fR disabilita l'accesso al gruppo tramite 
-il comando
-.BR newgrp (1).
-.PP
-.B gpasswd
-invocata da un amministratore di gruppo con il solo nome del gruppo richiede
-solamente la password di gruppo. Se la password è impostata i membri possono ancora
-usare
-.BR newgrp (1)
-senza la password, i non-membri devono fornire la password.
-
-.SH FILE
-\fI/etc/group\fR \- informazioni sui gruppi
-.br
-\fI/etc/gshadow\fR \- informazioni sul gruppo shadow
-.SH VEDERE ANCHE
-.BR newgrp (1),
-.BR groupadd (8),
-.BR groupdel (8),
-.BR groupmod (8),
-.BR grpck (8)
diff --git a/man/it/groupadd.8 b/man/it/groupadd.8
deleted file mode 100644 (file)
index 32890bd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-.\" Copyright 1991, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupadd.8,v 1.7 2004/12/12 20:23:58 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH GROUPADD 8
-.SH NOME
-groupadd \- Crea un nuovo gruppo
-.SH SINTASSI
-\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgruppo\fR
-.SH DESCRIZIONE
-Il comando \fBgroupadd\fR crea un nuovo account di gruppo usando i valori 
-specificati sulla linea di comando ed i valori predefiniti dal sistema.
-Il nuovo gruppo verrà aggiunto ai file di sistema che lo necessitano.
-.SH OPZIONI
-Le opzioni che si applicano al comando \fBgroupadd\fR sono:
-.IP "\fB-g \fIgid\fR"
-Il valore numerico dell'identificatore (ID) del gruppo.
-Questo valore deve essere univoco, a meno che non venga usata l'opzione \fB-o\fR.
-Il valore deve essere non-negativo.
-La scelta predefinita è quella di usare il minimo valore di ID superiore a 999
-e superiore a qualunque altro gruppo.
-Valori tra 0 e 999 sono tipicamente riservati per account di sistema.
-.SH FILE
-\fI/etc/group\fR \- informazioni sugli account di gruppo
-.br
-\fI/etc/gshadow\fR \- informazioni sicure sugli account di gruppo 
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR useradd (8),
-.BR userdel (8),
-.BR usermod (8),
-.BR passwd (1),
-.BR groupdel (8),
-.BR groupmod (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/groupdel.8 b/man/it/groupdel.8
deleted file mode 100644 (file)
index 0be07d4..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-.\" Copyright 1991 - 1993, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupdel.8,v 1.3 2003/04/28 06:09:52 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH GROUPDEL 8
-.SH NOME
-groupdel \- Rimuove un gruppo
-.SH SINTASSI
-.B groupdel
-.I gruppo
-.SH DESCRIZIONE
-Il comando \fBgroupdel\fR modifica i file di account di sistema, rimuovendo
-tutte le voci che si riferiscono a \fIgruppo\fR.
-Il gruppo nominato deve esistere.
-.PP
-Occorre controllare manualmente tutti i filesystem per assicurarsi che non
-rimanga alcun file avente come ID di gruppo del file il gruppo specificato.
-.SH CAVEAT
-Non si può rimuovere il gruppo primario di qualche utente esistente.
-Occorre rimuovere l'utente prima di rimuovere il gruppo.
-.SH FILE
-\fI/etc/group\fR \- informazioni sui gruppi
-.br
-\fI/etc/gshadow\fR \- informazioni sicure sui gruppi 
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR useradd (8),
-.BR userdel (8),
-.BR usermod (8),
-.BR passwd (1),
-.BR groupadd (8),
-.BR groupmod (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/groupmod.8 b/man/it/groupmod.8
deleted file mode 100644 (file)
index d0a9e07..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-.\" Copyright 1991, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupmod.8,v 1.5 2004/11/04 03:06:32 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH GROUPMOD 8
-.SH NOME
-groupmod \- Modifica un gruppo
-.SH SINTASSI
-.B groupmod
-[\fB-g\fI gid \fR[\fB-o\fR]]
-[\fB-n\fI nome_gruppo \fR]
-.I gruppo
-.SH DESCRIZIONE
-Il comando \fBgroupmod\fR modifica i file di account del sistema in modo
-da riflettere i cambiamenti che sono specificati sulla linea di comando.
-Le opzioni che si applicano al comando \fIgroupmod\fR sono
-.IP "\fB-g \fIgid\fR"
-Il valore numerico dell'identificatore (ID) del gruppo.
-Questo valore deve essere univoco, a meno che non venga usata l'opzione
-\fB-o\fR.
-Il valore deve essere non-negativo.
-Valori tra 0 e 999 sono tipicamente riservati per gruppi di sistema.
-Occorre modificare manualmente l'ID di gruppo di tutti i file
-il cui ID di gruppo è quello vecchio.
-.IP "\fB-n \fInome_gruppo\fR"
-Il nome del gruppo verrà modificato da \fIgruppo\fR a \fInome_gruppo\fR.
-.SH FILE
-\fI/etc/group\fR \- informazioni sui gruppi
-.br
-\fI/etc/gshadow\fR \- informazioni sicure sui gruppi
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR useradd (8),
-.BR userdel (8),
-.BR usermod (8),
-.BR passwd (1),
-.BR groupadd (8),
-.BR groupdel (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/groups.1 b/man/it/groups.1
deleted file mode 100644 (file)
index 72f0aab..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-.\" $Id: groups.1,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Italian manpages for GNU sh-utils-1.16.
-.\" Copyright (C) 1997 Free Software Foundation, Inc.
-.\" Giovanni Bortolozzo <borto@dei.unipd.it>, 1997.
-.\"
-.\" Traduzione di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Maggio 1997
-.\"
-.\"" for hilit19
-.TH GROUPS 1 "GNU Shell Utilities" "FSF"
-.SH NOME
-groups \- mostra i gruppi in cui è presente l'utente
-.SH SINTASSI
-.B groups
-[nomeutente...]
-.br
-.B groups
-{\-\-help,\-\-version}
-.SH DESCRIZIONE
-Questa documentazione non è mantenuta da lungo tempo e potrebbe essere
-inaccurata o incompleta. La documentazione in Texinfo è ora la fonte
-autorevole. 
-.PP
-Questa pagina di manuale documenta la versione GNU di
-.BR groups .
-.B groups
-mostra i nomi dei gruppi supplementari in cui è presente ogni 
-.I nomeutente
-dato, o del processo corrente se non ne è dato nessuno. Se sono dati
-dei nomi di utenti, il nome di ogni utente è stampato prima della
-lista dei gruppi dell'utente.
-.PP
-La lista dei gruppi è equivalente all'output del comando `id \-Gn'.
-.SS OPZIONI
-Quando GNU
-.B groups
-è chiamato con un solo argomento sono riconosciute le seguenti
-opzioni: 
-.TP
-.I "\-\-help"
-Mostra nello standard output un messaggio d'aiuto ed esce con successo.
-.TP
-.I "\-\-version"
-Mostra nello standard output informazioni sulla versione ed esce con
-successo.
-
diff --git a/man/it/grpck.8 b/man/it/grpck.8
deleted file mode 100644 (file)
index db895b9..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-.\" Copyright 1992 - 1993, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: grpck.8,v 1.3 2003/04/28 06:09:52 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH GRPCK 8
-.SH NOME
-grpck \- verifica l'integrità dei file di gruppo
-.SH SINTASSI
-\fBgrpck\fR [\fB-r\fR] [\fIgruppo\fR \fIshadow\fR]
-.SH DESCRIZIONE
-\fBgrpck\fR verifica l'integrità delle informazioni di autenticazione del
-sistema.
-Vengono controllate tutte le voci in \fI/etc/group\fR e \fI/etc/gshadow\fR 
-per verificare che la voce abbia il formato appropriato e dati validi
-in ciascun campo.
-Viene richiesto all'utente di rimuovere le voci che sono formattate
-impropriamente  o che hanno altri errori incorreggibili.
-.P
-Vengono fatti controlli per verificare che ogni voce abbia
-.sp
-.in +.5i
-- il corretto numero di campi
-.br
-- un nome univoco di gruppo
-.br
-- una lista valida di membri ed amministratori
-.in -.5i
-.sp
-.P
-Le verifiche sul corretto numero di campi e sul nome univoco del gruppo
-sono fatali.
-Se la voce ha un numero errato di campi, all'utente verrà richiesto di
-cancellare l'intera riga.
-Se l'utente non risponde affermativamente, vengono omessi tutti gli
-ulteriori controlli.
-Verrà richiesta la cancellazione di una voce avente il nome del gruppo duplicato,
-ma i rimanenti controlli verranno ugualmente effettuati.
-Tutti gli altri errori sono avvertimenti e l'utente è incitato ad eseguire
-il comando \fBgroupmod\fR per correggere l'errore.
-.P
-I comandi che operano sul file \fI/etc/group\fR non sono in grado di alterare
-voci corrotte o duplicate.
-In quelle circostanze dovrebbe essere usato \fBgrpck\fR per rimuovere la voce
-scorretta.
-.SH OPZIONI
-Come modalità predefinita, \fBgrpck\fR opera sui file \fI/etc/group\fR ed
-\fI/etc/gshadow\fR.
-L'utente può selezionare file alternativi con i parametri \fIgruppo\fR e
-\fIshadow\fR.
-Inoltre, l'utente può eseguire il comando in modalità di sola lettura
-specificando l'opzione \fB-r\fR.
-Questa fa in modo che venga risposto \fBno\fR a tutte le domande che riguardano
-i cambiamenti senza l'intervento dell'utente.
-.SH FILE
-\fI/etc/group\fR \- informazioni sugli account di gruppo
-.br
-\fI/etc/gshadow\fR \- password crittate e informazioni sugli amministratori di gruppo
-.br
-\fI/etc/passwd\fR \- informazioni sugli utenti
-.SH VEDERE ANCHE
-.BR groupmod (8),
-.BR group (5),
-.BR passwd (5),
-.BR shadow (5)
-.SH DIAGNOSTICA
-Il comando \fBgrpck\fR esce con i seguenti valori:
-.IP 0 5
-Successo
-.IP 1 5
-Errore di sintassi
-.IP 2 5
-Una o più voci di gruppo scorrette
-.IP 3 5
-Impossibile aprire i file di gruppo
-.IP 4 5
-Impossibile eseguire il lock dei file di gruppo
-.IP 5 5
-Impossibile aggiornare i file di gruppo
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/grpconv.8 b/man/it/grpconv.8
deleted file mode 100644 (file)
index 470d789..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-.\" $Id: grpconv.8,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Traduzione in italiano  di Isabella Ruocco <isacher@nettaxi.com>
-.\" Giugno 1999
-.TH PWCONV 8 "26 sep 1997"
-.SH NOME
-pwconv, pwunconv, grpconv, grpunconv \- convertono a e da password e gruppi shadow.
-.SH SINTASSI
-.B pwconv
-.br
-.B pwunconv
-.br
-.B grpconv
-.br
-.B grpunconv
-.SH DESCRIZIONE
-Questi quattro programmi agiscono tutti sui file normali e e oscurati (shadow) 
-delle password e dei gruppi:
-.IR /etc/passwd ", " /etc/group ", " /etc/shadow ", e " /etc/gshadow .
-
-.B pwconv
-.RI "crea " shadow " da " passwd " e, in modo opzionale, da un preesistente " shadow .
-.B pwunconv
-.RI "crea " passwd " da " passwd " e " shadow " e quindi rimuove " shadow .
-.B grpconv
-.RI "crea " gshadow " da " group " e, in modo opzionale, da un preesistente " gshadow .
-.B grpunconv
-.RI "crea " group " da " group " e " gshadow " e quindi rimuove " gshadow .
-
-Ciascun programma, prima della conversione, acquisisce i lock necessari.
-
-.BR pwconv " e " grpconv
-sono simili.  Per prima cosa vengono rimosse le voci nel file oscurato che non esistono 
-nel file principale.  Quindi vengono aggiornate le voci oscurate che 
-non hanno `x' come password nel file principale.  Vengono aggiunte le eventuali voci
-oscurate mancanti.  Infine, le password nel file principale vengono 
-sostituite con `x'.  Questi programmi possono essere usati per le conversioni iniziali
-così come per aggiornare il file oscurato se il file principale viene editato 
-a mano.
-
-.B pwconv
-userà i valori di
-.BR PASS_MIN_GIORNI ", " PASS_MAX_GIORNI ", e " PASS__GIORNI_PREAVVISO
-da
-.I /etc/login.defs
-quando si aggiungono nuove voci a
-.IR /etc/shadow .
-
-.RB "Analogamente, " pwunconv " e " grpunconv
-sono simili.  Le password nel file principale vengono aggiornate 
-dal file oscurato. Voci che esistono nel file principale ma non 
-nel file oscurato vengono lasciate stare.  Infine, viene rimosso il file oscurato.
-
-Alcune informazioni sull'invecchiamento delle password vengono perse da
-.BR pwunconv .
-Questo convertirà quello che potrà.
-.SH "VEDERE ANCHE"
-.BR login.defs (5),
-.BR shadowconfig (8)
diff --git a/man/it/grpunconv.8 b/man/it/grpunconv.8
deleted file mode 100644 (file)
index ca09222..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man8/grpconv.8
diff --git a/man/it/lastlog.8 b/man/it/lastlog.8
deleted file mode 100644 (file)
index 5dd764d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-.\" Copyright 1992, Phillip Street and Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    @(#)lastlog.8   3.3     08:24:58        29 Sep 1993 (National Guard Release)
-.\"    $Id: lastlog.8,v 1.5 2003/04/28 06:38:54 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH LASTLOG 8
-.SH NOME
-lastlog \- esamina il file lastlog 
-.SH SINTASSI
-.TP 8
-\fBlastlog\fR [(\fB-u\fR|\fB--user\fR) \fIutente\fR]
-[(\fB-t\fR|\fB--time\fR) \fIdays\fR] [(\fB-h\fR|\fB--help\fR)]
-.SH DESCRIZIONE
-\fBlastlog\fR formatta e stampa il contenuto dell'ultimo log di login,
-\fI/var/log/lastlog\fR.  Verranno stampati \fBnome-login\fR, \fBporta\fR,
-e \fBdata_ultima_connessione\fR.
-Il comportamento predefinito (senza opzioni) è quello di stampare le voci di
-lastlog in ordine di UID.
-Digitando l'opzione \fB-u \fInome-login\fR verrà stampato solo il
-record di \fInome-login\fR.
-Digitando \fB-t \fIgiorni\fR verranno stampate solo le ultime connessioni
-più recenti di \fIgiorni\fR.
-L'opzione \fB-t\fR sovrascrive l'uso di \fB-u\fR.
-.PP
-Se l'utente non si è mai connesso verrà mostrato, al posto della porta e della
-data, il messaggio \fB"**Never logged in**"\fR (**Mai connesso**).
-.SH FILE
-\fI/var/log/lastlog\fR \- file di connessione lastlog 
-.SH CAVEAT
-Grandi lacune nei numeri di uid provocheranno una prolungata esecuzione del
-programma lastlog senza alcun output sullo schermo (i.e. se mmdf=800 e l'ultimo
-uid=170, sembrerà che il programma rimanga appeso mentre elabora gli uid 171-799).
-.SH AUTORI
-Julianne Frances Haugh (jfh@tab.com)
-.br
-Phillip Street
diff --git a/man/it/login.1 b/man/it/login.1
deleted file mode 100644 (file)
index 390bbf5..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-.\" $Id: login.1,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
-.\" May be distributed under the GNU General Public License
-.\" Può essere distribuito sotto la GNU General Public License
-.\" 
-.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Agosto 1996
-.\" Aggiornamento alla 2.9 di Roberto Pertile <triplej@iol.it>
-.TH LOGIN 1 "4 novembre 1996" "Util-linux 1.6" "Linux Programmer's Manual"
-.SH NOME
-login \- accede al sistema
-.SH SINTASSI
-.BR "login [ " nome " ]"
-.br
-.B "login \-p"
-.br
-.BR "login \-h " nome_host
-.br
-.BR "login \-f " nome
-.SH DESCRIZIONE
-.B login
-viene utilizzato quando  si accede a un sistema.  Può
-anche venire usato per passare da un utente a un altro in qualunque momento
-(le shell più recenti tuttavia hanno un supporto incorporato per questa
-caratteristica).
-
-Se non sono forniti argomenti,
-.B login
-chiede il nome dell'utente.
-
-Se l'utente
-.I non
-é root, e se esiste
-.IR /etc/nologin ,
-vengono stampati sullo schermo i contenuti di questo file e viene
-terminata l'operazione.
-Ciò viene usato, tipicamente, per impedire collegamenti quando il sistema
-sta per essere spento.
-
-Se per l'utente sono specificate particolari restrizioni di accesso in
-.IR /etc/usertty ,
-esse devono venire rispettate, altrimenti il tentativo di collegamento
-riceverà un diniego e verrà generato un messaggio di 
-.BR syslog .
-Si veda la sezione sulle "Restrizioni Speciali sull'Accesso".
-
-Se l'utente è root, allora il collegamento deve avvenire da una tty
-elencata in 
-.IR /etc/securetty .
-I fallimenti saranno registrati dai servizi di
-.BR syslog .
-
-Dopo la verifica di queste condizioni, verrà richiesta e controllata
-la password (se è necessaria per quell'utente). Sono consentiti dieci
-tentativi prima che
-.B login
-termini, tuttavia dopo i primi tre, la risposta comincerà a diventare
-molto lenta.
-I collegamenti falliti vengono riferiti dai servizi di 
-.BR syslog .
-Questi servizi sono inoltre usati per riferire qualsiasi collegamento
-riuscito di root.
-
-Se esiste il file
-.IR .hushlogin ,
-allora verrà eseguito un collegamento "silenzioso" (disabilitando il
-controllo della posta, la stampa dell'orario dell'ultimo collegamento
-e del messaggio del giorno). Altrimenti, se esiste
-.IR /var/log/lastlog ,
-viene stampata la data e ora dell'ultimo collegamento (e viene registrato
-il collegamento in atto).
-Sono eseguiti compiti amministrativi vari, come impostare lo UID e il GID
-della tty. Viene conservata la variabile d'ambiente TERM, se esiste (le altre
-variabili d'ambiente vengono conservate se si usa l'opzione
-.BR \-p ).
-Quindi vengono impostate le variabili d'ambiente HOME, PATH, SHELL, TERM,
-MAIL e LOGNAME. PATH viene predefinito come
-.I /usr/local/bin:/bin:/usr/bin:.
-per gli utenti normali e come 
-.I /sbin:/bin:/usr/sbin:/usr/bin
-per root.  Infine, se non si tratta di un collegamento "silenzioso", viene
-stampato il messaggio del giorno, viene controllato il file col nome
-dell'utente in 
-.IR /usr/spool/mail ,
-e stampato un messaggio se esso ha lunghezza non-zero.
-
-Viene poi lanciata la shell dell'utente. Se non è specificata nessuna
-shell per l'utente in
-.BR /etc/passwd ,
-allora viene usata 
-.BR /bin/sh .
-Se non sono specificate directory in
-.IR /etc/passwd ,
-allora viene usata
-.I /
-(la directory home viene controllata dal file 
-.I .hushlogin
-descritto sopra).
-.SH OPZIONI
-.TP
-.B \-p
-Usata da
-.BR getty (8)
-per dire a 
-.B login
-di non distruggere l'ambiente.
-.TP
-.B \-f
-Usata per saltare la seconda autentifica di collegamento. Ciò,
-specificamente, 
-.B non
-funziona per root, e non sembra funzionare bene sotto Linux.
-.TP
-.B \-h
-Usata da altri server (per esempio,
-.BR telnetd (8))
-per passare il nome dell'host remoto a 
-.B login
-onde poterlo collocare in utmp e wtmp. Solo il superutente può usare
-quest'opzione.
-
-
-.SH "RESTRIZIONI SPECIALI SULL'ACCESSO"
-Il file
-.I /etc/securetty
-elenca il nome delle tty sulle quali può collegarsi root. Su ogni linea deve
-essere specificato un nome di dispositivo tty senza il prefisso /dev/. Se
-il file non esiste, a root è permesso di collegarsi da qualunque tty.
-
-.PP
-Il file
-.I /etc/usertty
-specifica restrizioni di accesso ulteriori per specifici utenti. Se questo
-file non esiste, non viene imposta alcuna ulteriore restrizione d'accesso.
-Il file consiste di una sequenza di sezioni. Ci sono tre possibili tipi di
-sezione: CLASSES, GROUPS e USERS. Una sezione CLASSES definisce la classe di
-tty consentiti e i modelli di hostname, una sezione GROUPS definisce tty e
-host consentiti in base al gruppo, una sezione USERS definisce tty e host
-consentiti in base all'utente.
-.PP
-Ogni riga di questo file può avere una lunghezza massima di 255 caratteri. I
-commenti iniziano con un carattere # e si estendono fino al termine della
-riga.
-.PP
-.SS "La sezione CLASSES"
-Una sezione CLASSES incomincia con la parola CLASSES, all'inizio della riga
-e tutta in maiuscole. Ognuna delle righe che seguono, fino
-all'inizio di una nuova sezione o alla fine del file, consistono in una
-sequenza di parole separate da tabulazioni o spazi. Ogni riga definisce
-una classe di tty e modelli di host.
-.PP
-La parola all'inizio  di una riga viene definita come un nome collettivo
-per le tty e i modelli di host specificati nel resto della riga. Questo
-nome collettivo può essere usato in ogni sezione successiva GROUPS o
-USERS. Nessuno di tali nomi di classi deve essere parte della definizione
-di una classe, per evitare problemi con classi ricorsive.
-.PP
-Un esempio di sezione CLASSES:
-.PP
-.nf
-.in +.5
-CLASSES
-mia_classe1            tty1 tty2
-mia_classe2            tty3 @.foo.com
-.in -.5
-.fi
-.PP
-Ciò definisce le classi
-.I mia_classe1 
-e 
-.I mia_classe2
-corrispondenti a quello che hanno a destra.
-.PP
-
-.SS "La sezione GROUPS"
-Una sezione GROUPS definisce i tipi consentiti di tty e host in base al
-gruppo Unix. Se un utente è membro di un gruppo Unix in accordo a
-.I /etc/passwd
-e
-.I /etc/group
-e tale gruppo è menzionato in una sezione GROUPS in
-.I /etc/usertty
-allora l'utente ha il permesso di accesso se lo ha il gruppo.
-.PP
-Una sezione GROUPS incomincia con la parola GROUPS, tutta in  maiuscole,
-all'inizio di una riga, ogni riga seguente è una sequenza di parole
-separate da spazi o tabulazioni. La prima parola di una riga è il nome
-del gruppo e il resto delle parole sulla riga specificano le tty e gli host
-dai quali è consentito accesso ai membri di quel gruppo. Queste
-specificazioni possono comportare l'uso di classi definite nelle precedenti
-sezioni CLASSES.
-.PP
-Esempio di una sezione GROUPS:
-.PP
-.nf
-.in +0.5
-GROUPS
-sys            tty1 @.bar.edu
-stud           mia_classe1 tty4
-.in -0.5
-.fi
-.PP
-Questo esempio specifica che i membri del gruppo
-.I sys
-possono collegarsi da tty1 e da host nel dominio bar.edu. Gli utenti nel
-gruppo
-.I stud
-possono collegarsi dagli host/tty specificati nella classe mia_classe1 o
-da tty4.
-.PP
-
-.SS "La sezione USERS"
-Una sezione USERS comincia con la parola USERS tutta in maiuscolo all'inizio
-di una riga, e ogni riga successiva è una sequenza di parole separate da
-spazi o tabulazioni. La prima parola in una riga è un nome di utente e a 
-quell'utente è permesso di collegarsi dai tty e dagli host menzionati nel
-resto della riga. Queste specificazioni possono comportare classi definite
-in precedenti sezioni CLASSES. Se non viene specificata alcuna intestazione
-all'inizio del file, la prima sezione è predefinita come sezione USERS.
-.PP
-Esempio di una sezione USERS:
-.PP
-.nf
-.in +0.5
-USERS
-zacho           tty1 @130.225.16.0/255.255.255.0
-blue            tty3 mia_classe2
-.in -0.5
-.fi
-.PP
-Ciò consente all'utente zacho di collegarsi solo sul tty1 e dagli host con
-indirizzi IP nell'intervallo 130.225.16.0 \- 130.225.16.255, e all'utente
-blue consente di collegarsi dal tty3 e da qualunque cosa sia stato
-specificato in mia_classe2.
-.PP
-Ci può essere una riga nella sezione USERS che comincia con un nome di
-utente di *. Questa è una regola predefinita e verrà applicata a
-qualsiasi utente che non corrisponda ad alcuna altra riga.
-.PP
-Se un utente corrisponde sia a una riga USERS sia a una riga GROUPS
-allora all'utente è consentito l'accesso risultante dall'unione di tutti i
-tty/host menzionati in tali specificazioni.
-
-.SS Origini
-Le specifiche di tty e i modelli di host usate nella specificazione degli
-accessi di classi, gruppi e utenti si chiamano origini. Una stringa origine
-può avere uno dei seguenti formati:
-.IP o 
-Il nome di un dispositivo tty senza il prefisso /dev/, per esempio tty1 o
-ttyS0.
-.PP
-.IP o
-La stringa @localhost, che significa che all'utente è permesso di fare
-telnet/rlogin dall'host locale allo stesso host. Questo consente inoltre
-all'utente, per esempio, di eseguire il comando: xterm -e /bin/login.
-.PP
-.IP o
-Il suffisso di un nome di dominio come @.some.dom, che significa che
-l'utente può fare rlogin/telnet da qualsiasi host il cui nome di dominio
-abbia il suffisso
-.some.dom.
-.PP
-.IP o
-Un intervallo di indirizzi IPv4 , scritto @x.x.x.x/y.y.y.y dove x.x.x.x
-è l'indirizzo IP nella consueta notazione decimale puntata, e
-y.y.y.y è una bitmask nella stessa notazione che specifica quali bit
-nell'indirizzo devono essere confrontati con l'indirizzo IP dell'host remoto.
-Per esempio, @130.225.16.0/255.255.254.0 vuol dire che l'utente può fare
-rlogin/telnet da qualsiasi host il cui indirizzo IP sia nell'intervallo
-130.225.16.0 \- 130.225.17.255.
-.PP
-Qualunque delle suddette origini può essere prefissata da una
-specificazione di tempo secondo la sintassi:
-.PP
-.nf
-spec_ora     ::= '[' <giorno-o-ora> [':' <giorno-o-ora>]* ']'
-giorno       ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
-ora          ::= '0' | '1' | ... | '23'
-spec_ora     ::= <ora> | <ora> '\-' <ora>
-giorno-o-ora ::= <giorno> | <spec_ora>
-.fi
-.PP
-Per esempio, l'origine [mon:tue:wed:thu:fri:8\-17]tty3 significa che il
-collegamento è consentito dal lunedì al venerdì fra le 8:00 e le 17:59
-(5:59 p.m.) dalla tty3. Questo mostra anche che un intervallo di ore a\-b
-include tutti gli istanti fra a:00 e b:59. La specificazione di una singola
-ora (come 10) significa l'intervallo di tempo fra le 10:00 e le 10:59.
-.PP
-La mancata specificazione di qualsiasi prefisso di tempo per una tty o host
-significa che il collegamento da quella origine è permesso in qualunque
-momento. Se dato un prefisso di tempo, ci si accerti di specificare sia un
-insieme di giorni sia una una o più ore o intervalli di ore. Una
-specificazione di ore non può comprendere nessuno spazio bianco.
-.PP
-Se non è data alcuna regola predefinita allora gli utenti che non
-corrispondano ad alcuna riga di 
-.I /etc/usertty
-possono collegarsi da qualunque posto, come è il comportamento standard.
-.PP
-.SH FILE
-.nf
-.I /var/run/utmp
-.I /var/log/wtmp
-.I /var/log/lastlog
-.I /usr/spool/mail/*
-.I /etc/motd
-.I /etc/passwd
-.I /etc/nologin
-.I /etc/usertty
-.I .hushlogin
-.fi
-.SH "VEDERE ANCHE"
-.BR init (8),
-.BR getty (8),
-.BR mail (1),
-.BR passwd (1),
-.BR passwd (5),
-.BR environ (7),
-.BR shutdown (8)
-.SH BACHI
-
-Linux, a differenza di altri sistemi operativi draconiani, non controlla le
-quote di spazio.
-
-Non è supportata l'opzione non documentata del BSD
-.BR \-r .
-Ciò potrebbe essere richiesto da alcuni programmi di 
-.BR rlogind (8) .
-
-.SH AUTORE
-Derivato dal BSD login 5.40 (5/9/89) da Michael Glad (glad@daimi.dk) per HP-UX
-.br
-Portato a Linux 0.12: Peter Orbaek (poe@daimi.aau.dk)
diff --git a/man/it/newgrp.1 b/man/it/newgrp.1
deleted file mode 100644 (file)
index c7396e0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-.\" $Id: newgrp.1,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Original author unknown.  This man page is in the public domain.
-.\" Modified Sat Oct  9 17:46:48 1993 by faith@cs.unc.edu
-.\"
-.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Agosto 1996
-.\"
-.\" " for hilit19
-.TH NEWGRP 1 "9 ottobre 1993" "Linux 1.2" "Linux Programmer's Manual"
-.SH NOME
-newgrp \- logga in un nuovo gruppo
-.SH SINTASSI
-.BI "newgrp [ " gruppo " ]"
-.SH DESCRIZIONE
-.B Newgrp
-cambia l'identificatico del gruppo (GID) del suo chiamante, in modo analogo a 
-.BR login (1).
-La stessa persona rimane loggata, e non è cambiata la directory corrente,
-ma i calcoli sui permessi d'accesso ai file sono fatti rispetto a nuovo 
-group ID.
-.LP
-Se non è specificato alcun gruppo, il GID è posto pari al GID di login.
-.LP
-.SH FILE
-.I /etc/group
-.br
-.I /etc/passwd
-
-.SH "VEDERE ANCHE"
-.BR login "(1), " group (5)
-
-.SH AUTORE
-All'inizio era Michael Haardt. Attualmente mantenuto da
-Peter Orbaek (poe@daimi.aau.dk).
diff --git a/man/it/passwd.1 b/man/it/passwd.1
deleted file mode 100644 (file)
index cf02ca5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-.\" $Id: passwd.1,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Copyright 1992 Rickard E. Faith (faith@cs.unc.edu)
-.\" May be distributed under the GNU General Public License
-.\"
-.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Agosto 1996
-.\"
-.\" " for hilit19
-.TH PASSWD 1 "22 giugno 1994" "Linux 1.2" "Linux Programmer's Manual"
-.SH NOME
-passwd \- cambia la password
-.SH SINTASSI
-.BR "passwd [ " utente " [ " password " ] ]"
-.SH DESCRIZIONE
-Senza alcun argomento 
-.B passwd
-cambierà la password per l'attuale utente. Per prima cosa all'utente è chiesta
-la vecchia password, dopo di che, per evitare errori di battitura, va immessa
-per due volte la nuova password. La nuova password deve essere lunga almeno 
-sei caratteri ed essere composta sia da maiuscole che da minuscole o da 
-caratteri non alfabetici. La nuova password non deve essere uguale alla
-vecchia password, e non deve coincidere con il nome dell'utente.
-
-Le forme a uno e due argomenti possono essere usate solo dal superuser. Usando
-la forma ad un argomento, il superuser può cambiare la password per 
-quell'utente. Al superuser non è chiesta la vecchia password, e non sono
-applicate le regole per le password valide, poiché il superuser potrebbe
-avere valide ragioni per scegliere una password che non ne sia conforme.
-
-La forma a due argomenti assegna ad
-.I utente
-la password passata come secondo argomento. Ciò può essere utile quando
-si deve assegnare a molti utenti una password iniziale.
-
-Passando una stringa vuota come secondo argomento si cancella la password 
-dell'utente.
-
-.SH FILE
-.I /etc/passwd
-.br
-.I /etc/shells
-.SH "VEDERE ANCHE"
-.BR chsh (1),
-.BR chfn (1)
-.SH BACHI
-Sono permesse password composte solo da numeri.
-.br
-Non viene prodotto nessun messaggio d'avviso se il superuser sceglie una
-password ``scadente''.
-.br
-Le opzioni
-.B \-f
-e
-.B \-s
-non sono supportare.
-.SH AUTORE
-Peter Orbaek (poe@daimi.aau.dk)
diff --git a/man/it/passwd.5 b/man/it/passwd.5
deleted file mode 100644 (file)
index b97aa53..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-.\" $Id: passwd.5,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de)
-.\" Fri Apr  2 11:32:09 MET DST 1993
-.\"
-.\" Traduzione in italiano di Giovanni Bortolozzo <borto@dei.unipd.it>
-.\" Agosto 1996
-.\"
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
-.\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
-.\" USA.
-.\"
-.\" Modified Sun Jul 25 10:46:28 1993 by Rik Faith (faith@cs.unc.edu)
-.\" Modified Sun Aug 21 18:12:27 1994 by Rik Faith (faith@cs.unc.edu)
-.\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl)
-.\" Modified Mon Jan  5 20:24:40 MET 1998 by Michael Haardt
-.\"  (michael@cantor.informatik.rwth-aachen.de)
-.TH PASSWD 5 "5 gennaio 1988" "Linux" "Linux Programmer's Manual"
-.SH NOME
-passwd \- file delle password
-.SH DESCRIZIONE
-.B Passwd
-è un file di testo che contiene un elenco degli account sul sistema, e
-per ciascuno di questi riporta alcune informazioni utili come user ID,
-group ID, home directory, ecc. Spesso contiene anche le password
-criptate di ciascun account. Il file delle password dovrebbe avere
-permessi di lettura per tutti (molte utility, come
-.BR ls (1),
-ne fanno uso per associare lo user ID allo user name), ma permesso di
-scrittura solo per il superuser.
-.PP
-Nei buoni tempi andati, il permesso di lettura per tutti non era un
-grosso problema: chiunque poteva leggere le password criptate, ma i
-calcolatori erano troppo lenti per decifrare una password scelta
-bene. Soprattutto, si supponeva di lavorare fra amici. Oggigiorno,
-molti usano una qualche versione di shadow password (chiavi ombra), in
-cui
-.I /etc/passwd
-contiene degli * al posto delle password criptate, che a loro volta
-sono nel file \fI/etc/shadow\fP, che solo il superuser può leggere.
-.PP
-Sia che si utilizzino  o meno le shadow password, molti amministratori di
-sistema usano un asterisco nel campo della password per far sì che un
-utente non possa autenticarsi con una password (vedi le note più
-sotto).
-.PP
-Se si crea una nuova login, si metta un asterisco nel campo della
-password, e poi si usi il programma
-.BR passwd (1)
-per riempirlo.
-.PP
-C'è una voce per riga, ed ogni riga ha il formato:
-.sp
-.RS
-account:passwd:UID:GID:GECOS:directory:shell
-.RE
-.sp
-Il significato dei campi è il seguente:
-.sp
-.RS
-.TP 1.0in
-.I account
-il nome dell'utente nel sistema. Non dovrebbe contenere maiuscole.
-.TP
-.I password
-la password criptata o un asterisco.
-.TP
-.I UID
-l'identificativo numerico dell'utente (UID = User IDentifier).
-.TP
-.I GID
-l'identificativo numerico del gruppo principale per l'utente (GID =
-Group IDentifier).
-.TP
-.I GECOS
-Questo campo è opzionale e viene usato solo per fornire
-informazioni. Di solito contiene il nome per esteso dell'utente. GECOS
-sta per General Electric Comprehensive Operating System, (sistema
-operativo comprensivo della General Electric), ribattezzato GCOS
-quando la divisione grandi sistemi della GE fu venduta alla
-Honeywell. Dennis Ritchie riferì: «A volte dovevamo spedire una stampa
-o un gruppo di lavori alla macchina GCOS. Il campo del gcos nel file
-delle password era un posto in cui sbattere le informazioni per la
-$IDENTcard. Per niente elegante.»
-.TP
-.I directory
-la $HOME directory dell'utente.
-.TP
-.I shell
-il programma lanciato al login (se è vuoto, viene usato 
-.BR /bin/sh ).
-Se punta ad un programma che non esiste, l'utente non potrà avere
-accesso tramite
-.BR login (1).
-.RE
-.SH NOTE
-Se si vuole creare un gruppo di utenti, il loro GID deve
-essere uguale e ci deve essere una voce nel file \fI/etc/group\fP, o il 
-gruppo non esisterà.
-.PP
-Se la password criptata è un asterisco, l'utente non potrà fare login
-tramite
-.BR login (1).
-ma potrà ugualmente accedere al suo account usando
-.BR rlogin (1),
-far girare processi esistenti o iniziarne nuovi con
-.BR rsh (1),
-.BR cron (1),
-.BR at (1)
-o filtri per la posta, ecc. Bloccare un account semplicemente
-modificando il campo della shell ha lo stesso effetto e in più
-permette l'uso di
-.BR su (1).
-.SH FILE
-.I /etc/passwd
-.SH "VEDERE ANCHE"
-.BR passwd (1),
-.BR login (1),
-.BR su (1),
-.BR group (5),
-.BR shadow (5)
diff --git a/man/it/pwconv.8 b/man/it/pwconv.8
deleted file mode 100644 (file)
index a8edb92..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-.\" $Id: pwconv.8,v 1.1 2002/03/10 07:41:06 kloczek Exp $
-.\" Traduzione in italiano  di Isabella Ruocco <isacher@nettaxi.com>
-.\" Giugno 1999
-.TH PWCONV 8 "26 sep 1997"
-.SH NOME
-pwconv, pwunconv, grpconv, grpunconv \- convertono a e da password e gruppi shadow.
-.SH SINTASSI
-.B pwconv
-.br
-.B pwunconv
-.br
-.B grpconv
-.br
-.B grpunconv
-.SH DESCRIPTION
-Questi quattro programmi agiscono tutti sui file normali e e oscurati (shadow) 
-delle password e dei gruppi:
-.IR /etc/passwd ", " /etc/group ", " /etc/shadow ", e " /etc/gshadow .
-
-.B pwconv
-.RI "crea " shadow " da " passwd " e, in modo opzionale, da un preesistente " shadow .
-.B pwunconv
-.RI "crea " passwd " da " passwd " e " shadow " e quindi rimuove " shadow .
-.B grpconv
-.RI "crea " gshadow " da " group " e, in modo opzionale, da un preesistente " gshadow .
-.B grpunconv
-.RI "crea " group " da " group " e " gshadow " e quindi rimuove " gshadow .
-
-Ciascun programma, prima della conversione, acquisisce i lock necessari.
-
-.BR pwconv " e " grpconv
-sono simili.  Per prima cosa vengono rimosse le voci nel file oscurato che non esistono 
-nel file principale.  Quindi vengono aggiornate le voci oscurate che 
-non hanno `x' come password nel file principale.  Vengono aggiunte le eventuali voci
-oscurate mancanti.  Infine, le password nel file principale vengono 
-sostituite con `x'.  Questi programmi possono essere usati per le conversioni iniziali
-così come per aggiornare il file oscurato se il file principale viene editato 
-a mano.
-
-.B pwconv
-userà i valori di
-.BR PASS_MIN_GIORNI ", " PASS_MAX_GIORNI ", e " PASS_GIORNI_PREAVVISO
-da
-.I /etc/login.defs
-quando si aggiungono nuove voci a
-.IR /etc/shadow .
-
-.RB "Analogamente, " pwunconv " e " grpunconv
-sono simili.  Le password nel file principale vengono aggiornate 
-dal file oscurato. Voci che esistono nel file principale ma non 
-nel file oscurato vengono lasciate stare.  Infine, viene rimosso il file oscurato.
-
-Alcune informazioni sull'invecchiamento delle password vengono perse da
-.BR pwunconv .
-Questo convertirà quello che potrà.
-.SH "VEDERE ANCHE"
-.BR login.defs (5),
-.BR shadowconfig (8)
diff --git a/man/it/pwunconv.8 b/man/it/pwunconv.8
deleted file mode 100644 (file)
index 6eed9e8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man8/pwconv.8
diff --git a/man/it/shadow.5 b/man/it/shadow.5
deleted file mode 100644 (file)
index e8f22f8..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-.\" Copyright 1989 - 1990, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: shadow.5,v 1.2 2003/04/26 13:24:13 kloczek Exp $
-.\"
-.\" Traduzione in italiano  di Isabella Ruocco <isacher@nettaxi.com>
-.\" Giugno 1999
-.\"
-.TH SHADOW 5
-.SH NOME
-shadow \- file crittato delle password 
-.SH DESCRIZIONE
-.I shadow
-contiene le informazioni sulle password crittate per gli account degli utenti
-e, opzionalmente, informazioni sull'invecchiamento delle password.
-E' incluso
-.IP "" .5i
-Nome di login
-.IP "" .5i
-Password crittata
-.IP "" .5i
-Giorni a partire dal 1 gennaio 1970 in cui la password è stata cambiata l'ultima volta
-.IP "" .5i
-Giorni prima che la password possa essere modificata
-.IP "" .5i
-Giorni dopo i quali la password deve essere modificata
-.IP "" .5i
-Giorni prima della scadenza della password in cui l'utente viene avvertito
-.IP "" .5i
-Giorni dopo la scadenza della password in cui l'account viene disabilitato
-.IP "" .5i
-Giorni a partire dal 1 gennaio 1970 dopo i quali l'account viene disabilitato
-.IP "" .5i
-Campo riservato
-.PP
-Il campo password deve essere riempito.
-La password crittata è composta da un numero compreso tra 13 e 24 di caratteri dei
-64 caratteri alfabetici
-da a fino a z, da A a Z, da 0 a 9, \. e /.
-Fate riferimento a \fBcrypt\fR(3) per dettagli riguardanti il modo in cui questa stringa
-viene interpretata.
-.PP
-La data dell'ultima modifica della password è specificata come il numero
-di giorni dal 1 gennaio 1970.
-La passowrd non può essere modifcata nuovamente prima che sia passato
-il numero di giorni previsto, e deve essere cambiata dopo il massimo numero 
-di giorni.
-Se il minimo numero di giorni richiesto è superiore del
-massimo numero di giorni permesso, questa password non potrà
-essere modificata dall'utente.
-.PP
-Un account viene considerato inattivo e viene disabilitato se
-la password non viene modificata entro il numero di giorni specificato
-dopo la scadenza della password.
-Un account sarà anche disabilitato il giorno specificato
-senza tener conto di altre informazioni sulla scadenza della password.
-.PP
-Questa informazione ha la precedenza nei confronti di qualunque informazione sulla password o sulla scadenza della password 
-presente in \fI/etc/passwd\fR.
-.PP
-Questo file non deve essere leggibile dagli utenti normali se si vuole mantenere
-la sicurezza sulle password.
-.SH FILE
-\fI/etc/passwd\fR \- informazioni sull'account dell'utente
-.br
-\fI/etc/shadow\fR \- password crittate degli utenti
-.SH VEDERE ANCHE
-.BR chage (1),
-.BR login (1),
-.BR passwd (1),
-.BR su (1),
-.BR sulogin (8),
-.BR shadow (3),
-.BR passwd (5),
-.BR pwconv (8),
-.BR pwunconv (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/useradd.8 b/man/it/useradd.8
deleted file mode 100644 (file)
index 4060af9..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: useradd.8,v 1.6 2004/12/12 20:23:58 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\" 
-.TH USERADD 8
-.SH NOME
-useradd \- Crea un nuovo utente o aggiorna le informazioni predefinite per
-i nuovi utenti
-.SH SINTASSI
-.TP 8
-.B useradd
-.\" .RB [ -A
-.\" .RI { metodo | \fBPREDEFINITO\fR "},... ]"
-.RB [ -c
-.IR commento ]
-.RB [ -d
-.IR home_dir ]
-.br
-.RB [ -e
-.IR data_scadenza ]
-.RB [ -f
-.IR tempo_inattività ]
-.br
-.RB [ -g
-.IR gruppo_iniziale ]
-.RB [ -G
-.IR gruppo [,...]]
-.br
-.RB [ -m " [" -k
-.IR dir_scheletro ]]
-.RB [ -s
-.IR shell ]
-.br
-.RB [ -u
-.IR uid " ["
-.BR -o ]]
-.I login
-.TP 8
-.B useradd
-\fB-D\fR
-[\fB-g\fI gruppo_predefinito\fR]
-[\fB-b\fI home_predefinita\fR]
-.br
-[\fB-f\fI inattività_predefinita\fR]
-[\fB-e\fI data_scadenza_predefinita\fR]
-.br
-[\fB-s\fI shell_predefinita\fR]
-.SH DESCRIZIONE
-.SS Creare Nuovi Utenti
-Quando viene invocato senza l'opzione \fB-D\fR, il comando \fBuseradd\fR 
-crea un nuovo account di utente usando i valori specificati sulla linea di
-comando ed i valori predefiniti dal sistema.
-Il nuovo account di utente verrà aggiunto ai file di sistema che lo necessitano,
-verrà creata la home directory, e lì verranno copiati i file iniziali, a seconda
-delle opzioni sulla linea di comando.
-.SH OPZIONI
-Le opzioni che si applicano al comando \fBuseradd\fR sono:
-.\" .IP "\fB-A {\fImetodo\fR|\fBPREDEFINITO\fR},..."
-.\" Il valore del metodo di autenticazione dell'utente.
-.\" Il metodo di autenticazione è il nome di un programma che è responsabile
-.\" della validazione dell'identità dell'utente.
-.\" La stringa \fBPREDEFINITO\fR può essere usata per cambiare il metodo di
-.\" autenticazione dell'utente con il metodo standard di sistema delle
-.\" password.
-.\" Questa è una lista di nomi di programmi separati da virgole.
-.\" Può includere \fBPREDEFINITO\fR esattamente una volta.
-.IP "\fB-c \fIcommento\fR"
-Il campo commento del nuovo utente nel file password.
-.IP "\fB-d \fIhome_dir\fR"
-Il nuovo utente verrà creato usando \fIhome_dir\fR come valore per la
-directory di login dell'utente.
-Il comportamento predefinito è di appendere il nome \fIlogin\fR a
-\fIhome_predefinita\fR  ed usare quella come nome di directory di login.
-.IP "\fB-e \fIdata_scadenza\fR"
-La data in cui verrà disabilitato l'account dell'utente.
-La data è specificata nel formato \fIMM/GG/AA\fR.
-.IP "\fB-f \fIgiorni_inattività\fR"
-Il numero di giorni dopo la scadenza della password fino a quando l'account
-verrà permanentemente disabilitato.
-Un valore pari a 0 disabilita l'account non appena è scaduta la password,
-ed un valore pari a -1 disabilita questa caratteristica.
-Il valore predefinito è -1.
-.IP "\fB-g \fIgruppo_iniziale\fR"
-IL nome o numero del gruppo iniziale di login dell'utente.
-Il nome del gruppo deve esistere. Un numero di gruppo deve fare riferimento
-ad un gruppo già esistente.
-Il numero di gruppo predefinito è 1.
-.IP "\fB-G \fIgruppo,[...]\fR"
-Una lista di gruppi supplementari di cui l'utente è altresì membro.
-Ciascun gruppo è separato dal successivo da una virgola, senza spazi
-bianchi intermedi.
-I gruppi sono soggetti alle stesse restrizioni del gruppo dato con
-l'opzione \fB-g\fR.
-Il comportamento predefinito è che l'utente appartenga solo al gruppo
-iniziale.
-.IP \fB-m\fR
-La home directory dell'utente verrà creata se non esiste.
-I file contenuti in \fIdir_scheletro\fR saranno copiati nella home directory
-se viene usata l'opzione \fB-k\fR, altrimenti verranno usati i file
-contenuti in \fI/etc/skel\fR.
-Anche tutte le directory contenute in \fIdir_scheletro\fR o \fI/etc/skel\fR
-verranno create nella home directory dell'utente.
-L'opzione \fB-k\fR è valida solo in congiunzione con l'opzione \fB-m\fR.
-Il comportamento predefinito è di non creare la directory e di non copiarvi
-alcun file.
-.IP "\fB-s \fIshell\fR"
-Il nome della shell di login dell'utente.
-Il comportamento predefinito è di lasciare vuoto questo campo, che fa sì che
-il sistema selezioni la shell di connessione predefinita.
-.IP "\fB-u \fIuid\fR"
-Il valore numerico dell'ID dell'utente.
-Questo valore deve essere univoco, a meno che non venga usata l'opzione
-\fI-o\fR.
-Il valore deve essere non-negativo.
-Il comportamento predefinito è di usare il minimo valore di ID superiore a 999
-e superiore a quello di ogni altro utente.
-Valori tra 0 e 999 sono tipicamente riservati per account di sistema.
-.SS Cambiare i valori predefiniti
-Quando invocato con l'opzione \fB-D\fR, \fBuseradd\fR o mostrerà i valori
-predefiniti correnti, oppure aggiornerà i valori predefiniti dalla linea
-di comando.
-Le opzioni valide sono
-.IP "\fB-b \fIhome_predefinita\fR"
-Il prefisso del percorso per la home directory del nuovo utente.
-Il nome dell'utente verrà aggiunto alla fine di \fIhome_predefinita\fR
-per creare il nome della nuova directory se non viene usata l'opzione \fB-d\fI
-quando si crea un nuovo account.
-.IP "\fB-e \fIdata_scadenza_predefinita\fR"
-La data in cui l'account dell'utente verrà disabilitato.
-.IP "\fB-f \fIinattività_predefinita\fR"
-Il numero di giorni dopo la scadenza di una password prima che l'account
-venga disabilitato.
-.IP "\fB-g \fIgruppo_predefinito\fR"
-Il nome o ID del gruppo iniziale per un nuovo utente.
-Il gruppo nominato deve esistere, ed un ID numerico di gruppo deve avere una
-voce esistente.
-.IP "\fB-s \fIshell_predifinita\fR"
-Il nome della shell di login per un nuovo utente.
-Il programma nominato verrà usato per tutti gli account dei futuri nuovi
-utenti.
-.PP
-Se non è specificata alcuna opzione, \fBuseradd\fR mostra i valori predefiniti
-correnti.
-.SH NOTE
-L'amministratore di sistema è responsabile del posizionamento dei file
-predefiniti degli utenti nella directory \fI/etc/skel\fR.
-.SH CAVEAT
-Non è possibile aggiungere un utente ad un gruppo NIS.
-Questo deve essere fatto sul server NIS. 
-.SH FILE
-\fI/etc/passwd\fR \- informazioni sugli account di utenti
-.br
-\fI/etc/shadow\fR \- informazioni sicure sugli account di utenti
-.br
-\fI/etc/group\fR \- informazioni sui gruppi
-.br
-\fI/etc/default/useradd\fR \- informazioni predefinite
-.br
-\fI/etc/skel/ \fR\- directory contenente i file predefiniti
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR groupadd (8),
-.BR groupdel (8),
-.BR groupmod (8),
-.BR passwd (1),
-.BR userdel (8),
-.BR usermod (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/userdel.8 b/man/it/userdel.8
deleted file mode 100644 (file)
index 19ea163..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: userdel.8,v 1.3 2003/04/28 06:09:52 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH USERDEL 8
-.SH NOME
-userdel \- Rimuove l'account di un utente ed i file relativi
-.SH SINTASSI
-.B userdel
-[\fB-r\fR]
-.I login
-.SH DESCRIZIONE
-Il comando \fBuserdel\fR modifica i file di account del sistema, rimuovendo
-tutte le voci che si riferiscono a \fIlogin\fR.
-L'utente nominato deve esistere.
-.IP \fB-r\fR
-I file nella home directory dell'utente verranno rimossi insieme alla home
-directory stessa.
-I file collocati in altri file system dovranno essere ricercati e rimossi
-manualmente.
-.SH FILE
-\fI/etc/passwd\fR \- informazioni sugli account di utenti
-.br
-\fI/etc/shadow\fR \- informazioni sicure sugli account di utenti
-.br
-\fI/etc/group\fR \- informazioni sui gruppi
-.SH CAVEAT
-\fBuserdel\fR non permetterà di rimuovere alcun account se l'utente è
-attualmente connesso.
-Occorre uccidere qualunque processo in esecuzione che appartenga ad un account
-che si sta rimuovendo.
-Non è possibile rimuovere nessun attributo NIS su un client NIS.
-Questo deve essere fatto sul server NIS.
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR groupadd (8),
-.BR groupdel (8),
-.BR groupmod (8),
-.BR passwd (1),
-.BR useradd (8),
-.BR usermod (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/usermod.8 b/man/it/usermod.8
deleted file mode 100644 (file)
index 0977ccc..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    $Id: usermod.8,v 1.5 2004/11/04 03:06:32 kloczek Exp $
-.\"
-.\" Traduzione in italiano a cura di Isabella Ruocco <isacher@nettaxi.com>
-.\" luglio 1999
-.\"
-.TH USERMOD 8
-.SH NOME
-usermod \- Modifica l'account di un utente
-.SH SINTASSI
-.TP 8
-.B usermod
-.\" .RB [ -A
-.\" .RI { metodo | \fBPREDEFINITO\fR "},... ]"
-.RB [ -c
-.IR commento ]
-.RB [ -d
-.IR home_dir " ["
-.BR -m ]]
-.br
-.RB [ -e
-.IR data_scadenza ]
-.RB [ -f
-.IR tempo_inattività ]
-.br
-.RB [ -g
-.IR gruppo_iniziale ]
-.RB [ -G
-.IR gruppo [,...]]
-.br
-.RB [ -l
-.IR nome_login ]
-.RB [ -s
-.IR shell ]
-.br
-.RB [ -u
-.IR uid " ["
-.BR -o ]]
-.I login
-.SH DESCRIZIONE
-Il comando \fBusermod\fR modifica i file di account di sistema in modo da
-riflettere le modifiche specificate sulla linea di comando.
-Le opzioni che si applicano al comando \fBusermod\fR sono
-.\" .IP "\fB-A \fImetodo\fR|\fBPREDEFINITO\fR"
-.\" Il nuovo valore del metodo di autenticazione dell'utente.
-.\" Il metodo di autenticazione è il nome di un programma che è responsabile
-.\" della validazione dell'identità dell'utente.
-.\" La stringa \fBPREDEFINITO\fR può essere usata per cambiare il metodo di
-.\" autenticazione dell'utente con il metodo standard di sistema delle
-.\" password.
-.IP "\fB-c \fIcommento\fR"
-Il campo commento del nuovo utente nel file password.
-Normalmente viene modificato usando l'utilità \fBchfn\fR(1).
-.IP "\fB-d \fIhome_dir\fR"
-La nuova directory di login dell'utente.
-Se è data l'opzione \fB-m\fR il contenuto della home directory corrente
-sarà spostato nella nuova home directory, che viene creata se non esiste già.
-.IP "\fB-e \fIdata_scadenza\fR"
-La data in cui l'account dell'utente verrà disabilitato.
-La data è specificata nel formato \fIMM/GG/AA\fR.
-.IP "\fB-f \fIgiorni_inattività\fR"
-Il numero di giorni dopo la scadenza di una password prima che l'account 
-venga permanentemente disabilitato.
-Un valore pari a 0 disabilita l'account non appena la password è scaduta,
-ed un valore pari a -1 disabilita la caratteristica.
-Il valore predefinito è -1.
-.IP "\fB-g \fIgruppo_iniziale\fR"
-Il nuome o numero del nuovo gruppo di connessione dell'utente.
-Il nome del gruppo deve esistere. Un numero di gruppo deve riferirsi ad un
-gruppo già esistente.
-Il numero di gruppo predefinito è 1.
-.IP "\fB-G \fIgruppo,[...]\fR"
-Una lista di gruppi supplementari di cui l'utente è altresì membro.
-Ciascun gruppo è separato dal successivo da una virgola, senza spazi bianchi
-intermedi.
-I gruppi sono soggetti alle stesse restrizioni del gruppo dato con l'opzione
-\fB-g\fR.
-Se l'utente è attualmente membro di un gruppo che non è elencato, l'utente
-verrà rimosso dal gruppo.
-.IP "\fB-l \fInome_login\fR"
-Il nome dell'utente verrà cambiato da \fIlogin\fR a \fInome_login\fR.
-Niente altro viene cambiato.
-In particolare, la home directory dell'utente dovrebbe probabilmente
-essere modificata in modo da riflettere il nuovo nome di login.
-.IP "\fB-s \fIshell\fR"
-Il nome della nuova shell di login dell'utente.
-Lasciando questo campo vuoto si fa in modo che il sistema selezioni la shell
-di connessione predefinita.
-.IP "\fB-u \fIuid\fR"
-Il valore numerico dell'ID dell'utente.
-Questo valore deve essere univoco, a meno che non venga usata l'opzione
-\fI-o\fR.
-Questo valore deve essere non-negativo.
-Valori tra 0 e 999 sono tipicamente riservati ad account di sistema.
-Tutti i file che l'utente possiede e che sono posiszionati nell'albero di
-directory avente come radice la home directory dell'utente avranno l'ID utente del
-file cambiato automaticamente.
-I file fuori della home directory dell'utente devono essere modificati
-manualmente.
-.SH CAVEAT
-\fBusermod\fR non permetterà di modificare il nome di un utente che è
-attualmente connesso.
-Occorre essere certi che l'utente nominato non sta eseguendo alcun processo
-quando questo comando viene eseguito se l'ID numerico dell'utente sta per
-essere cambiato.
-Occorre cambiare il proprietario di ogni file crontab manualmente.
-Occorre cambiare il proprietario di ogni job manualmente.
-Occorre fare qualunque cambiamento che riguarda NIS sul server NIS.
-.SH FILE
-\fI/etc/passwd\fR \- informazioni sugli account di utenti
-.br
-\fI/etc/shadow\fR \- informazioni sicure sugli account di utenti
-.br
-\fI/etc/group\fR \- informazioni sui gruppi
-.SH VEDERE ANCHE
-.BR chfn (1),
-.BR chsh (1),
-.BR groupadd (8),
-.BR groupdel (8),
-.BR groupmod (8),
-.BR passwd (1),
-.BR useradd (8),
-.BR userdel (8)
-.SH AUTORE
-Julianne Frances Haugh (jfh@tab.com)
diff --git a/man/it/vigr.8 b/man/it/vigr.8
deleted file mode 100644 (file)
index ff72d7a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man8/vipw.8
diff --git a/man/it/vipw.8 b/man/it/vipw.8
deleted file mode 100644 (file)
index 8978019..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-.\" $Id: vipw.8,v 1.1 2002/03/10 07:41:07 kloczek Exp $
-.\" Traduzione in italiano  di Isabella Ruocco <isacher@nettaxi.com>
-.\" Giugno 1999
-.TH VIPW 8 "26 sep 1997"
-.SH NOME
-vipw, vigr \- editano i file delle password, dei gruppi, delle password oscurate, o dei gruppi oscurati.
-.SH SINTASSI
-.BR vipw " [-s]"
-.br
-.BR vigr " [-s]"
-.SH DESCRIZIONE
-.BR vipw " e " vigr
-editeranno i file
-.IR /etc/passwd " ed " /etc/group ", rispettivamente."
-Con l'opzione
-.B -s
-, editeranno la versione oscurata di quei file,
-.IR /etc/shadow " ed " /etc/gshadow ", rispettivamente.
-I programmi imposteranno i lock appropriati per evitare la corruzione dei file.
-
-Quando cercano un editor, i programmi prima proveranno 
-con la variabile d'ambiente
-.BR VISUAL ,
-poi con la variabile d'ambiente
-.BR EDITOR ,
-e infine con l'editor predefinito,
-.BR vi .
-.SH "VEDERE ANCHE"
-.BR passwd (5),
-.BR group (5),
-.BR shadow (5)
index 5dc5d7d8174e220a207e64a5ed7a202af32115c8..84d69caab1db9096cba8331247e130e40c691913 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -89,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -233,9 +232,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/ja/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/ja/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/ja/Makefile
+         $(AUTOMAKE) --foreign  man/ja/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 25038561651b815fb857c1781156c5061dec47ec..ce3875fd87cf05ce11a8e2495e88148ebf093bb1 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chage.1,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: chage.1,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -38,13 +38,13 @@ chage \- 
 .SH ½ñ¼°
 .TP 6
 \fBchage\fR
-[\fB-m \fImindays\fR] [\fB-M \fImaxdays\fR]
-[\fB-d \fIlastday\fR] [\fB-I \fIinactive\fR]
+[\fB\-m\fR \fImindays\fR] [\fB\-M\fR \fImaxdays\fR]
+[\fB\-d\fR \fIlastday\fR] [\fB\-I\fR \fIinactive\fR]
 .br
-[\fB-E \fIexpiredate\fR] [\fB-W \fIwarndays\fR] \fIuser\fR
+[\fB\-E\fR \fIexpiredate\fR] [\fB\-W\fR \fIwarndays\fR] \fIuser\fR
 .TP 6
 \fBchage\fR
-\fB-l \fIuser\fR
+\fB\-l\fR \fIuser\fR
 .SH ÀâÌÀ
 \fBchage\fR ¤Ï¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤òºÇ¸å¤Ë¹¹¿·¤·¤Æ¤«¤é¡¢
@@ -52,39 +52,39 @@ chage \- 
 ¥·¥¹¥Æ¥à¤Ï¤³¤Î¾ðÊó¤òÍѤ¤¤Æ¡¢
 ¥æ¡¼¥¶¤¬¤¤¤Ä¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤ò·èÄꤹ¤ë¡£
 \fBchage\fR ¥³¥Þ¥ó¥É¤ò»È¤¨¤ë¤Î¤Ï root ¥æ¡¼¥¶¤Î¤ß¤Ë¸Â¤é¤ì¤Æ¤¤¤ë¡£
-¤¿¤À¤·°ìÈ̥桼¥¶¤â \fB-l\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð¤³¤Î¥³¥Þ¥ó¥É¤òÍøÍѤǤ­¡¢
+¤¿¤À¤·°ìÈ̥桼¥¶¤â \fB\-l\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð¤³¤Î¥³¥Þ¥ó¥É¤òÍøÍѤǤ­¡¢
 ¼«Ê¬¤Î¥Ñ¥¹¥ï¡¼¥É¤Þ¤¿¤Ï¥¢¥«¥¦¥ó¥È¤¬¤¤¤ÄÀÚ¤ì¤ë¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£
 .PP
-\fB-m\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢
+\fB\-m\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢
 \fImindays\fR ¤ÎÃͤϥѥ¹¥ï¡¼¥ÉÊѹ¹¤Î´Ö³Ö¤ÎºÇûÆü¿ô¤Ë¤Ê¤ë¡£
 ¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò¥¼¥í¤È¤·¤¿»þ¤Ï¡¢¥æ¡¼¥¶¤Ï¤¤¤Ä¤Ç¤â¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤Ç¤­¤ë¡£
 .PP
-\fB-M\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-M\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 \fImaxdays\fR ¤ÎÃͤϥѥ¹¥ï¡¼¥É¤¬Í­¸ú¤ÊºÇĹÆü¿ô¤È¤Ê¤ë¡£
 \fImaxdays\fR ¤È \fIlastday\fR ¤ò­¤·¤¿Ãͤ¬¸½ºß¤ÎÆüÉÕ¤è¤ê¾®¤µ¤¤¾ì¹ç¡¢
 ¥æ¡¼¥¶¤Ï¥¢¥«¥¦¥ó¥È¤ò»ÈÍѤ¹¤ëÁ°¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-\fB-W\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤³¤Î´üÆü¤¬¤¤¤ÄÍè¤ë¤«¤¬Ê¬¤«¤ë¤è¤¦¤Ë¤Ç¤­¤ë¡£
+\fB\-W\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤³¤Î´üÆü¤¬¤¤¤ÄÍè¤ë¤«¤¬Ê¬¤«¤ë¤è¤¦¤Ë¤Ç¤­¤ë¡£
 ¤³¤Î¾ì¹ç¤Ï¥æ¡¼¥¶¤Ë»öÁ°¤Ë·Ù¹ð¤¬Í¿¤¨¤é¤ì¤ë¡£
 .PP
-\fB-d\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
+\fB\-d\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤ÎºÇ½ª¹¹¿·Æü¤òÀßÄê¤Ç¤­¤ë¡£
 \fIlastday\fR ¤ÎÃͤÏ
 1970 Ç¯ 1 ·î 1 Æü¤«¤é¥Ñ¥¹¥ï¡¼¥ÉºÇ½ª¹¹¿·Æü¤Þ¤Ç¤ÎÆü¿ô¤Ç¤¢¤ë¡£
-ÆüÉդϠYYYY-MM-DD ¤È¤¤¤¦½ñ¼°
+ÆüÉդϠYYYY\-MM\-DD ¤È¤¤¤¦½ñ¼°
 (¤â¤·¤¯¤Ï¤¢¤Ê¤¿¤ÎÃϰè¤Ç¤â¤Ã¤È¤è¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë½ñ¼°)
 ¤Ç»ØÄꤹ¤ë»ö¤â¤Ç¤­¤ë¡£
 .PP
-\fB-E\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-E\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
 ¤½¤ì°Ê¹ß¥æ¡¼¥¶¤¬¥¢¥«¥¦¥ó¥È¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¯¤Ê¤ëÆüÉÕ¤òÀßÄꤹ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
 \fIexpiredate\fR ¤Ï 1970 Ç¯ 1 ·î 1 Æü¤«¤é
 ¥¢¥«¥¦¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ëÆü¤Þ¤Ç¤ÎÆü¿ô¤Ç¤¢¤ë¡£
-ÆüÉդϠYYYY-MM-DD ¤È¤¤¤¦½ñ¼°
+ÆüÉդϠYYYY\-MM\-DD ¤È¤¤¤¦½ñ¼°
 (¤â¤·¤¯¤Ï¤¢¤Ê¤¿¤ÎÃϰè¤Ç¤â¤Ã¤È¤è¤¯ÍѤ¤¤é¤ì¤Æ¤¤¤ë¤â¤Î)
 ¤Ç»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£
 ¥¢¥«¥¦¥ó¥È¤ò¥í¥Ã¥¯¤µ¤ì¤¿¥æ¡¼¥¶¤¬ºÆ¤Ó¤½¤Î¥·¥¹¥Æ¥à¤ò»È¤¦¤Ë¤Ï¡¢
 ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤ÈÏ¢Íí¤ò¼è¤ëɬÍפ¬¤¢¤ë¡£
 .PP
-\fB-I\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-I\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸Â¤¬ÀÚ¤ì¤Æ¤«¤é¥¢¥«¥¦¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ë¤Þ¤Ç¤Î
 ÊüÃÖÆü¿ô¤òÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤ë¡£
 ¥¢¥«¥¦¥ó¥È¤ò¥í¥Ã¥¯¤µ¤ì¤¿¥æ¡¼¥¶¤¬ºÆ¤Ó¤½¤Î¥·¥¹¥Æ¥à¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢
@@ -92,7 +92,7 @@ chage \- 
 \fIinactive\fR ¤Ï»ÈÍÑÉÔǽ´ü´Ö¤ÎÆü¿ô¤Ç¤¢¤ë¡£
 0 ¤Ë¤¹¤ì¤Ð¤³¤Îµ¡Ç½¤ò̵¸ú¤Ë¤Ç¤­¤ë¡£
 .PP
-\fB-W\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-W\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤¬É¬ÍפȤʤëÁ°¤Ë·Ù¹ð¤ò¹Ô¤¦´ü´Ö¤ÎÆü¿ô¤òÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤ë¡£
 \fIwarndays\fR ¤Ï¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸ÂÀÚ¤ì¤ËÀè¤À¤Ã¤Æ¡¢
index 6a28582943dfacf6e6d2e94641288944aa215f04..dde6414f0a3b6c641014fd166b044f5d732ad866 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chfn.1,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: chfn.1,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 chfn \- ¥æ¡¼¥¶¤Î»á̾¤ä¾ðÊó¤òÊѹ¹¤¹¤ë¡£
 .SH ½ñ¼°
 .TP 5
-\fBchfn\fR
-[\fB-f \fIfull_name\fR] [\fB-r \fIroom_no\fR]
+\fBchfn\fR [\fB\-f\fR \fIfull_name\fR] [\fB\-r\fR \fIroom_no\fR]
 .br
-[\fB-w \fIwork_ph\fR] [\fB-h \fIhome_ph\fR] [\fB-o \fIother\fR]
+[\fB\-w\fR \fIwork_ph\fR] [\fB\-h\fR \fIhome_ph\fR] [\fB\-o\fR \fIother\fR]
 [\fIuser\fR]
 .SH ÀâÌÀ
 \fBchfn\fR ¤Ï¡¢¥æ¡¼¥¶¤Î¥Õ¥ë¥Í¡¼¥à¡¦¥ª¥Õ¥£¥¹¤ÎÉô²°Èֹ桦ÆâÀþÈֹ桦
@@ -48,7 +47,7 @@ chfn \- 
 ¤³¤Î¾ðÊó¤Ï \fBfinger\fR(1) ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÉ½¼¨¤µ¤ì¤ë¡£
 °ìÈ̥桼¥¶¤Ï¼«Ê¬¼«¿È¤Î¥¢¥«¥¦¥ó¥È¾ðÊó¤Î¤ß¤òÊѹ¹¤Ç¤­¤ë¡£
 ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤ÏÁ´¤Æ¤Î¥¢¥«¥¦¥ó¥È¤ËÂФ·¤Æ¾ðÊó¤òÊѹ¹¤Ç¤­¤ë¡£
-¤Þ¤¿ \fB-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ
+¤Þ¤¿ \fB\-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ
 GECOS Íó¤Î̤ÄêµÁÉôʬ¤òÊѹ¹¤Ç¤­¤ë¤Î¤â¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤À¤±¤Ç¤¢¤ë¡£
 .PP
 ³Æ¥Õ¥£¡¼¥ë¥É¤Ë½ñ¤¯ÆâÍÆ¤Ë´Ø¤¹¤ëÀ©¸Â¤Ï¡¢
index d5061a42a5eb0c846ed7da608de8844a898db552..8d4bd985c2b05fce0742be460d7893073923e2ad 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chpasswd.8,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: chpasswd.8,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH Ì¾Á°
 \fBchpasswd\fR \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥Ð¥Ã¥Á½èÍý¤Ç¹¹¿·¤¹¤ë
 .SH ½ñ¼°
-\fBchpasswd\fR [\fB-e\fR]
+\fBchpasswd\fR [\fB\-e\fR]
 .SH ÀâÌÀ
 \fBchpasswd\fR ¥³¥Þ¥ó¥É¤Ï
 É¸½àÆþÎϤ«¤é¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ÎÁȤ¬µ­¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢
 ¤½¤Î¾ðÊó¤òÍѤ¤¤Æ´û¸¤Î¥æ¡¼¥¶·²¤Î¥Ñ¥¹¥ï¡¼¥É¾ðÊó¤ò¹¹¿·¤¹¤ë¡£
--e ¥ª¥×¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ïʿʸ¤È¤ß¤Ê¤µ¤ì¤ë¡£
--e ¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï°Å¹æ²½¤µ¤ì¤Æ¤¤¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£
+\-e ¥ª¥×¥·¥ç¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ïʿʸ¤È¤ß¤Ê¤µ¤ì¤ë¡£
+\-e ¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¾ì¹ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï°Å¹æ²½¤µ¤ì¤Æ¤¤¤ë¤È¤ß¤Ê¤µ¤ì¤ë¡£
 ³Æ¹Ô¤Î½ñ¼°¤Ï¼¡¤ÎÄ̤ꡣ
 .sp 1
          \fIuser_name\fR:\fIpassword\fR
index e10f3159752fb74c3680350433bc6a0d4ddc001d..fee0ba07d7af946dd890f7abf0a203311b6640ae 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: chsh.1,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: chsh.1,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -38,7 +38,7 @@ chsh \- 
 .SH ½ñ¼°
 .TP 5
 \fBchsh\fR
-[\fB-s \fIlogin_shell\fR] [\fIuser\fR]
+[\fB\-s\fR \fIlogin_shell\fR] [\fIuser\fR]
 .SH ÀâÌÀ
 \fBchsh\fR ¤Ï¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤òÊѹ¹¤¹¤ë¡£
 ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¤·¤ÆºÇ½é¤Ë¼Â¹Ô¤µ¤ì¤ë¥³¥Þ¥ó¥É¤¬·è¤Þ¤ë¡£
@@ -55,7 +55,7 @@ chsh \- 
 ¸í¤Ã¤Æµ¡Ç½¤¬À©¸Â¤µ¤ì¤¿¥·¥§¥ë¤ËÊѹ¹¤·¤Æ¤·¤Þ¤¦¤È¡¢
 ¥í¥°¥¤¥ó¥·¥§¥ë¤ò¸µ¤Î¤â¤Î¤ËÌ᤻¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£
 .PP
-\fB-s\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
+\fB\-s\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
 \fBchsh\fR ¤ÏÂÐÏÃŪ¤Ëưºî¤¹¤ë¡£
 ¥æ¡¼¥¶¤Î¸½ºß¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤òɽ¼¨¤·¡¢¿·¤·¤¤ÃÍ¤ÎÆþÎϤòÂ¥¤¹¡£
 ÀßÄêÃͤòÊѹ¹¤¹¤ë¤Ê¤é¿·¤·¤¤ÃͤòÆþÎϤ·¡¢
index f450d377a70d0a935a405506f6b2e55e64ac3af3..bd84df6c2aecbc84d357e32421cac4bdb928df3c 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: expiry.1,v 1.1 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: expiry.1,v 1.2 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\" Modified for expiry by Ben Collins <bcollins@debian.org>, 1999
 expiry \- ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸ÂÀÚ¤ì¥Ý¥ê¥·¡¼¤Î¥Á¥§¥Ã¥¯¤È¼¹¹Ô
 .SH ½ñ¼°
 .TP 6
-\fBexpiry\fR [\fB-c\fR] [\fB-f\fR]
+\fBexpiry\fR [\fB\-c\fR] [\fB\-f\fR]
 .SH ÀâÌÀ
 .B expiry
-¤Ï¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É´ü¸ÂÀÚ¤ì¾ðÊó¤ò¥Á¥§¥Ã¥¯ (\fB-c\fR) ¤·¡¢
-ɬÍפʾì¹ç¤ÏÊѹ¹¤ò¶¯À©¤¹¤ë (\fB-f\fR)¡£
+¤Ï¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É´ü¸ÂÀÚ¤ì¾ðÊó¤ò¥Á¥§¥Ã¥¯ (\fB\-c\fR) ¤·¡¢
+ɬÍפʾì¹ç¤ÏÊѹ¹¤ò¶¯À©¤¹¤ë (\fB\-f\fR)¡£
 ¤³¤Î¥³¥Þ¥ó¥É¤ÏÄ̾ï¤Î¥æ¡¼¥¶¥³¥Þ¥ó¥É¤È¤·¤Æ¸Æ¤Ó½Ð¤·²Äǽ¤Ç¤¢¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
 \fI/etc/passwd\fR \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
index e3e4481b25d4ffceb585d327a17836a0d1840f38..f290e12f483021c97eb55258f19899a0a1c602e5 100644 (file)
@@ -1,5 +1,5 @@
-.\"$Id: faillog.8,v 1.6 2004/12/11 16:49:33 kloczek Exp $
-.\" Copyright 1989 - 1994, Julianne Frances Haugh
+.\"$Id: faillog.8,v 1.7 2005/04/05 19:08:55 kloczek Exp $
+.\" Copyright 1989 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -37,8 +37,8 @@
 .SH Ì¾Á°
 faillog \- faillog ¤òÄ´¤Ù¡¢login ¼ºÇÔ¤ÎÀ©¸Â¤òÀßÄꤹ¤ë
 .SH ½ñ¼°
-\fBfaillog\fR [\fB-u\fR \fIlogin-name\fR] [\fB-a\fR] [\fB-t\fR \fIdays\fR]
-[\fB-m\fR \fImax\fR] [\fB-pr\fR] 
+\fBfaillog\fR [\fB\-u\fR \fIlogin\-name\fR] [\fB\-a\fR] [\fB\-t\fR \fIdays\fR]
+[\fB\-m\fR \fImax\fR] [\fB\-pr\fR] 
 .SH ÀâÌÀ
 \fBfaillog\fR ¤Ï¥í¥°¥¤¥ó¤Î¼ºÇÔ¤òµ­Ï¿¤¹¤ë¥í¥°¥Õ¥¡¥¤¥ë
 \fI/var/log/faillog\fR ¤ÎÆâÍÆ¤òÀ°·Á¤·¡¢
@@ -46,48 +46,48 @@ faillog \- faillog 
 \fBfaillog\fR ¤ËÍ¿¤¨¤ë°ú¿ô¤Î½ç½ø¤Ï½ÅÍפǤ¢¤ê¡¢
 ³Æ°ú¿ô¤ÏÍ¿¤¨¤é¤ì¤¿½ç¤Ëľ¤Á¤Ë½èÍý¤µ¤ì¤ë¡£
 .PP
-\fB-p\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¥í¥°¥¤¥ó¼ºÇԤΥ¨¥ó¥È¥ê¤ò UID ½ç¤Ëɽ¼¨¤¹¤ë¡£
-\fB-u \fIlogin-name\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
-\fIlogin-name\fR ¤Î¥í¥°¥¤¥ó¼ºÇÔµ­Ï¿¤Î¤ß¤òɽ¼¨¤¹¤ë¡£
-\fB-t \fIdays\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
+\fB\-p\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¥í¥°¥¤¥ó¼ºÇԤΥ¨¥ó¥È¥ê¤ò UID ½ç¤Ëɽ¼¨¤¹¤ë¡£
+\fB\-u \fIlogin\-name\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
+\fIlogin\-name\fR ¤Î¥í¥°¥¤¥ó¼ºÇÔµ­Ï¿¤Î¤ß¤òɽ¼¨¤¹¤ë¡£
+\fB\-t \fIdays\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
 ºÇ¶á \fIdays\fR Æü°ÊÆâ¤Î¥í¥°¥¤¥ó¼ºÇԤε­Ï¿¤òɽ¼¨¤¹¤ë¡£
-\fB-u\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È \fB-t\fR ¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£
+\fB\-u\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È \fB\-t\fR ¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£
 .\"nakano ¤È¤¤¤¦¤Î¤¬¼ÂºÝ¤Îưºî¤Î¤è¤¦¤Êµ¤¤¬¤¹¤ë¤Î¤À¤±¤É...
-\fB-a\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤ÈÁ´¥æ¡¼¥¶¤ËÂФ¹¤ëµ­Ï¿¤¬É½¼¨¤µ¤ì¤ë¡£
-¤³¤Î¥Õ¥é¥°¤ò \fB-p\fR ¥Õ¥é¥°¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
+\fB\-a\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤ÈÁ´¥æ¡¼¥¶¤ËÂФ¹¤ëµ­Ï¿¤¬É½¼¨¤µ¤ì¤ë¡£
+¤³¤Î¥Õ¥é¥°¤ò \fB\-p\fR ¥Õ¥é¥°¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
 ¤³¤ì¤Þ¤Ç¤Ë¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤¿Á´¤Æ¤Î¥æ¡¼¥¶¤¬É½¼¨¤µ¤ì¤ë¡£
-\fB-a\fR ¤Ï \fB-r\fR ¥Õ¥é¥°¤ÈÍѤ¤¤Æ¤â°ÕÌ£¤¬Ìµ¤¤¡£
+\fB\-a\fR ¤Ï \fB\-r\fR ¥Õ¥é¥°¤ÈÍѤ¤¤Æ¤â°ÕÌ£¤¬Ìµ¤¤¡£
 .PP
-\fB-r\fR ¥Õ¥é¥°¤Ï¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤Îµ­Ï¿¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£
+\fB\-r\fR ¥Õ¥é¥°¤Ï¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤Îµ­Ï¿¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£
 ¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ë¤Ï
 \fI/var/log/faillog\fR ¤Ø¤Î½ñ¤­¹þ¤ß¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£
-\fB-u \fIlogin-name\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
-\fIlogin-name\fR ¤Î¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤Î¤ß¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£
+\fB\-u \fIlogin\-name\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
+\fIlogin\-name\fR ¤Î¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤Î¤ß¤ò¥ê¥»¥Ã¥È¤¹¤ë¡£
 .PP
-\fB-m\fR ¥Õ¥é¥°¤Ï¡¢
+\fB\-m\fR ¥Õ¥é¥°¤Ï¡¢
 ¥¢¥«¥¦¥ó¥È¤¬»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇÂç¤Î¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤òÀßÄꤹ¤ë¡£
 ¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤Ë¤Ï
 \fI/var/log/faillog\fR ¤Ø¤Î½ñ¤­¹þ¤ß¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£
-\fB-m \fImax\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
+\fB\-m \fImax\fR ¤ÈÆþÎϤ¹¤ë¤È¡¢
 Á´¤Æ¤Î¥¢¥«¥¦¥ó¥È¤Ï¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤¬ \fImax\fR ¤Ë¤Ê¤ë¤È»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¡£
 .\"nakano double meaning...
-\fB-u \fIlogin-name\fR ¤òƱ»þ¤ËÍѤ¤¤ë¤È¡¢
-¤³¤Îµ¡Ç½¤ò \fIlogin-name\fR ¤À¤±¤ËºîÍѤµ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+\fB\-u \fIlogin\-name\fR ¤òƱ»þ¤ËÍѤ¤¤ë¤È¡¢
+¤³¤Îµ¡Ç½¤ò \fIlogin\-name\fR ¤À¤±¤ËºîÍѤµ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
 \fImax\fR ¤ÎÃͤò 0 ¤Ë¤¹¤ë¤È¥í¥°¥¤¥ó¤Î¼ºÇÔ²ó¿ô¤Ë¤ÏÀ©¸Â¤¬Ìµ¤¯¤Ê¤ë¡£
 ¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¥µ¡¼¥Ó¥¹ÉÔǽ¹¶·â¤òËɤ°¤¿¤á¡¢
 \fBroot\fR ¤ÎºÇÂç¥í¥°¥¤¥ó¼ºÇÔ²ó¿ô¤Ï¾ï¤Ë 0 ¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£
 .PP
 ¥ª¥×¥·¥ç¥ó¤Ï¤Û¤Ü¤É¤Î¤è¤¦¤ËÁȤ߹ç¤ï¤»¤Æ¤âÎɤ¤¡£
-\fB-p\fR, \fB-r\fR, \fB-m\fR
+\fB\-p\fR, \fB\-r\fR, \fB\-m\fR
 ¤Î³Æ¥ª¥×¥·¥ç¥ó¤Ï¡¢
-\fB-u\fR, \fB-t\fR ¤Î»ØÄê¤Ë¤è¤ë½¤Àµ¤ò¼õ¤±¡¢
+\fB\-u\fR, \fB\-t\fR ¤Î»ØÄê¤Ë¤è¤ë½¤Àµ¤ò¼õ¤±¡¢
 »ØÄꤷ¤¿½ç¤Ë¼Â¹Ô¤µ¤ì¤ë¡£
 .SH ·Ù¹ð
 \fBfaillog\fR ¤Ï¡¢
 ºÇ¸å¤Ë¼ºÇÔ¤·¤Æ°Ê¹ß¥í¥°¥¤¥ó¤ËÀ®¸ù¤·¤Æ¤¤¤Ê¤¤¥æ¡¼¥¶¤Î¤ß¤òɽ¼¨¤¹¤ë¡£
 ¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤·¤¿¸å¤ËÀµ¤·¤¯¥í¥°¥¤¥ó¤Ç¤­¤¿¥æ¡¼¥¶¤âɽ¼¨¤µ¤»¤ë¤Ë¤Ï¡¢
-\fB-u\fR ¥Õ¥é¥°¤òÍѤ¤¤Æ¤½¤Î¥æ¡¼¥¶¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤«¡¢
-\fB-a\fR ¥Õ¥é¥°¤òÍѤ¤¤ÆÁ´¥æ¡¼¥¶¤òɽ¼¨¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+\fB\-u\fR ¥Õ¥é¥°¤òÍѤ¤¤Æ¤½¤Î¥æ¡¼¥¶¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤«¡¢
+\fB\-a\fR ¥Õ¥é¥°¤òÍѤ¤¤ÆÁ´¥æ¡¼¥¶¤òɽ¼¨¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 .SH ¥Õ¥¡¥¤¥ë
 \fI/var/log/faillog\fR \- ¼ºÇÔ¤òµ­Ï¿¤·¤¿¥Õ¥¡¥¤¥ë
 .SH ´ØÏ¢¹àÌÜ
index 32ba55544f1e53ed718fb6f5e863807c276c1dfb..99dba61a79be54c65fa16c8a61292e2188518d86 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: gpasswd.1,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: gpasswd.1,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1996, Rafal Maszkowski <rzm@pdi.net>
 .\" All rights reserved. You can redistribute this man page and/or
 .\" modify it under the terms of the GNU General Public License as
 .SH Ì¾Á°
 gpasswd \- /etc/group¥Õ¥¡¥¤¥ë¤ò´ÉÍý¤¹¤ë
 .SH ½ñ¼°
-\fBgpasswd \fIgroup\fR
+\fBgpasswd\fR \fIgroup\fR
 .br
-\fBgpasswd -a \fIuser\fR \fIgroup\fR
+\fBgpasswd \-a\fR \fIuser\fR \fIgroup\fR
 .br
-\fBgpasswd -d \fIuser\fR \fIgroup\fR
+\fBgpasswd \-d\fR \fIuser\fR \fIgroup\fR
 .br
-\fBgpasswd -R \fIgroup\fR
+\fBgpasswd \-R\fR \fIgroup\fR
 .br
-\fBgpasswd -r \fIgroup\fR
+\fBgpasswd \-r\fR \fIgroup\fR
 .br
-\fBgpasswd\fR [\fB-A \fIuser\fR,...] [\fB-M\fR \fIuser\fR,...] \fIgroup\fR
+\fBgpasswd\fR [\fB\-A\fR \fIuser\fR,...] [\fB\-M\fR \fIuser\fR,...] \fIgroup\fR
 .SH ÀâÌÀ
 .B gpasswd
 ¤Ï /etc/group ¥Õ¥¡¥¤¥ë
@@ -32,18 +32,18 @@ gpasswd \- /etc/group
 ¤Î´ÉÍý¤ËÍѤ¤¤é¤ì¤ë¡£
 ³Æ¥°¥ë¡¼¥×¤Ë¤Ï¡¢´ÉÍý¼Ô¡¦¥á¥ó¥Ð¡¼¡¦¥Ñ¥¹¥ï¡¼¥É¤òÀßÄê¤Ç¤­¤ë¡£
 ¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Ï¡¢
-\fB-A\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥°¥ë¡¼¥×´ÉÍý¼Ô (Ê£¿ô¤Ç¤â²Ä) ¤òÄêµÁ¤·¤¿¤ê¡¢
-\fB-M\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥á¥ó¥Ð¡¼¤òÄêµÁ¤·¤¿¤ê¤Ç¤­¡¢
+\fB\-A\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥°¥ë¡¼¥×´ÉÍý¼Ô (Ê£¿ô¤Ç¤â²Ä) ¤òÄêµÁ¤·¤¿¤ê¡¢
+\fB\-M\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥á¥ó¥Ð¡¼¤òÄêµÁ¤·¤¿¤ê¤Ç¤­¡¢
 ³Æ¥°¥ë¡¼¥×¤Î´ÉÍý¼Ô¡¦¥á¥ó¥Ð¡¼¤ÈƱÅù¤ÎÆÃ¸¢¤ò»ý¤Ä¡£
 .PP
-¥°¥ë¡¼¥×´ÉÍý¼Ô¤Ï¡¢\fB-a\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤òÄɲä·¤¿¤ê¡¢
-\fB-d\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤òºï½ü¤·¤¿¤ê¤Ç¤­¤ë¡£
-´ÉÍý¼Ô¤Ï \fB-r\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É¤òºï½ü¤Ç¤­¤ë¡£
+¥°¥ë¡¼¥×´ÉÍý¼Ô¤Ï¡¢\fB\-a\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤òÄɲä·¤¿¤ê¡¢
+\fB\-d\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥æ¡¼¥¶¤òºï½ü¤·¤¿¤ê¤Ç¤­¤ë¡£
+´ÉÍý¼Ô¤Ï \fB\-r\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É¤òºï½ü¤Ç¤­¤ë¡£
 ¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï¡¢
 ¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Î¤ß¤¬
 .BR newgrp (1)
 ¤òÍѤ¤¤Æ¥°¥ë¡¼¥×¤Î°ì°÷¤Ë¤Ê¤ì¤ë¡£
-¥ª¥×¥·¥ç¥ó \fB-R\fR ¤ò»ØÄꤹ¤ë¤È¡¢
+¥ª¥×¥·¥ç¥ó \fB\-R\fR ¤ò»ØÄꤹ¤ë¤È¡¢
 .BR newgrp (1)
 ¥³¥Þ¥ó¥É¤òÍѤ¤¤¿¥°¥ë¡¼¥×¤Ø¤Î¥¢¥¯¥»¥¹¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ë¡£
 .PP
index 6abed016ea19889343d1c6b2ba8e3c7bc9553ab0..5ea0ca079f82c793fe048939c48ab4172bc8a73f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groupadd.8,v 1.9 2004/11/04 03:06:32 kloczek Exp $
+.\"$Id: groupadd.8,v 1.11 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH Ì¾Á°
 groupadd \- ¿·¤·¤¤¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë
 .SH ½ñ¼°
-\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgroup\fR
+\fBgroupadd\fR [\fB\-g\fR \fIgid \fR[\fB\-o\fR]] [\fB\-f\fR] \fIgroup\fR
 .SH ÀâÌÀ
 \fBgroupadd\fR ¥³¥Þ¥ó¥É¤Ï¡¢
 ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç»ØÄꤵ¤ì¤¿ÃͤÈ
 ¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤȤòÍѤ¤¤Æ¿·¤·¤¤¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¡£
 ¿·¤·¤¤¥°¥ë¡¼¥×¤¬É¬Íפ˱þ¤¸¤Æ¥·¥¹¥Æ¥à¥Õ¥¡¥¤¥ë¤Ëµ­Æþ¤µ¤ì¤ë¡£
 \fBgroupadd\fR ¥³¥Þ¥ó¥É¤Ë»ØÄê¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤Ï¼¡¤ÎÄ̤ꡣ
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g \fIgid\fR"
 ¿·µ¬¥°¥ë¡¼¥×¤Î ID Èֹ档
-¤³¤ÎÃͤϡ¢\fB-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+¤³¤ÎÃͤϡ¢\fB\-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¤Þ¤¿ÈóÉéÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢99 ¤ª¤è¤Ó¾¤Î¤¢¤é¤æ¤ë´û¸¥°¥ë¡¼¥×¤Î ID ¤è¤ê¤âÂ礭¤¤¡¢
 ºÇ¾®¤Î¿ôÃͤȤʤ롣
index c8df6b290211867f7eef26af676bddb50bdb7dca..160de3c8e3ac347cd420af6c08994c97453f6201 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groupmod.8,v 1.8 2004/11/04 03:06:32 kloczek Exp $
+.\"$Id: groupmod.8,v 1.10 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH Ì¾Á°
 groupmod \- ¥°¥ë¡¼¥×¤ò½¤Àµ¤¹¤ë
 .SH ½ñ¼°
-\fBgroupmod\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-n\fI group_name \fR]
+\fBgroupmod\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-n\fR \fIgroup_name\fR]
 \fIgroup\fR
 .SH ÀâÌÀ
 \fBgroupmod\fR ¥³¥Þ¥ó¥É¤Ï¡¢
 ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¤Î»ØÄê¤Ë¤è¤Ã¤Æ¡¢
 ¥·¥¹¥Æ¥à¥¢¥«¥¦¥ó¥È¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤¹¤ë¡£
 \fIgroupmod\fR ¥³¥Þ¥ó¥É¤Ë»ØÄê¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤Ï¼¡¤ÎÄ̤ꡣ
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g \fIgid\fR"
 Êѹ¹¤ò¼õ¤±¤ë¥°¥ë¡¼¥×¤Î ID Èֹ档
-¤³¤ÎÃͤϡ¢\fB-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+¤³¤ÎÃͤϡ¢\fB\-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¤Þ¤¿ÈóÉéÃͤǤʤ¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ï¡¢999 ¤ª¤è¤Ó¾¤Î¤¢¤é¤æ¤ë´û¸¥°¥ë¡¼¥×¤Î ID ¤è¤ê¤âÂ礭¤¤¡¢
 ºÇ¾®¤Î¿ôÃͤȤʤ롣
 Êѹ¹Á°¤Î¥°¥ë¡¼¥× ID ¤ò»ý¤ÄÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢
 ¼êºî¶È¤Ç¿·¤·¤¤¥°¥ë¡¼¥× ID ¤Ø¤ÈÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.IP "\fB-n \fIgroup_name\fR"
+.IP "\fB\-n \fIgroup_name\fR"
 ¥°¥ë¡¼¥×¤Î̾Á°¤¬ \fIgroup\fR ¤«¤é \fIgroup_name\fR ¤ËÊѹ¹¤µ¤ì¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
 \fI/etc/group\fR \- ¥°¥ë¡¼¥×¾ðÊó
index 8efe7e67aa6f5c23083c21cb0fbc3bd934744a71..6a34285a5c3ddcd7ccbf6d36d3979a763fbba731 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: groups.1,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: groups.1,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -29,7 +29,7 @@
 .\" Japanese Version Copyright (c) 2001 Maki KURODA
 .\"     all right reserved,
 .\" Translated Tue Oct 30 11:58:18 JST 2001
-.\" by Maki KURODA <mkuroda@aisys-jp.com>
+.\" by Maki KURODA <mkuroda@aisys\-jp.com>
 .\" Modified Tue 16 Sep 2002 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
 .\"
 .\"WORD:       concurrent group set    Æ±»þ½ê°¥°¥ë¡¼¥×½¸¹ç
index 45dd41f18c4a84a7d945423ecbddc473bc4c6310..2a57bea5fc1c06fef34c86375c772aa3475a89f7 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: grpck.8,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: grpck.8,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -36,7 +36,7 @@
 .SH Ì¾Á°
 grpck \- ¥°¥ë¡¼¥×¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¤¤«¤É¤¦¤«¸¡ºº¤¹¤ë
 .SH ½ñ¼°
-\fBgrpck\fR [\fB-r\fR] [\fIgroup\fR \fIshadow\fR]
+\fBgrpck\fR [\fB\-r\fR] [\fIgroup\fR \fIshadow\fR]
 .SH ÀâÌÀ
 \fBgrpck\fR ¥³¥Þ¥ó¥É¤Ï¥·¥¹¥Æ¥à¤Îǧ¾Ú¾ðÊó¤¬Àµ¤·¤¤¤«¤É¤¦¤«¸¡ºº¤¹¤ë¡£
 \fI/etc/group\fR ¤È \fI/etc/gshadow\fR
@@ -49,12 +49,12 @@ grpck \- 
 ³Æ¡¹¤Î¥¨¥ó¥È¥ê¤ËÂФ·¤Æ
 .sp
 .in +.5i
-- ¥Õ¥£¡¼¥ë¥É¤Î¿ô¤¬Àµ¤·¤¤¤«
+\- ¥Õ¥£¡¼¥ë¥É¤Î¿ô¤¬Àµ¤·¤¤¤«
 .br
-- ¥°¥ë¡¼¥×̾¤Ë½ÅÊ£¤¬¤Ê¤¤¤«
+\- ¥°¥ë¡¼¥×̾¤Ë½ÅÊ£¤¬¤Ê¤¤¤«
 .br
-- ¥á¥ó¥Ð¡¼¤Î¥ê¥¹¥È¤È´ÉÍý¼Ô¤Î¥ê¥¹¥È¤¬Àµ¤·¤¤¤«
-.in -.5i
+\- ¥á¥ó¥Ð¡¼¤Î¥ê¥¹¥È¤È´ÉÍý¼Ô¤Î¥ê¥¹¥È¤¬Àµ¤·¤¤¤«
+.in \-.5i
 .sp
 ¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤ë¡£
 .P
@@ -77,7 +77,7 @@ grpck \- 
 \fI/etc/gshadow\fR ¤ËÂФ·¤ÆÆ°ºî¤¹¤ë¡£
 \fIgroup\fR ¥Ñ¥é¥á¡¼¥¿¤È \fIshadow\fR ¥Ñ¥é¥á¡¼¥¿¤òÍѤ¤¤Æ¡¢
 Ê̤Υե¡¥¤¥ë¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¤µ¤é¤Ë \fB-r\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ì¤Ð¡¢
+¤µ¤é¤Ë \fB\-r\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ì¤Ð¡¢
 ¥ê¡¼¥É¥ª¥ó¥ê¡¼¥â¡¼¥É¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
 ¤³¤Î¾ì¹ç¡¢Êѹ¹¤ò¹Ô¤¦¤«¤É¤¦¤«¤Ï¥æ¡¼¥¶¤ØÌ䤤¹ç¤ï¤µ¤ì¤º¡¢
 ¼«Æ°Åª¤Ë \fBno\fR ¤È²óÅú¤µ¤ì¤ë¡£
@@ -85,14 +85,14 @@ grpck \- 
 ¤Ï
 \fI/etc/group\fR ¤È \fI/etc/gshadow\fR
 ¤Î¥¨¥ó¥È¥ê¤ò GID ¤Ç¥½¡¼¥È¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¥½¡¼¥È¥â¡¼¥É¤Çưºî¤µ¤»¤ë¤Ë¤Ï \fB-s\fR ¥Õ¥é¥°¤òÍ¿¤¨¤ë¡£
+¥½¡¼¥È¥â¡¼¥É¤Çưºî¤µ¤»¤ë¤Ë¤Ï \fB\-s\fR ¥Õ¥é¥°¤òÍ¿¤¨¤ë¡£
 ¤³¤Î¾ì¹ç¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤º¡¢Ã±¤Ë¥½¡¼¥È¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
-\fI/etc/group\fR \  - ¥°¥ë¡¼¥×¥¢¥«¥¦¥ó¥È¾ðÊó
+\fI/etc/group\fR \  \- ¥°¥ë¡¼¥×¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
 \fI/etc/gshadow\fR \- °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤È¥°¥ë¡¼¥×´ÉÍý¼Ô¾ðÊó
 .br
-\fI/etc/passwd\fR \ - ¥æ¡¼¥¶¡¼¾ðÊó
+\fI/etc/passwd\fR \ \- ¥æ¡¼¥¶¡¼¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
 .BR group (5),
 .BR passwd (5),
index 37956fa3ad46658d2f4066e223da07bccbf46db9..804c5eb113cc8052e16740216f89bda437b15767 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: id.1,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: id.1,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -36,7 +36,7 @@
 .SH Ì¾Á°
 id \- ¸½ºß¤Î¥æ¡¼¥¶ ID Ì¾¤È¥°¥ë¡¼¥× ID Ì¾¤òɽ¼¨¤¹¤ë
 .SH ½ñ¼°
-\fBid\fR [\fB-a\fR]
+\fBid\fR [\fB\-a\fR]
 .SH ÀâÌÀ
 \fBid\fR¤Ï¡¢¸½ºß¤Î¼Â¥æ¡¼¥¶ ID¡¢¼Â¸ú¥æ¡¼¥¶ ID¡¢¼Â¥°¥ë¡¼¥× ID¡¢
 ¼Â¸ú¥°¥ë¡¼¥× ID ¤Î̾Á°¤Þ¤¿¤ÏÃͤòɽ¼¨¤¹¤ë¡£
@@ -44,11 +44,11 @@ id \- 
 \fI/etc/group\fR ¤Ë¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢
 Âбþ¤¹¤ë̾Á°¤Ïɽ¼¨¤µ¤ì¤º¤ËÃͤÀ¤±¤¬É½¼¨¤µ¤ì¤ë¡£
 ¥æ¡¼¥¶¤¬Æ±»þ¤ËÊ£¿ô¤Î¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Ë¤Ê¤ì¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢
-\fB-a\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¥°¥ë¡¼¥×¤Î½¸¹ç¤¬É½¼¨¤µ¤ì¤ë¡£
+\fB\-a\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¥°¥ë¡¼¥×¤Î½¸¹ç¤¬É½¼¨¤µ¤ì¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
 \fI/etc/passwd\fR \- ¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/group\fR \ - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \ \- ¥°¥ë¡¼¥×¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
 .BR getgid (2),
 .BR getgroups (2),
index 1815962557b96bed1e3ce6ee83dedf80b415a1b6..5d05b4e29e5347e88ed6ca34536607ffe72a6bb2 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: lastlog.8,v 1.8 2003/04/28 06:38:54 kloczek Exp $
+.\"$Id: lastlog.8,v 1.9 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1992, Phillip Street and Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -41,8 +41,8 @@
 lastlog \- lastlog ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤ë
 .SH ½ñ¼°
 .TP 8
-\fBlastlog\fR [(\fB-u\fR|\fB--user\fR) \fIlogin\fR]
-[(\fB-t\fR|\fB--time\fR) \fIdays\fR] [(\fB-h\fR|\fB--help\fR)]
+\fBlastlog\fR [(\fB\-u\fR|\fB\-\-user\fR) \fIlogin\fR]
+[(\fB\-t\fR|\fB\-\-time\fR) \fIdays\fR] [(\fB\-h\fR|\fB\-\-help\fR)]
 .SH ÀâÌÀ
 \fBlastlog\fR ¤ÏºÇ½ª¥í¥°¥¤¥ó¤Îµ­Ï¿¥Õ¥¡¥¤¥ë
 \fI/var/log/lastlog\fR ¤ÎÆâÍÆ¤òÀ°·Á¤·¤ÆÉ½¼¨¤¹¤ë¡£
@@ -50,16 +50,16 @@ lastlog \- lastlog 
 ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
 lastlog ¥¨¥ó¥È¥ê¤ò UID ¤Î¿ôÃͤǥ½¡¼¥È¤·¤ÆÉ½¼¨¤¹¤ë¡£
 .TP
-\fB-u\fR, \fB--user\fR \fIlogin-name\fR
-\fIlogin-name\fR ¤Îµ­Ï¿¤À¤±¤òɽ¼¨¤¹¤ë¡£
+\fB\-u\fR, \fB\-\-user\fR \fIlogin\-name\fR
+\fIlogin\-name\fR ¤Îµ­Ï¿¤À¤±¤òɽ¼¨¤¹¤ë¡£
 .TP
-\fB-t\fR, \fB--time\fR \fIdays\fR
+\fB\-t\fR, \fB\-\-time\fR \fIdays\fR
 ºÇ¶á \fIdays\fR Æü°ÊÆâ¤ÎºÇ½ª¥í¥°¥¤¥ó¤òɽ¼¨¤¹¤ë¡£
 .TP
-\fB-h\fR, \fB--help\fR
+\fB\-h\fR, \fB\-\-help\fR
 ¥ª¥ó¥é¥¤¥ó¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£
 .PP
-\fB-u\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤È \fB-t\fR ¤Ï̵»ë¤µ¤ì¤ë¡£
+\fB\-u\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤È \fB\-t\fR ¤Ï̵»ë¤µ¤ì¤ë¡£
 .\"nakano ¤È¤¤¤¦¤Î¤¬¼ÂºÝ¤Îưºî¤Î¤è¤¦¤Ë¸«¤¨¤ë¤Î¤À¤¬¡£
 .PP
 °ìÅÙ¤â¥í¥°¥¤¥ó¤·¤Æ¤¤¤Ê¤¤¥æ¡¼¥¶¤ËÂФ·¤Æ¤Ï¡¢
@@ -72,7 +72,7 @@ lastlog 
 UID ÈÖ¹æ¤ËÂ礭¤ÊÈô¤Ó¤¬¤¢¤ë¤È¡¢
 lastlog ¥×¥í¥°¥é¥à¤ÏĹ»þ´Ö²èÌ̤˲¿¤â½ÐÎϤ·¤Ê¤¤¤Þ¤Þ
 ¼Â¹Ô¤ò³¤±¤ë (Î㤨¤Ð mmdf ¤¬ 800 ¤ÇºÇ¸å¤Î UID ¤¬ 170 ¤Î¾ì¹ç¡¢
-UID ¤¬ 171-799 ¤Î´Ö¥×¥í¥°¥é¥à¤Ï²¿¤â½ÐÎϤ·¤Ê¤¤¤Î¤Ç¡¢
+UID ¤¬ 171\-799 ¤Î´Ö¥×¥í¥°¥é¥à¤Ï²¿¤â½ÐÎϤ·¤Ê¤¤¤Î¤Ç¡¢
 ¥Ï¥ó¥°¤·¤¿¤è¤¦¤Ë¸«¤¨¤ë)¡£
 .SH Ãø¼Ô
 Julianne Frances Haugh (jockgrrl@ix.netcom.com)
index c0e8e179f1bad13589b83c18d1cd827a9407df0e..496e34ffa7d656e7eb785f73e59fa4fe2552b201 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: limits.5,v 1.3 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: limits.5,v 1.4 2005/04/05 19:08:55 kloczek Exp $
 .\"
 .\" Japanese Version Copyright (c) 2001 Maki KURODA
 .\"     all right reserved,
@@ -72,7 +72,7 @@ login 
 ºÇ¸å¤Î¤â¤Î¤¬¥Ç¥Õ¥©¥ë¥È»ØÄê¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£
 .PP
 ¤¢¤ë¥æ¡¼¥¶¤Ø¤ÎÀ©¸Â¤ò´°Á´¤Ë̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
-¥·¥ó¥°¥ë¥À¥Ã¥·¥å "\fB-\fP" ¤ò»ÈÍѤ¹¤ë¡£
+¥·¥ó¥°¥ë¥À¥Ã¥·¥å "\fB\-\fP" ¤ò»ÈÍѤ¹¤ë¡£
 .PP
 ¤µ¤é¤Ë¡¢Á´¤Æ¤ÎÀ©¸Â¤ÎÀßÄê¤Ï¡Ö¥í¥°¥¤¥óñ°Ì¡×¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£
 À©¸Â¤Ï¥°¥í¡¼¥Ð¥ë¤Ç¤Ï¤Ê¤¯¡¢±Ê³Ū¤Ç¤â¤Ê¤¤¡£
index 63738929a47db6d2ab48c45d582c889704816697..767b515c64fb33e5c32f2bc240bac2a2f35cd4fc 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: login.1,v 1.6 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: login.1,v 1.9 2005/04/06 15:00:47 kloczek Exp $\r
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\" Japanese Version Copyright (c) 1997 Kazuyoshi Furutaka
-.\"         all rights reserved.
-.\" Translated Fri Feb 14 23:06:00 JST 1997
-.\"         by Kazuyoshi Furutaka <furutaka@Flux.tokai.jaeri.go.jp>
-.\" Updated Fri Jan 12 04:05:44 JST 2001
-.\"         by Kentaro Shirakata <argrath@ub32.org>
-.\" Modified Tue 16 Sep 2002 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\"
 .TH LOGIN 1
 .SH Ì¾Á°
 login \- ¥·¥¹¥Æ¥à¾å¤Ç¥»¥Ã¥·¥ç¥ó¤ò³«¤¯
 .SH ½ñ¼°
-\fBlogin\fR [\fB-p\fR] [\fIusername\fR] [\fIENV=VAR\fR ...]
+\fBlogin\fR [\fB\-p\fR] [\fIusername\fR] [\fIENV=VAR\fR ...]
 .br
-\fBlogin\fR [\fB-p\fR] [\fB-h \fIhost\fR] [\fB-f \fIusername\fR]
+\fBlogin\fR [\fB\-p\fR] [\fB\-h\fR \fIhost\fR] [\fB\-f\fR \fIusername\fR]
 .br
-\fBlogin\fR [\fB-p\fR] \fB-r \fIhost\fR
+\fBlogin\fR [\fB\-p\fR] \fB\-r\fR \fIhost\fR
 .SH ÀâÌÀ
 .B login
 ¤Ï¥·¥¹¥Æ¥à¤Ë¿·¤¿¤Ë¥»¥Ã¥·¥ç¥ó¤ò³«¤¯¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
@@ -59,16 +50,6 @@ login \- 
 ¥í¥°¥¤¥ó¥·¥§¥ë°Ê³°¤«¤é \fBlogin\fR ¤òµ¯Æ°¤·¤è¤¦¤È¤¹¤ë¤È¡¢
 ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£
 .PP
-\fIlogin:\fR¥×¥í¥ó¥×¥È¤«¤éµ¯Æ°¤·¤¿ºÝ¤Ï¡¢
-¥æ¡¼¥¶Ì¾¤Ë³¤¤¤Æ´Ä¶­ÊÑ¿ô¤òÆþÎϤ¹¤ë»ö¤â¤Ç¤­¤ë¡£
-¤½¤ì¤é¤òÆþÎϤ¹¤ë¾ì¹ç¤Ï \fBNAME=VALUE\fR ¤È¤¤¤¦½ñ¼°¤Ç¹Ô¤¦¡£
-¤³¤ÎÊýË¡¤ÇÁ´¤Æ¤ÎÊÑ¿ô¤òÀßÄê¤Ç¤­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
-Î㤨¤Ð
-\fBPATH\fR, \fBHOME\fR, \fBSHELL\fR
-¤Ê¤É¤ÏÀßÄê¤Ç¤­¤Ê¤¤¡£
-¤µ¤é¤Ë¥í¥°¥¤¥ó¥·¥§¥ë¤¬ \fB/bin/sh\fR ¤Î¾ì¹ç¤Ï
-\fBIFS\fR ¤âÀßÄê¤â¤Ç¤­¤Ê¤¤¡£
-.PP
 ¼¡¤¤¤Ç¡¢É¬Íפʾì¹ç¤Ë¤Ï¡¢¥æ¡¼¥¶¤Ï¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ¹¤ë¤è¤¦Â¥¤µ¤ì¤ë¡£
 ¥Ñ¥¹¥ï¡¼¥É¤òɽ¼¨¤·¤Æ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¡¢¥¨¥³¡¼¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£
 ¿ô²ó°Ê¾å¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤ˼ºÇÔ¤¹¤ë¤È
@@ -111,19 +92,19 @@ GECOS 
 ¥æ¡¼¥¶¤¬¼ÂºÝ¤Ë¥í¥°¥¤¥ó¤¹¤ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È¤È¤·¤Æ°·¤ï¤ì¤ë¡£
 .SH ¥ª¥×¥·¥ç¥ó
 .TP
-.B -p
+.B \-p
 ´Ä¶­¤òÊݸ¤¹¤ë¡£
 .TP
-.B -f
+.B \-f
 ¥æ¡¼¥¶¤Ï¤¹¤Ç¤Ëǧ¾Ú¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Æ¡¢Ç§¾Úưºî¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£
 .TP
-.B -h
+.B \-h
 ¤³¤Î¥í¥°¥¤¥ó¤Î¥ê¥â¡¼¥È¥Û¥¹¥È¤Î̾Á°¡£
 .TP
-.B -r
+.B \-r
 rlogin ¤Î¼«Æ°¥í¥°¥¤¥ó¥×¥í¥È¥³¥ë¤ò¼Â¹Ô¤¹¤ë¡£
 .PP
-\fB-r\fP, \fB-h\fP, \fB-f\fP ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-r\fP, \fB\-h\fP, \fB\-f\fP ¥ª¥×¥·¥ç¥ó¤Ï¡¢
 root ¤¬ \fBlogin\fP ¤òµ¯Æ°¤·¤¿¾ì¹ç¤Ë¤Î¤ßÍѤ¤¤ë¡£
 .SH ·Ù¹ð
 ¤³¤ÎÈǤΠ\fBlogin\fR ¤Ë¤Ï¿¤¯¤Î¥³¥ó¥Ñ¥¤¥ë»þ¥ª¥×¥·¥ç¥ó¤¬¤¢¤ë¤¬¡¢
@@ -131,21 +112,21 @@ root 
 .PP
 ¥·¥¹¥Æ¥àÀßÄê¤Î°ã¤¤¤Ë¤è¤Ã¤Æ¾åµ­¥Õ¥¡¥¤¥ë¤ÎÃÖ¤­¾ì½ê¤ÏÊѤï¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
-\fI/var/log/utmp\fR \   - ¸½ºß¤Î¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È
+\fI/var/log/utmp\fR            \- ¸½ºß¤Î¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È
 .br
-\fI/var/run/wtmp\fR \   - ²áµî¤Î¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È
+\fI/var/run/wtmp\fR            \- ²áµî¤Î¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È
 .br
-\fI/etc/passwd\fR \     - ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
+\fI/etc/passwd\fR              \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/shadow\fR \     - °Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¤ÈÍ­¸ú´ü¸Â¾ðÊó
+\fI/etc/shadow\fR              \- °Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¤ÈÍ­¸ú´ü¸Â¾ðÊó
 .br
-\fI/etc/motd\fR \       - ¥·¥¹¥Æ¥à¥á¥Ã¥»¡¼¥¸¥Õ¥¡¥¤¥ë
+\fI/etc/motd\fR                        \- ¥·¥¹¥Æ¥à¥á¥Ã¥»¡¼¥¸¥Õ¥¡¥¤¥ë
 .br
-\fI/etc/nologin\fR \    - root °Ê³°¤Î¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¤ò¶Ø»ß¤¹¤ë
+\fI/etc/nologin\fR             \- root °Ê³°¤Î¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¤ò¶Ø»ß¤¹¤ë
 .br
-\fI/etc/ttytype\fR \    - Ã¼Ëö¤Î·¿¤Î¥ê¥¹¥È
+\fI/etc/ttytype\fR             \- Ã¼Ëö¤Î·¿¤Î¥ê¥¹¥È
 .br
-\fI$HOME/.hushlogin\fR \- ¥·¥¹¥Æ¥à¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤¹¤ë
+\fI$HOME/.hushlogin\fR \- ¥·¥¹¥Æ¥à¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤¹¤ë
 .SH ´ØÏ¢¹àÌÜ
 .BR mail (1),
 .BR passwd (1),
index 2d97167ccc468b25ab170186be28104370bf7400..88b247bcaa58d3d7d554aa2e5e8720930656c82b 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: login.access.5,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: login.access.5,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\" this is comment
 .\"
 .\" This page is originally in the shadow package.
@@ -31,7 +31,7 @@ login.access \- 
 .IR    permission : users : origins
 .sp 1
 ºÇ½é¤Î¥Õ¥£¡¼¥ë¥É¤Ï "\fB+\fR" (¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë) ¤«
-"\fB-\fR" (¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+"\fB\-\fR" (¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ÆóÈÖÌܤΥե£¡¼¥ë¥É¤Ï¡¢°ì¤Ä°Ê¾å¤Î¥í¥°¥¤¥ó̾¤ä¥°¥ë¡¼¥×̾¡¢
 ¤â¤·¤¯¤Ï
 .B ALL
index 01f5e123a3f3ac44a2879024e240c9c5bb8bc449..7ded674df88ccd357062a8d4c4b894a0f31f30dd 100644 (file)
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: login.defs.5,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"    $Id: login.defs.5,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\"
 .\" Japanese Version Copyright (c) 1997 Kazuyoshi Furutaka
 .\"         all rights reserved.
@@ -100,7 +100,7 @@ chfn 
 .IP "CREATE_HOME (¥Ö¡¼¥ëÃÍ)"
 useradd ¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ò
 ºîÀ®¤¹¤ë¤«¤É¤¦¤«¤òÄêµÁ¤¹¤ë¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï useradd ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î -m ¥Õ¥é¥°¤È OR ¤µ¤ì¤ë¡£
+¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï useradd ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î \-m ¥Õ¥é¥°¤È OR ¤µ¤ì¤ë¡£
 .\"
 .IP "GID_MAX (¿ôÃÍ)"
 .IP "GID_MIN (¿ôÃÍ)"
@@ -118,11 +118,11 @@ useradd 
 .IP "PASS_MAX_DAYS (¿ôÃÍ)"
 °ì¤Ä¤Î¥Ñ¥¹¥ï¡¼¥É¤ò»È¤¨¤ëºÇĹÆü¿ô¡£
 ¥Ñ¥¹¥ï¡¼¥É¤¬¤³¤ÎÆü¿ô¤è¤ê¤â¸Å¤¤¾ì¹ç¤Ï¡¢Êѹ¹¤¹¤ë¤è¤¦¶¯À©¤µ¤ì¤ë¡£
-»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï -1 ¤È¤Ê¤ë (¤³¤ÎÀ©¸Âµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë)¡£
+»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï \-1 ¤È¤Ê¤ë (¤³¤ÎÀ©¸Âµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë)¡£
 .IP "PASS_MIN_DAYS (¿ôÃÍ)"
 ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Æ¤«¤é¼¡¤ËÊѹ¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç¤ÎºÇûÆü¿ô¡£
 ¤³¤ÎÆü¿ô¤¬·Ð¤¿¤Ê¤¤¤¦¤Á¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤è¤¦¤È¤·¤Æ¤âµñÈݤµ¤ì¤ë¡£
-»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï -1 ¤È¤Ê¤ë (¤³¤ÎÀ©¸Âµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë)¡£
+»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï \-1 ¤È¤Ê¤ë (¤³¤ÎÀ©¸Âµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë)¡£
 .IP "PASS_WARN_AGE (¿ôÃÍ)"
 ¥Ñ¥¹¥ï¡¼¥É¤ÎÍ­¸ú´ü¸Â¤¬Íè¤ëÁ°¤Ë·Ù¹ð¤òȯ¤¹¤ë´ü´Ö¤ÎÆü¿ô¡£
 ¥¼¥í¤Ë¤·¤Æ¤ª¤¯¤È¡¢´ü¸ÂÀÚ¤ì¤ÎÅöÆü¤Ë¤Î¤ß·Ù¹ð¤ò¹Ô¤¤¡¢
index 3eeda4c56a72e80c97cf6b36253012af023ad114..b393b263d116d8327e78e0428df278233a9ebf24 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: mkpasswd.8,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: mkpasswd.8,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -36,7 +36,7 @@
 .SH Ì¾Á°
 mkpasswd \- passwd ¤È group ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤¹¤ë
 .SH ½ñ¼°
-\fBmkpasswd\fR [\fB-fvgps\fR] \fIfile\fR
+\fBmkpasswd\fR [\fB\-fvgps\fR] \fIfile\fR
 .SH ÀâÌÀ
 .B mkpasswd
 ¤Ï¥Õ¥é¥°¤ÇÍ¿¤¨¤é¤ì¤¿½ñ¼°¤Ë¤·¤¿¤¬¤Ã¤Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢
@@ -46,25 +46,25 @@ mkpasswd \- passwd 
 ½ÐÎÏ¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï
 \fIfile\fR.dir ¤ª¤è¤Ó \fIfile\fR.pag¤È¤Ê¤ë¡£
 .PP
-\fB-f\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-f\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 \fBmkpasswd\fR ¤Ï½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤Æ¤â̵»ë¤·¤Æ¾å½ñ¤­¤¹¤ë¡£
 Ä̾ï¤Ï¡¢½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤¹¤ë»Ý¤Î·Ù¹ð¤òȯ¤·¤Æ½ªÎ»¤¹¤ë¡£
 .PP
-\fB-v\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-v\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 \fBmkpasswd\fR ¤ÏÊÑ´¹¤ò¹Ô¤Ê¤¦Ëè¤Ë³Æ¥ì¥³¡¼¥É¤Î¾ðÊó¤ò½ÐÎϤ·¡¢
 ºÇ¸å¤Ë½ªÎ»¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
 .PP
-\fB-g\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-g\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬ \fI/etc/group\fR
 ¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ½èÍý¤ò¹Ô¤Ê¤¦¡£
-\fB-s\fR ¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤ËÍѤ¤¤¿¾ì¹ç¤Ï¡¢
+\fB\-s\fR ¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤ËÍѤ¤¤¿¾ì¹ç¤Ï¡¢
 \fI/etc/gshadow\fR ¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤¬ÍѤ¤¤é¤ì¤ë¡£
 .PP
-\fB-p\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-p\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬ \fB/etc/passwd\fR
 ¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤Ç¤¢¤ë¤È¤ß¤Ê¤·¤Æ½èÍý¤ò¹Ô¤¦¡£
 ¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¢¤ë¡£
-\fB-s\fR ¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤ËÍѤ¤¤¿¾ì¹ç¤Ï¡¢
+\fB\-s\fR ¥ª¥×¥·¥ç¥ó¤ÈƱ»þ¤ËÍѤ¤¤¿¾ì¹ç¤Ï¡¢
 \fI/etc/shadow\fR ¥Õ¥¡¥¤¥ë¤Î½ñ¼°¤¬ÍѤ¤¤é¤ì¤ë¡£
 .SH ·Ù¹ð
 Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò»È¤¨¤ë¤Î¤Ï¡¢
@@ -75,11 +75,11 @@ NDBM 
 ¤³¤Î¥³¥Þ¥ó¥É¤¬É¬Íפˤʤë¤Î¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºï½ü¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤ä¡¢
 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬²õ¤ì¤¿¾ì¹ç¤Ê¤É¤Ë¡¢ºÆÀ¸À®¤¹¤ë¤È¤­¤À¤±¤Ç¤¢¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
-\fI/etc/passwd\fR \ - ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
+\fI/etc/passwd\fR \ \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/shadow\fR \ - shadow ²½¤µ¤ì¤¿¥æ¡¼¥¶¾ðÊó
+\fI/etc/shadow\fR \ \- shadow ²½¤µ¤ì¤¿¥æ¡¼¥¶¾ðÊó
 .br
-\fI/etc/group\fR \  - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \  \- ¥°¥ë¡¼¥×¾ðÊó
 .br
 \fI/etc/gshadow\fR \- shadow ²½¤µ¤ì¤¿¥°¥ë¡¼¥×¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
index 96310eb7c96481545f8d54ac5ebe9067ca392f04..f4c3e0ea409698c5117ea76a126e7d67184a147f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: newgrp.1,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: newgrp.1,v 1.7 2005/04/12 18:08:47 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -39,9 +39,9 @@ newgrp \- 
 .br
 sg \- Ê̤Υ°¥ë¡¼¥× ID ¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë
 .SH ½ñ¼°
-\fBnewgrp\fR [\fB-\fR] [\fIgroup\fR]
+\fBnewgrp\fR [\fB\-\fR] [\fIgroup\fR]
 .br
-\fBsg\fR [\fB-\fR] [\fIgroup\fR [[\fB-c\fR] \fIcommand\fR]]
+\fBsg\fR [\fB\-\fR] [\fIgroup\fR [[\fB\-c\fR] \fIcommand\fR]]
 .SH ÀâÌÀ
 .B newgrp
 ¤Ï¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥óÃæ¤Ë¸½ºß¤Î¥°¥ë¡¼¥× ID ¤òÊѹ¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
@@ -66,7 +66,7 @@ sg \- 
 ¥³¥Þ¥ó¥É¤Ï
 .B newgrp
 ¤ÈƱÍÍ¤ËÆ°ºî¤¹¤ë¤¬¡¢¥³¥Þ¥ó¥É¤ò¼õ¤±ÉÕ¤±¤ë¡£
-¤³¤Î¥³¥Þ¥ó¥É¤Ï Bourne ¥·¥§¥ë¤Ç¼Â¹Ô¤µ¤ì¤ë¡£
+¤³¤Î¥³¥Þ¥ó¥É¤Ï \fB/bin/sh\fR ¥·¥§¥ë¤Ç¼Â¹Ô¤µ¤ì¤ë¡£
 ¥³¥Þ¥ó¥É¤¬Ê£¿ô¤Îñ¸ì¤«¤é¤Ê¤ë¾ì¹ç¤Ï¡¢
 sg ¤Î¼Â¹Ô¸µ¤È¤Ê¤ë¤Ç¤¢¤í¤¦¥·¥§¥ë¤Î¤Û¤È¤ó¤É¤Ë¤ª¤¤¤Æ¡¢
 ¤³¤ì¤é¤ò¥¯¥©¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£
@@ -81,9 +81,9 @@ sg 
 .B sg
 ¥³¥Þ¥ó¥É¤«¤éÌá¤Ã¤¿ºÝ¤Ë¤Ï°ÊÁ°¤Î¥°¥ë¡¼¥× ID ¤ËÌá¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
-\fI/etc/passwd\fR \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
+\fI/etc/passwd\fR      \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/group\fR - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR       \- ¥°¥ë¡¼¥×¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
 .BR id (1),
 .BR login (1),
index 97b1b6b76e0db965e30d19dbe78da5b3c06e40ac..cde1a3cb3061146ac8021e9834400ef2561f49ce 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: passwd.1,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: passwd.1,v 1.8 2005/04/13 10:02:27 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH Ì¾Á°
 passwd \- ¥æ¡¼¥¶¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë
 .SH ½ñ¼°
-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIname\fR]
+\fBpasswd\fR [\fB\-f\fR|\fB\-s\fR] [\fIname\fR]
 .br
-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgroup\fR
+\fBpasswd\fR [\fB\-g\fR] [\fB\-r\fR|\fB\-R\fR] \fIgroup\fR
 .br
-\fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR]
-[\fB-w \fIwarn\fR] [\fB-i \fIinact\fR] \fIlogin\fR
+\fBpasswd\fR [\fB\-x\fR \fImax\fR] [\fB\-n\fR \fImin\fR]
+[\fB\-w\fR \fIwarn\fR] [\fB\-i\fR \fIinact\fR] \fIlogin\fR
 .br
-\fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR
+\fBpasswd\fR {\fB\-l\fR|\fB\-u\fR|\fB\-d\fR|\fB\-S\fR|\fB\-e\fR} \fIlogin\fR
 .SH ÀâÌÀ
 \fBpasswd\fR ¤Ï¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¡¦¥°¥ë¡¼¥×¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¡£
 °ìÈ̥桼¥¶¤Ï¼«Ê¬¤Î¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤·¤«Êѹ¹¤Ç¤­¤Ê¤¤¡£
@@ -54,11 +54,11 @@ passwd \- 
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸ÂÀÚ¤ì¤ÎÆüÉÕ¡¦
 Í­¸ú´ü´Ö¤È¤¤¤Ã¤¿¥¢¥«¥¦¥ó¥È¾ðÊó¤òÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
 .PP
-.B -s
+.B \-s
 ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È
 .BR passwd " ¤Ï " chsh
 ¤ò¸Æ¤Ó½Ð¤·¤Æ¥æ¡¼¥¶¤Î¥·¥§¥ë¤òÊѹ¹¤¹¤ë¡£
-.B -f
+.B \-f
 ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È
 .BR passwd " ¤Ï " chfn
 ¤ò¸Æ¤Ó½Ð¤·¤Æ¥æ¡¼¥¶¤Î GECOS ¾ðÊó¤òÊѹ¹¤¹¤ë¡£
@@ -100,50 +100,50 @@ kill ʸ
 ¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹¤¬¼õ¤±Æþ¤ì¤é¤ì¤ë¤¿¤á¤Ë¤Ï¡¢
 ¤³¤Îξ¼Ô¤¬¹çÃפ·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 .SS ¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É
-\fB-g\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤¿¾ì¹ç¡¢
+\fB\-g\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤¿¾ì¹ç¡¢
 »ØÄꤷ¤¿¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤µ¤ì¤ë¡£
 ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤«»ØÄꤷ¤¿¥°¥ë¡¼¥×¤Î´ÉÍý¼Ô¤·¤«»È¤¨¤Ê¤¤¡£
 ¸½ºß¤Î¥°¥ë¡¼¥×¥Ñ¥¹¥ï¡¼¥É¤Ï¿Ò¤Í¤Æ¤³¤Ê¤¤¡£
-\fB-g\fR ¥ª¥×¥·¥ç¥ó¤ò \fB-r\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
+\fB\-g\fR ¥ª¥×¥·¥ç¥ó¤ò \fB\-r\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
 »ØÄꤷ¤¿¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É¤¬ºï½ü¤µ¤ì¤ë¡£
 ¤³¤¦¤¹¤ë¤ÈÁ´¤Æ¤Î¥á¥ó¥Ð¡¼¤¬¤³¤Î¥°¥ë¡¼¥×¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£
-\fB-R\fR ¥ª¥×¥·¥ç¥ó¤ò \fB-g\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
+\fB\-R\fR ¥ª¥×¥·¥ç¥ó¤ò \fB\-g\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤ËÍѤ¤¤ë¤È¡¢
 Á´¤Æ¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ»ØÄꤷ¤¿¥°¥ë¡¼¥×¤Ø¤Î¥¢¥¯¥»¥¹¤ò¶Ø»ß¤Ç¤­¤ë¡£
 .SS ¥Ñ¥¹¥ï¡¼¥É¤ÎÍ­¸ú´ü¸Â¾ðÊó
 ¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤ÎÍ­¸ú´ü¸Â¤Ë´Ø¤¹¤ë¾ðÊó¤òÊѹ¹¤Ç¤­¤ë¡£
-¤³¤ì¤Ë¤Ï \fB-x\fR, \fB-n\fR, \fB-w\fR, \fB-i\fR ¤Ê¤É¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¡£
-\fB-x\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Í­¸ú¤ÊºÇĹÆü¿ô¤òÀßÄꤹ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
+¤³¤ì¤Ë¤Ï \fB\-x\fR, \fB\-n\fR, \fB\-w\fR, \fB\-i\fR ¤Ê¤É¤Î¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¡£
+\fB\-x\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Í­¸ú¤ÊºÇĹÆü¿ô¤òÀßÄꤹ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
 \fImax\fR Æü¤¬²á¤®¤ë¤È¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¤è¤¦¤Ëµá¤á¤é¤ì¤ë¡£
-\fB-n\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹²Äǽ¤È¤Ê¤ë¤Þ¤Ç¤Î
+\fB\-n\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹²Äǽ¤È¤Ê¤ë¤Þ¤Ç¤Î
 ºÇûÆü¿ô¤òÀßÄꤹ¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£
 ¥æ¡¼¥¶¤Ï \fImin\fR Æü¤¬·Ð²á¤·¤¿¸å¤Ç¤Ê¤¤¤È¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤Ç¤­¤Ê¤¤¡£
-\fB-w\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤Î»ÈÍÑ´ü¸Â¤¬Íè¤ëÁ°¤Ë
+\fB\-w\fR ¥ª¥×¥·¥ç¥ó¤Ï¥Ñ¥¹¥ï¡¼¥É¤Î»ÈÍÑ´ü¸Â¤¬Íè¤ëÁ°¤Ë
 ²¿Æü´Ö·Ù¹ð¤òÍ¿¤¨¤ë¤«¤òÀßÄꤹ¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
 ´ü¸ÂÀÚ¤ì¤Î \fIwarn\fR ÆüÁ°¤«¤éÃí°Õ¤¬³«»Ï¤µ¤ì¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤¬´ü¸ÂÀÚ¤ì¤Ë¤Ê¤ë¤Þ¤Ç¤¢¤È²¿Æü»Ä¤Ã¤Æ¤¤¤ë¤«¤¬¼¨¤µ¤ì¤ë¡£
-\fB-i\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-i\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸Â¤¬ÀÚ¤ì¤Æ¤«¤é²¿Æü´Ö·Ð²á¤·¤¿¤é¡¢
 ¤½¤Î¥¢¥«¥¦¥ó¥È¤ò»ÈÍÑÉÔǽ¤Î¾õÂ֤ˤ¹¤ë¤«¤òÀßÄꤹ¤ë¤Î¤ËÍѤ¤¤ë¡£
 \fIinact\fR Æü´Ö¥¢¥«¥¦¥ó¥È¤ò¥Ñ¥¹¥ï¡¼¥É´ü¸ÂÀÚ¤ì¾õÂ֤Τޤޤˤ¹¤ë¤È¡¢
 ¥æ¡¼¥¶¤Ï¤½¤Î¥¢¥«¥¦¥ó¥È¤ËÆþ¤ì¤Ê¤¯¤Ê¤ë¡£
 .PP
 ¤¢¤ë¥¢¥«¥¦¥ó¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òľ¤Á¤Ë´ü¸ÂÀÚ¤ì¤Ë¤·¤¿¤¤¾ì¹ç¤Ï¡¢
-\fB-e\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¤è¤¤¡£
+\fB\-e\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ì¤Ð¤è¤¤¡£
 ¤¹¤ë¤È¤½¤Î¥æ¡¼¥¶¤Ï¼¡¤Ë¥í¥°¥¤¥ó¤¹¤ëºÝ¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë¤è¤¦¶¯À©¤µ¤ì¤ë¡£
-\fB-d\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤òºï½ü¤¹¤ë¤³¤È¤â¤Ç¤­¤ë
+\fB\-d\fR ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤òºï½ü¤¹¤ë¤³¤È¤â¤Ç¤­¤ë
 (¥Ñ¥¹¥ï¡¼¥É¤¬¶õ¤Ë¤Ê¤ë)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÃí°Õ¤·¤Æ»È¤¦¤³¤È¡£
 ¤³¤ì¤ò»È¤¦¤È¡¢¤½¤Î¥¢¥«¥¦¥ó¥È¤Ï¥í¥°¥¤¥ó¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÁ´¤¯É¬ÍפȤ·¤Ê¤¯¤Ê¤ê¡¢
 ¥·¥¹¥Æ¥à¤¬¿¯Æþ¼Ô¤ËÂФ·¤Æ¥ª¡¼¥×¥ó¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£
 .SS ¥¢¥«¥¦¥ó¥È¤ÎÊݼé
-\fB-l\fR ¥Õ¥é¥°¤È \fB-u\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤È¡¢
+\fB\-l\fR ¥Õ¥é¥°¤È \fB\-u\fR ¥Õ¥é¥°¤òÍѤ¤¤ë¤È¡¢
 ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤ò¥í¥Ã¥¯¤·¤¿¤ê¡¢¤½¤Î¥í¥Ã¥¯¤ò³°¤·¤¿¤ê¤Ç¤­¤ë¡£
-\fB-l\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
+\fB\-l\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
 ¥Ñ¥¹¥ï¡¼¥É¥Õ¥£¡¼¥ë¥É¤ÎÃͤϰŹ沽¤µ¤ì¤¿Ç¡²¿¤Ê¤ëÃͤȤâ¥Þ¥Ã¥Á¤·¤Ê¤¯¤Ê¤ê¡¢
 ¥¢¥«¥¦¥ó¥È¤Ï»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¡£
-\fB-u\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï°ÊÁ°¤ÎÃͤËÌá¤ê¡¢
+\fB\-u\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï°ÊÁ°¤ÎÃͤËÌá¤ê¡¢
 ¥¢¥«¥¦¥ó¥È¤¬ºÆ¤Ó»ÈÍѲÄǽ¤È¤Ê¤ë¡£
 .PP
-\fB-S\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¥¢¥«¥¦¥ó¥È¤Î¾õÂÖ¤¬É½¼¨¤µ¤ì¤ë¡£
+\fB\-S\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¥¢¥«¥¦¥ó¥È¤Î¾õÂÖ¤¬É½¼¨¤µ¤ì¤ë¡£
 ¥¢¥«¥¦¥ó¥È¤Î¾õÂ֤ξðÊó¤Ï 6 ¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ë¡£
 ºÇ½é¤ÎÉôʬ¤Ï¡¢¥¢¥«¥¦¥ó¥È¤Ë¥í¥Ã¥¯¤¬¤«¤±¤é¤ì¤Æ¤¤¤ë (L)¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤¬Â¸ºß¤·¤Ê¤¤ (NP)¡¢
@@ -153,7 +153,7 @@ kill ʸ
 »ÈÍÑÉÔǽ´ü´Ö¤Ç¤¢¤ë¡£
 .SS ¥æ¡¼¥¶¥Ñ¥¹¥ï¡¼¥É¤ËÂФ¹¤ë¥Ò¥ó¥È
 ¥Ñ¥¹¥ï¡¼¥É¤Î°ÂÁ´À­¤Ï°Å¹æ²½¥¢¥ë¥´¥ê¥º¥à¤Î¶¯ÎϤµ¤È¥­¡¼¶õ´Ö¤ÎÂ礭¤µ¤Ë°Í¸¤¹¤ë¡£
-\fB\s-2UNIX\s+2\fR ¤Î¥·¥¹¥Æ¥à°Å¹æ²½¤ÎÊýË¡¤Ï
+\fB\s\-2UNIX\s+2\fR ¤Î¥·¥¹¥Æ¥à°Å¹æ²½¤ÎÊýË¡¤Ï
 NBS DES ¥¢¥ë¥´¥ê¥º¥à¤Ë´ð¤Å¤¤¤Æ¤ª¤ê¡¢Èó¾ï¤Ë°ÂÁ´À­¤¬¹â¤¤¡£
 ¥­¡¼¶õ´Ö¤ÎÂ礭¤µ¤ÏÁª¤Ð¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Î¥é¥ó¥À¥à¤µ¤Ë°Í¸¤¹¤ë¡£
 .PP
@@ -211,6 +211,7 @@ NIS 
 \fI/etc/shadow\fR \- °Å¹æ²½¤µ¤ì¤¿¥æ¡¼¥¶¥Ñ¥¹¥ï¡¼¥É
 .SH ´ØÏ¢¹àÌÜ
 .BR group (5),
-.BR passwd (5)
+.BR passwd (5),
+.BR shadow (5)
 .SH Ãø¼Ô
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
index 50204e0962d22b4b4a1610ff5c445bfad1248623..0b26b293a6e0d6c4efcf57f4bd1c46e58c01dbdb 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: porttime.5,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: porttime.5,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -59,7 +59,7 @@ porttime \- 
 Á´¤Æ¤Î¥Ý¡¼¥È¤«¤é¥¢¥¯¥»¥¹²Äǽ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£
 .br
 .sp 1
-       *:jfh:Wk0900-1700
+       *:jfh:Wk0900\-1700
 .br
 .sp 1
 ¼¡¤Î¥¨¥ó¥È¥ê¤Ï¡¢
@@ -72,7 +72,7 @@ porttime \- 
 ¤·¤¿¤¬¤Ã¤Æ console ¤«¤é¤Î¥¢¥¯¥»¥¹¤Ïµö²Ä¤µ¤ì¤Ê¤¤¡£
 .br
 .sp 1
-       console:root,oper:Al0000-2400
+       console:root,oper:Al0000\-2400
 .br
        console:*:
 .br
@@ -82,7 +82,7 @@ porttime \- 
 ¤¢¤é¤æ¤ë¥Ý¡¼¥È¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë»ØÄꤷ¤Æ¤¤¤ë¡£
 .br
 .sp 1
-       *:games:Wk1700-0900,SaSu0000-2400
+       *:games:Wk1700\-0900,SaSu0000\-2400
 .br
 .sp 1
 .SH ¥Õ¥¡¥¤¥ë
index e7de1aa0e6d8cad4b20be2f97b9cbe73efc8e520..10e42e6b8390917127a8e6e267f20215efde39d3 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: pw_auth.3,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: pw_auth.3,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -74,33 +74,33 @@ pwauth \- 
 .IP \fBPW_SU\fR 1i
 »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤Î¼Â¥æ¡¼¥¶ ID ¤ËÀÚ¤êÂØ¤¨¤è¤¦¤È¤·¤Æ¤¤¤ë¡¢
 ¸½ºß¤Î¼Â¥æ¡¼¥¶ ID ¤ËÂФ·¤ÆÇ§¾Ú¤ò¹Ô¤¦¡£
-\fB-s\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-s\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_LOGIN\fR 1i
 ¿·¤¿¤Ë¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥ó¤òºî¤ê½Ð¤½¤¦¤È¤·¤Æ¤¤¤ë
 »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤òǧ¾Ú¤¹¤ë¡£
-\fB-l\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-l\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_ADD\fR 1i
 »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤ËÂФ·¤Æ¿·¤¿¤Ê¥¨¥ó¥È¥ê¤òºî¤ë¡£
 ¤³¤ì¤Ë¤è¤ê¡¢Ç§¾Ú¥×¥í¥°¥é¥à¤Ï¿·µ¬¥æ¡¼¥¶ÍѤε­²±Îΰè¤ò½àÈ÷¤Ç¤­¤ë¡£
-\fB-a\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-a\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_CHANGE\fR 1i
 »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤Î´û¸¤Î¥¨¥ó¥È¥ê¤òÊѹ¹¤¹¤ë¡£
 ¤³¤ì¤Ë¤è¤ê¡¢Ç§¾Ú¥×¥í¥°¥é¥à¤Ï´û¸¤Î¥æ¡¼¥¶¤Îǧ¾Ú¾ðÊó¤òÊѹ¹¤Ç¤­¤ë¡£
-\fB-c\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-c\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_DELETE\fR 1i
 »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¤Îǧ¾Ú¾ðÊó¤ò¾Ãµî¤¹¤ë¡£
 ¤³¤ì¤Ë¤è¤ê¡¢Ç§¾Ú¥×¥í¥°¥é¥à¤Ïº£¸åǧ¾Ú¤¹¤ë¤³¤È¤¬Ìµ¤¯¤Ê¤Ã¤¿
 ¥æ¡¼¥¶ÍѤε­²±Îΰè¤òºÆÍøÍѤǤ­¤ë¡£
-\fB-d\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-d\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_TELNET\fR 1i
 \fBtelnet\fR ¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¥·¥¹¥Æ¥à¤ËÀܳ¤·¤ÆÍ褿¥æ¡¼¥¶¤Îǧ¾Ú¤ò¹Ô¤¦¡£
-\fB-t\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-t\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_RLOGIN\fR 1i
 \fBrlogin\fR ¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¥·¥¹¥Æ¥à¤ËÀܳ¤·¤ÆÍ褿¥æ¡¼¥¶¤Îǧ¾Ú¤ò¹Ô¤¦¡£
-\fB-r\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-r\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 .IP \fBPW_FTP\fR 1i
 \fBftp\fR ¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¥·¥¹¥Æ¥à¤ËÀܳ¤·¤ÆÍ褿¥æ¡¼¥¶¤Îǧ¾Ú¤ò¹Ô¤¦¡£
-\fB-f\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-f\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 É¸½à¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÍѤ¤¤Æ¥æ¡¼¥¶¤ÈÄÌ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
 É¸½à¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¿Æ¥×¥í¥»¥¹¤ËÀܳ¤µ¤ì¤Æ¤ª¤ê¡¢
 Â¾¤ÎÆó¤Ä¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï \fI/dev/null\fR ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¡£
@@ -108,7 +108,7 @@ pwauth \- 
 ¤òÍѤ¤¤Æ°ì¹Ô¤Î¥Ç¡¼¥¿¤òǧ¾Ú¥×¥í¥°¥é¥à¤Ë¥Ñ¥¤¥×¤¹¤ë¡£
 .IP \fBPW_REXEC\fR 1i
 \fIrexec\fR ¥³¥Þ¥ó¥É¤òÍѤ¤¤Æ¥·¥¹¥Æ¥à¤ËÀܳ¤·¤ÆÍ褿¥æ¡¼¥¶¤Îǧ¾Ú¤ò¹Ô¤¦¡£
-\fB-x\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
+\fB\-x\fR ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤ÆÇ§¾Ú¥×¥í¥°¥é¥à¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
 É¸½à¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÍѤ¤¤Æ¥æ¡¼¥¶¤ÈÄÌ¿®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
 É¸½à¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¿Æ¥×¥í¥»¥¹¤ËÀܳ¤µ¤ì¤Æ¤ª¤ê¡¢
 Â¾¤ÎÆó¤Ä¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï \fI/dev/null\fR ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¡£
index ebc4f5d175bf80de2e68b11f732748b796abcd5f..0dd3194dc80c8e4de9097f4324ef653e915ff24e 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: pwck.8,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: pwck.8,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -37,7 +37,7 @@
 .SH Ì¾Á°
 pwck \- ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¤¤«¤É¤¦¤«¸¡ºº¤¹¤ë
 .SH ½ñ¼°
-\fBpwck\fR [\fB-sr\fR] [\fIpasswd\fR \fIshadow\fR]
+\fBpwck\fR [\fB\-sr\fR] [\fIpasswd\fR \fIshadow\fR]
 .SH ÀâÌÀ
 \fBpwck\fR ¥³¥Þ¥ó¥É¤Ï¥·¥¹¥Æ¥à¤Îǧ¾Ú¾ðÊó¤¬Àµ¤·¤¤¤«¤É¤¦¤«¸¡ºº¤¹¤ë¡£
 \fI/etc/passwd\fR ¤È \fI/etc/shadow\fR
@@ -50,18 +50,18 @@ pwck \- 
 ³Æ¡¹¤Î¥¨¥ó¥È¥ê¤ËÂФ·¤Æ
 .sp
 .in +.5i
-- ¥Õ¥£¡¼¥ë¥É¤Î¿ô¤¬Àµ¤·¤¤¤«
+\- ¥Õ¥£¡¼¥ë¥É¤Î¿ô¤¬Àµ¤·¤¤¤«
 .br
-- ¥æ¡¼¥¶Ì¾¤Ë½ÅÊ£¤¬¤Ê¤¤¤«
+\- ¥æ¡¼¥¶Ì¾¤Ë½ÅÊ£¤¬¤Ê¤¤¤«
 .br
-- ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Î ID ¤¬Àµ¤·¤¤¤«
+\- ¥æ¡¼¥¶¤ä¥°¥ë¡¼¥×¤Î ID ¤¬Àµ¤·¤¤¤«
 .br
-- ¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥×¤¬Àµ¤·¤¤¤«
+\- ¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥×¤¬Àµ¤·¤¤¤«
 .br
-- ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬Àµ¤·¤¤¤«
+\- ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬Àµ¤·¤¤¤«
 .br
-- ¥í¥°¥¤¥ó¥·¥§¥ë¤¬Àµ¤·¤¤¤«
-.in -.5i
+\- ¥í¥°¥¤¥ó¥·¥§¥ë¤¬Àµ¤·¤¤¤«
+.in \-.5i
 .sp
 ¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤ë¡£
 .P
@@ -84,20 +84,20 @@ pwck \- 
 \fI/etc/shadow\fR ¤ËÂФ·¤ÆÆ°ºî¤¹¤ë¡£
 \fIpasswd\fR ¥Ñ¥é¥á¡¼¥¿¤È \fIshadow\fR ¥Ñ¥é¥á¡¼¥¿¤òÍѤ¤¤Æ¡¢
 Ê̤Υե¡¥¤¥ë¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¤µ¤é¤Ë \fB-r\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ì¤Ð¡¢
+¤µ¤é¤Ë \fB\-r\fR ¥Õ¥é¥°¤ò»ØÄꤹ¤ì¤Ð¡¢
 ¥ê¡¼¥É¥ª¥ó¥ê¡¼¥â¡¼¥É¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
 ¤³¤Î¾ì¹ç¡¢Êѹ¹¤ò¹Ô¤¦¤«¤É¤¦¤«¤Ï¥æ¡¼¥¶¤ØÌ䤤¹ç¤ï¤µ¤ì¤º¡¢
 ¼«Æ°Åª¤Ë \fBno\fR ¤È²óÅú¤µ¤ì¤ë¡£
 \fBpwck\fR ¤Ï \fI/etc/passwd\fR ¤È \fI/etc/shadow\fR
 ¤Î¥¨¥ó¥È¥ê¤ò UID ¤Ç¥½¡¼¥È¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¥½¡¼¥È¥â¡¼¥É¤Çưºî¤µ¤»¤ë¤Ë¤Ï \fB-s\fR ¥Õ¥é¥°¤òÍ¿¤¨¤ë¡£
+¥½¡¼¥È¥â¡¼¥É¤Çưºî¤µ¤»¤ë¤Ë¤Ï \fB\-s\fR ¥Õ¥é¥°¤òÍ¿¤¨¤ë¡£
 ¤³¤Î¾ì¹ç¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤º¡¢Ã±¤Ë¥½¡¼¥È¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£
 .SH ¥Õ¥¡¥¤¥ë
 \fI/etc/passwd\fR \- ¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
 \fI/etc/shadow\fR \- °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¾ðÊó
 .br
-\fI/etc/group\fR \ - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \ \- ¥°¥ë¡¼¥×¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
 .BR group (5),
 .BR passwd (5),
index e66f271d18d6c67f9e9a72889eab376fe315a4a2..ad352e08eb4ab101f85a3f7d8109364784e2c229 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: shadow.3,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: shadow.3,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1989 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -88,7 +88,7 @@ struct spwd {
 .br
        int     sp_flag; /* reserved for future use */
 .br
-.in -.5i
+.in \-.5i
 }
 .PP
 ³Æ¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï:
@@ -134,13 +134,13 @@ shadow 
 ¤½¤·¤ÆºÇ½é¤Î 15 ÉäλĤê¤Î´Ö¡¢
 \fBspw_lock\fR ¤Ë¤è¤Ã¤ÆÆóÅÙÌܤΥí¥Ã¥¯¤ò¤·¤è¤¦¤È»î¤ß³¤±¤ë¡£
 ·× 15 Éô֤δ֤ˤ¤¤º¤ì¤«¤Î»î¤ß¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢
-\fBlckpwdf\fR ¤Ï -1 ¤òÊÖ¤¹¡£
+\fBlckpwdf\fR ¤Ï \-1 ¤òÊÖ¤¹¡£
 ¤¤¤º¤ì¤Î¥í¥Ã¥¯¤âÀ®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
 .SH ÊÖ¤êÃÍ
 ¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¡¢¥¨¥ó¥È¥ê¤¬»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤ä¡¢
 ½èÍý¤Î²áÄø¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï NULL ¤òÊÖ¤¹¡£
 ÊÖ¤êÃͤ¬ \fBint\fR ¤Ç¤¢¤ë¥ë¡¼¥Á¥ó¤Ï¡¢
-À®¸ù¤·¤¿¤é 0 ¤ò¡¢¼ºÇÔ¤·¤¿¤é -1 ¤òÊÖ¤¹¡£
+À®¸ù¤·¤¿¤é 0 ¤ò¡¢¼ºÇÔ¤·¤¿¤é \-1 ¤òÊÖ¤¹¡£
 .SH ·Ù¹ð
 shadow¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤ÏÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢
 ¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤À¤±¤¬ÍøÍѤǤ­¤ë¡£
index 33e14eb065ea0900c838bbaa7f87cb2c9b3fd3fa..d4694777e3ec633bf1ad5341854995725449e841 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: su.1,v 1.6 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: su.1,v 1.7 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -39,7 +39,7 @@
 .SH Ì¾Á°
 su \- ¥æ¡¼¥¶ID¤òÊѹ¹¤¹¤ë¡£¤Þ¤¿¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ë¤Ê¤ë
 .SH ½ñ¼°
-\fBsu\fR [\fB-\fR] [\fIusername\fR [\fIargs\fR]]
+\fBsu\fR [\fB\-\fR] [\fIusername\fR [\fIargs\fR]]
 .SH ÀâÌÀ
 \fBsu\fR ¤Ï¥í¥°¥¤¥ó¥»¥Ã¥·¥ç¥óÃæ¤ËÊ̤Υ桼¥¶¤Ë¤Ê¤ë¤¿¤á¤ËÍѤ¤¤ë¡£
 ¥æ¡¼¥¶Ì¾¤ò»ØÄꤻ¤º¤Ëµ¯Æ°¤·¤¿¾ì¹ç¡¢
@@ -49,7 +49,7 @@ su \- 
 .PP
 ¥æ¡¼¥¶Ì¾¤Î¸å¤í¤ËÄɲäΰú¿ô¤òÍ¿¤¨¤ë¤³¤È¤â¤Ç¤­¡¢
 ¤½¤Î¾ì¹ç°ú¿ô¤Ï¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤ËÅϤµ¤ì¤ë¡£
-ÆÃ¤Ë¡¢¤½¤Î°ú¿ô¤Î°ì¤Ä¤È¤·¤Æ \fB-c\fR ¤òÅϤ·¤¿¾ì¹ç¡¢
+ÆÃ¤Ë¡¢¤½¤Î°ú¿ô¤Î°ì¤Ä¤È¤·¤Æ \fB\-c\fR ¤òÅϤ·¤¿¾ì¹ç¡¢
 ¤½¤ì¤Ë³¤¯°ú¿ô¤ÏÂçÉôʬ¤Î¥³¥Þ¥ó¥É¥¤¥ó¥¿¥×¥ê¥¿¤Ë¥³¥Þ¥ó¥É¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¡£
 ¥³¥Þ¥ó¥É¤Ï¤½¤Î¥æ¡¼¥¶¤Ë (\fI/etc/passwd\fR ¤Ç)
 »ØÄꤵ¤ì¤Æ¤¤¤ë¥·¥§¥ë¤Ç¼Â¹Ô¤µ¤ì¤ë¡£
index 444805ebfc2a36797cbec40970d4b674adb5c77e..c9c6df703db12591bcfa5aed7a72fa250d0e7c11 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: suauth.5,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\"$Id: suauth.5,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\"
 .\" Japanese Version Copyright (c) 1997 Kazuyoshi Furutaka
 .\"         all rights reserved.
@@ -31,10 +31,10 @@ su 
 # ¤Ç»Ï¤Þ¤ë¹Ô¤Ï¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤ì¡¢Ìµ»ë¤µ¤ì¤ë¡£
 .PP
 .RS
-to-id:from-id:ACTION
+to\-id:from\-id:ACTION
 .RE
 .PP
-¤³¤³¤Ç to-id ¤Ï¡¢
+¤³¤³¤Ç to\-id ¤Ï¡¢
 .B ALL
 ¤È¤¤¤¦Ã±¸ì¡¢
 ¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥æ¡¼¥¶Ì¾¤Î¥ê¥¹¥È¡¢
@@ -42,7 +42,7 @@ to-id:from-id:ACTION
 ¤È¤¤¤¦Ã±¸ì°Ê¹ß¤ËÃÖ¤«¤ì¤¿ "," ¶èÀÚ¤ê¤Î¥æ¡¼¥¶Ì¾¥ê¥¹¥È¡¢
 ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¡£
 .PP
-from-id ¤Ï to-id ¤ÈƱ¤¸½ñ¼°¤Ç¤¢¤ê¡¢¹¹¤Ë
+from\-id ¤Ï to\-id ¤ÈƱ¤¸½ñ¼°¤Ç¤¢¤ê¡¢¹¹¤Ë
 .B GROUP
 ¤È¤¤¤¦Ã±¸ì¤â»ÈÍѤǤ­¤ë¡£
 .B ALL EXCEPT GROUP
index a845402ae5c5c88485100bd8895fef5f9cf97a72..a6e675ddc6c8901dc861b49a744669f319a01bb6 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: sulogin.8,v 1.5 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: sulogin.8,v 1.6 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1989 - 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -36,7 +36,7 @@
 .SH Ì¾Á°
 sulogin \- ¥·¥ó¥°¥ë¥æ¡¼¥¶ login
 .SH ½ñ¼°
-\fBsulogin\fR [\fItty-device\fR]
+\fBsulogin\fR [\fItty\-device\fR]
 .SH ÀâÌÀ
 .B sulogin
 ¤Ï¡¢¥·¥ó¥°¥ë¥æ¡¼¥¶¥â¡¼¥É¤Î»þ¡¢
@@ -48,7 +48,7 @@ sulogin \- 
 .PP
 ¼¡¤Î¤è¤¦¤Ê¥×¥í¥ó¥×¥È¤¬½Ð¤ë¡£
 .IP "" .5i
-Type control-d to proceed with normal startup,
+Type control\-d to proceed with normal startup,
 .br
 (or give root password for system maintenance):
 .PP
index e06d4dd82aa3ec5396368edca6794b386779a7d9..35a52a355390f365952e5274082c1de7f1c53c15 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: useradd.8,v 1.7 2004/11/04 03:06:32 kloczek Exp $
+.\" $Id: useradd.8,v 1.9 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 useradd \- ¿·µ¬¥æ¡¼¥¶¤ÎºîÀ®¡¦¿·µ¬¥æ¡¼¥¶¤Î¥Ç¥Õ¥©¥ë¥È¾ðÊó¤Î¹¹¿·
 .SH ½ñ¼°
 .TP 8
-\fBuseradd\fR [\fB-c\fR \fIcomment\fR] [\fB-d\fR \fIhome_dir\fR]
+\fBuseradd\fR [\fB\-c\fR \fIcomment\fR] [\fB\-d\fR \fIhome_dir\fR]
 .br
-[\fB-e\fR \fIexpire_date\fR] [\fB-f\fR \fIinactive_time\fR]
+[\fB\-e\fR \fIexpire_date\fR] [\fB\-f\fR \fIinactive_time\fR]
 .br
-[\fB-g\fR \fIinitial_group\fR] [\fB-G\fR \fIgroup\fR[,...]]
+[\fB\-g\fR \fIinitial_group\fR] [\fB\-G\fR \fIgroup\fR[,...]]
 .br
-[\fB-m\fR [\fB-k\fR \fIskeleton_dir\fR]] [\fB-o\fR] [\fB-p\fR \fIpasswd\fR]
+[\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\-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]
+\fBuseradd\fR \fB\-D\fR [\fB\-g\fR \fIdefault_group\fR] [\fB\-b\fR \fIdefault_home\fR]
 .br
-[\fB-e\fI default_expire_date\fR] [\fB-f\fI default_inactive\fR]
+[\fB\-e\fR \fIdefault_expire_date\fR] [\fB\-f\fR \fIdefault_inactive\fR]
 .br
-[\fB-s\fI default_shell\fR]
+[\fB\-s\fR \fIdefault_shell\fR]
 .SH ÀâÌÀ
 .SS ¿·µ¬¥æ¡¼¥¶¤ÎºîÀ®
-\fB-D\fR ¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¡¢
+\fB\-D\fR ¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¡¢
 \fBuseradd\fR ¥³¥Þ¥ó¥É¤Ï
 ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÃͤȥǥե©¥ë¥È¤ÎÀßÄêÃͤò¤â¤È¤Ë
 ¿·µ¬¥æ¡¼¥¶¤Î¥¢¥«¥¦¥ó¥È¤òºîÀ®¤¹¤ë¡£
@@ -67,79 +67,79 @@ useradd \- 
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬ºîÀ®¤µ¤ì¡¢
 ÀßÄê¥Õ¥¡¥¤¥ë¤¬¥³¥Ô¡¼¤µ¤ì¤ë¡£
 \fBuseradd\fR ¥³¥Þ¥ó¥É¤Î¥ª¥×¥·¥ç¥ó¤Ï¼¡¤ÎÄ̤ꡣ
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤ËÄɲ乤뿷µ¬¥æ¡¼¥¶¤Î¥³¥á¥ó¥È¥Õ¥£¡¼¥ë¥É¡£
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 ¿·µ¬¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¤ò \fIhome_dir\fR ¤Ë¤¹¤ë¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï \fIlogin\fR ¤ò
 \fIdefault_home\fR ¤ËÉÕ¤±²Ã¤¨¤¿¤â¤Î¤¬¥í¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¤È¤Ê¤ë¡£
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤¬»ÈÍÑÉÔǽ¤Ë¤Ê¤ëÆüÉÕ¡£
-ÆüÉդϠ\fIYYYY-MM-DD\fR ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£
-.IP "\fB-f \fIinactive_days\fR"
+ÆüÉդϠ\fIYYYY\-MM\-DD\fR ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ¥Ñ¥¹¥ï¡¼¥É¤Î»ÈÍÑ´ü¸Â¤¬ÀÚ¤ì¤Æ¤«¤é¥¢¥«¥¦¥ó¥È¤¬±Êµ×¤Ë»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô¡£
 0 ¤Ë¤¹¤ë¤È¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸Â¤¬ÀÚ¤ì¤ë¤ÈƱ»þ¤Ë¤³¤Î¥¢¥«¥¦¥ó¥È¤Ï»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¡£
--1 ¤Ë¤¹¤ë¤È¤³¤Îµ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϠ-1¡£
-.IP "\fB-g \fIinitial_group\fR"
+\-1 ¤Ë¤¹¤ë¤È¤³¤Îµ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϠ\-1¡£
+.IP "\fB\-g\fR \fIinitial_group\fR"
 ¥æ¡¼¥¶¤Î°¤¹¤ë¼ç¥°¥ë¡¼¥×¤Î¥°¥ë¡¼¥×̾¤Þ¤¿¤Ï ID¡£
 ¥°¥ë¡¼¥×̾¤Ï¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥°¥ë¡¼¥× ID ¤Ï´û¸¤Î¥°¥ë¡¼¥×¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥Ç¥Õ¥©¥ë¥È¤Î¥°¥ë¡¼¥× ID ¤Ï 1 ¤«¡¢
 ¤Þ¤¿¤Ï \fI/etc/default/useradd\fR
 ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ì¤Ð¤½¤ì¤Ë½¾¤¦¡£
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ¥æ¡¼¥¶¤Î°¤¹¤ëÊä½õ¥°¥ë¡¼¥× (supplementary groups) ¤Î¥ê¥¹¥È¡£
 ¥°¥ë¡¼¥×¤Ï¥³¥ó¥Þ¤Ç¶èÀڤꡢ´Ö¤Ë¶õÇò¤òÆþ¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-»ØÄê¤Ç¤­¤ë¥°¥ë¡¼¥×¤Ë¤Ï \fB-g\fR ¥ª¥×¥·¥ç¥ó¤ÈƱÍͤÎÀ©¸Â¤¬¤¢¤ë¡£
+»ØÄê¤Ç¤­¤ë¥°¥ë¡¼¥×¤Ë¤Ï \fB\-g\fR ¥ª¥×¥·¥ç¥ó¤ÈƱÍͤÎÀ©¸Â¤¬¤¢¤ë¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥æ¡¼¥¶¤Ï¼ç¥°¥ë¡¼¥×¤Î¤ß¤Ë°¤¹¤ë¡£
-.IP \fB-m\fR
+.IP \fB\-m\fR
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ë¡£
-\fB-k\fR ¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ØÄꤹ¤ë¤È \fIskeleton_dir\fR °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¡¢
+\fB\-k\fR ¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ØÄꤹ¤ë¤È \fIskeleton_dir\fR °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¡¢
 »ØÄꤷ¤Ê¤¤¤È \fI/etc/skel\fR °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¡¢
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢
 \fIskeleton_dir\fR ¤Þ¤¿¤Ï \fI/etc/skel\fR
 ¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤âºîÀ®¤µ¤ì¤ë¡£
-\fB-k\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
-\fB-m\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»È¤ï¤ì¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£
+\fB\-k\fR ¥ª¥×¥·¥ç¥ó¤Ï¡¢
+\fB\-m\fR ¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë»È¤ï¤ì¤ë¾ì¹ç¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤é¤º¡¢¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤â¤·¤Ê¤¤¡£
-.IP "\fB-o\fR"
+.IP "\fB\-o\fR"
 ½ÅÊ£¤·¤¿ (¸ÇÍ­¤Ç¤Ê¤¤) UID ¤Ç¥æ¡¼¥¶¤òºîÀ®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£
-.IP "\fB-p \fIpasswd\fR"
+.IP "\fB\-p\fR \fIpasswd\fR"
 \fBcrypt\fR(3) ¤ÎÊÖ¤êÃͤǤ¢¤ë°Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¢¥«¥¦¥ó¥È¤Ï»È¤¨¤Ê¤¤¾õÂ֤Ȥʤ롣
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 ¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤Î̾Á°¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¶õÇò¤È¤Ê¤ê¡¢
 ¥·¥¹¥Æ¥à¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤òÁª¤Ö¡£
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 ¥æ¡¼¥¶¤Î ID Èֹ档
-¤³¤ÎÃͤϡ¢\fB-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+¤³¤ÎÃͤϡ¢\fB\-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¤Þ¤¿ÈóÉéÃͤǤʤ¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ 999 ¤ª¤è¤Ó¾¤Î¤¢¤é¤æ¤ë´û¸¥æ¡¼¥¶¤Î ID ¤è¤ê¤âÂ礭¤¤¡¢
 ºÇ¾®¤Î¿ôÃͤȤʤ롣
 0 ¤«¤é 999 ¤Þ¤Ç¤ÎÃͤϡ¢
 Ä̾亮¥¹¥Æ¥àÍѤΥ¢¥«¥¦¥ó¥È¤ËͽÌó¤µ¤ì¤Æ¤¤¤ë¡£
 .SS ¥Ç¥Õ¥©¥ë¥ÈÃͤÎÊѹ¹
-\fB-D\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
+\fB\-D\fR ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢
 \fBuseradd\fR ¤Ï¸½ºß¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤòɽ¼¨¤¹¤ë¤«¡¢
 ¤Þ¤¿¤Ï¥ª¥×¥·¥ç¥ó¤ÇÍ¿¤¨¤é¤ì¤¿Ãͤ˱þ¤¸¤Æ¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤¹¤ë¡£
 »ÈÍѲÄǽ¤Ê¥ª¥×¥·¥ç¥ó¤Ï¼¡¤ÎÄ̤ꡣ
-.IP "\fB-b \fIdefault_home\fR"
+.IP "\fB\-b\fR \fIdefault_home\fR"
 ¿·µ¬¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¡£
-¿·µ¬¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤ÎºîÀ®»þ¤Ë \fB-d\fI ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤¤¤È¡¢
+¿·µ¬¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤ÎºîÀ®»þ¤Ë \fB\-d\fI ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤¤¤È¡¢
 \fIdefault_home\fR ¤Î¸å¤Ë¥æ¡¼¥¶Ì¾¤òÉÕ¤±²Ã¤¨¤¿¤â¤Î¤¬
 ¿·µ¬¥Ç¥£¥ì¥¯¥È¥ê̾¤È¤·¤Æ»È¤ï¤ì¤ë¡£
-.IP "\fB-e \fIdefault_expire_date\fR"
+.IP "\fB\-e\fR \fIdefault_expire_date\fR"
 ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤¬»ÈÍÑÉÔǽ¤È¤Ê¤ëÆüÉÕ¡£
-.IP "\fB-f \fIdefault_inactive\fR"
+.IP "\fB\-f\fR \fIdefault_inactive\fR"
 ¥Ñ¥¹¥ï¡¼¥É¤Î»ÈÍÑ´ü¸Â¤¬ÀÚ¤ì¤Æ¤«¤é¥¢¥«¥¦¥ó¥È¤¬»ÈÍÑÉÔǽ¤È¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô¡£
-.IP "\fB-g \fIdefault_group\fR"
+.IP "\fB\-g\fR \fIdefault_group\fR"
 ¿·µ¬¥æ¡¼¥¶¤Î°¤¹¤ë¼ç¥°¥ë¡¼¥×¤Î¥°¥ë¡¼¥×̾¤Þ¤¿¤Ï¥°¥ë¡¼¥× ID¡£
 ¥°¥ë¡¼¥×̾¤Ï¤¹¤Ç¤Ë¸ºß¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥°¥ë¡¼¥× ID ¤Ï´û¸¤Î¥°¥ë¡¼¥×¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.IP "\fB-s \fIdefault_shell\fR"
+.IP "\fB\-s\fR \fIdefault_shell\fR"
 ¿·µ¬¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥·¥§¥ë¡£
 »ØÄꤵ¤ì¤¿¥×¥í¥°¥é¥à¤Ï¡¢
 º£¸åºî¤é¤ì¤ë¤¹¤Ù¤Æ¤Î¿·µ¬¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤ËŬÍѤµ¤ì¤ë¡£
@@ -157,11 +157,11 @@ NIS 
 .br
 \fI/etc/shadow\fR \- °ÂÁ´¤Ê¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/group\fR \ - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \ \- ¥°¥ë¡¼¥×¾ðÊó
 .br
 \fI/etc/default/useradd\fR \- ¥Ç¥Õ¥©¥ë¥È¾ðÊó
 .br
-\fI/etc/skel/\fR \ - ¥Õ¥¡¥¤¥ë¤Î¿÷·Á¤¬ÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê
+\fI/etc/skel/\fR \ \- ¥Õ¥¡¥¤¥ë¤Î¿÷·Á¤¬ÃÖ¤«¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê
 .SH ´ØÏ¢¹àÌÜ
 .BR chfn (1),
 .BR chsh (1),
index 9716e6a958e80322cf3345fc38049a714778ac98..60aac44f76b357680f337e9849b852b976bbcc5f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: userdel.8,v 1.6 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: userdel.8,v 1.7 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 userdel \- ¥æ¡¼¥¶¤Î¥¢¥«¥¦¥ó¥È¤È´ØÏ¢¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë
 .SH ½ñ¼°
 .B userdel
-[\fB-r\fR]
+[\fB\-r\fR]
 .I login
 .SH ÀâÌÀ
 \fBuserdel\fR ¥³¥Þ¥ó¥É¤Ï¡¢¥·¥¹¥Æ¥à¥¢¥«¥¦¥ó¥È¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤·¡¢
 ¥æ¡¼¥¶ \fIlogin\fR ¤ËÂбþ¤¹¤ë¤¹¤Ù¤Æ¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë¡£
 ºï½ü¤µ¤ì¤ë¥æ¡¼¥¶¤Ï¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 \fBuserdel\fR ¥³¥Þ¥ó¥É¤ËŬÍѤǤ­¤ë¥ª¥×¥·¥ç¥ó¤Ï°Ê²¼¤ÎÄ̤ꡣ
-.IP \fB-r\fR
+.IP \fB\-r\fR
 ¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥êÃæ¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¼«ÂΤȥ桼¥¶¤Î¥á¡¼¥ë¥¹¥×¡¼¥ë¤â¾Ãµî¤¹¤ë¡£
 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÃæ¤Î¤Û¤«¤Î¾ì½ê¤Ë¤¢¤ë¤½¤Î¥æ¡¼¥¶¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢
@@ -56,7 +56,7 @@ userdel \- 
 .br
 \fI/etc/shadow\fR \- °ÂÁ´¤Ê¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/group\fR \ - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \ \- ¥°¥ë¡¼¥×¾ðÊó
 .SH ·Ù¹ð
 \fBuserdel\fR ¤Ï¡¢ºï½ü¤µ¤ì¤ë¥æ¡¼¥¶¤¬¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
 ¤½¤Î¥¢¥«¥¦¥ó¥È¤Îºï½ü¤òµö²Ä¤·¤Ê¤¤¡£
index 0dfe374135e8cf17cb5be95ed0f34bde77cfa854..891ebfcdb048094770277d9d2716450a2c3a4f4e 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: usermod.8,v 1.8 2004/11/04 03:06:32 kloczek Exp $
+.\" $Id: usermod.8,v 1.10 2005/04/05 19:08:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH Ì¾Á°
 usermod \- ¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤ò½¤Àµ¤¹¤ë
 .SH ½ñ¼°
-\fBusermod\fR [\fB-c\fR \fIcomment\fR] [\fB-d\fR \fIhome_dir\fR [\fB-m\fR]]
+\fBusermod\fR [\fB\-c\fR \fIcomment\fR] [\fB\-d\fR \fIhome_dir\fR [\fB\-m\fR]]
 .br
-[\fB-e\fR \fIexpire_date\fR] [\fB-f\fR \fIinactive_time\fR]
+[\fB\-e\fR \fIexpire_date\fR] [\fB\-f\fR \fIinactive_time\fR]
 .br
-[\fB-g\fR \fIinitial_group\fR] [\fB-G\fR \fIgroup\fR [,...]]
+[\fB\-g\fR \fIinitial_group\fR] [\fB\-G\fR \fIgroup\fR [,...]]
 .br
-[\fB-l\fR \fIlogin_name\fR] [\fB-p\fR \fIpasswd\fR]
+[\fB\-l\fR \fIlogin_name\fR] [\fB\-p\fR \fIpasswd\fR]
 .br
-[\fB-s\fR \fIshell\fR] [\fB-u\fR \fIuid\fR [\fB-o\fR]] [\fB-L\fR|\fB-U\fR]
+[\fB\-s\fR \fIshell\fR] [\fB\-u\fR \fIuid\fR [\fB\-o\fR]] [\fB\-L\fR|\fB\-U\fR]
 \fIlogin\fR
 .SH ÀâÌÀ
 \fBusermod\fR ¥³¥Þ¥ó¥É¤Ï¡¢
 ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç¤Î»ØÄê¤Ë¤è¤Ã¤Æ¡¢
 ¥·¥¹¥Æ¥à¥¢¥«¥¦¥ó¥È¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤¹¤ë¡£
 \fBusermod\fR ¥³¥Þ¥ó¥É¤Ë»ØÄê¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤Ï¼¡¤ÎÄ̤ꡣ
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥³¥á¥ó¥È¥Õ¥£¡¼¥ë¥É¤ËÍ¿¤¨¤ë¿·¤·¤¤ÃÍ¡£
 Ä̾ï¤Ï
 .BR chfn (1)
 ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 ¿·¤·¤¤¥í¥°¥¤¥ó¥Ç¥£¥ì¥¯¥È¥ê¡£
-\fB-m\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
+\fB\-m\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¤È¡¢
 ¸½ºß¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¿È¤¬¿·¤·¤¤¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤µ¤ì¤ë
 (¸å¼Ô¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¿·¤¿¤ËºîÀ®¤µ¤ì¤ë)¡£
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ¤½¤Î¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¤¬»ÈÍÑÉÔǽ¤Ë¤Ê¤ëÆüÉÕ¡£
-ÆüÉդϠ\fIYYYY-MM-DD\fR ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£
-.IP "\fB-f \fIinactive_days\fR"
+ÆüÉդϠ\fIYYYY\-MM\-DD\fR ¤È¤¤¤¦½ñ¼°¤Ç»ØÄꤹ¤ë¡£
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ¥Ñ¥¹¥ï¡¼¥É¤Î»ÈÍÑ´ü¸Â¤¬ÀÚ¤ì¤Æ¤«¤é¥¢¥«¥¦¥ó¥È¤¬±Êµ×¤Ë»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¤Þ¤Ç¤ÎÆü¿ô¡£
 0 ¤Ë¤¹¤ë¤È¡¢
 ¥Ñ¥¹¥ï¡¼¥É¤Î´ü¸Â¤¬ÀÚ¤ì¤ë¤ÈƱ»þ¤Ë¤³¤Î¥¢¥«¥¦¥ó¥È¤Ï»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¡£
--1 ¤Ë¤¹¤ë¤È¤³¤Îµ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϠ-1¡£
-.IP "\fB-g \fIinitial_group\fR"
+\-1 ¤Ë¤¹¤ë¤È¤³¤Îµ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϠ\-1¡£
+.IP "\fB\-g\fR \fIinitial_group\fR"
 
 ¿·¤¿¤Ë¤½¤Î¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó»þ½é´ü¥°¥ë¡¼¥×¤È¤¹¤ë¥°¥ë¡¼¥×̾¤Þ¤¿¤Ï ID¡£
 ¥°¥ë¡¼¥×̾¤Ï´û¤Ë¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥°¥ë¡¼¥×ÈÖ¹æ¤Ï´û¸¤Î¥°¥ë¡¼¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 ¥Ç¥Õ¥©¥ë¥È¤Î¥°¥ë¡¼¥×ÈÖ¹æ¤Ï 1¡£
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ¥æ¡¼¥¶¤¬Â°¤¹¤ëÊä½õ¥°¥ë¡¼¥× (supplementary groups) ¤Î¥ê¥¹¥È¡£
 ¥°¥ë¡¼¥×¤Ï¥³¥ó¥Þ¤Ç¶èÀڤꡢ´Ö¤Ë¶õÇòʸ»ú¤òÆþ¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-»ØÄê¤Ç¤­¤ë¥°¥ë¡¼¥×¤Ë¤Ï \fB-g\fR ¥ª¥×¥·¥ç¥ó¤ÈƱÍͤÎÀ©¸Â¤¬¤¢¤ë¡£
+»ØÄê¤Ç¤­¤ë¥°¥ë¡¼¥×¤Ë¤Ï \fB\-g\fR ¥ª¥×¥·¥ç¥ó¤ÈƱÍͤÎÀ©¸Â¤¬¤¢¤ë¡£
 ¸½ºß¤½¤Î¥æ¡¼¥¶¤¬¡¢
 ¿·¤·¤¤¥ê¥¹¥È¤Ë¤Ê¤¤¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
 ¤½¤Î¥°¥ë¡¼¥×¤«¤éºï½ü¤µ¤ì¤ë¡£
-.IP "\fB-l \fIlogin_name\fR"
+.IP "\fB\-l\fR \fIlogin_name\fR"
 ¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó̾¤ò \fIlogin\fR ¤«¤é \fIlogin_name\fR ¤ËÊѹ¹¤¹¤ë¡£
 Â¾¤Ï²¿¤âÊѹ¹¤·¤Ê¤¤¤Î¤Ç¡¢
 ¤ª¤½¤é¤¯¿·¤·¤¤¥í¥°¥¤¥ó̾¤Ë¹ç¤ï¤»¤Æ
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£
-.IP "\fB-p \fIpasswd\fR"                                                
+.IP "\fB\-p\fR \fIpasswd\fR"                                                
 \fBcrypt\fR(3) ¤ÎÊÖ¤êÃͤǤ¢¤ë°Å¹æ²½¥Ñ¥¹¥ï¡¼¥É¡£
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 ¥æ¡¼¥¶¤Î¿·¤·¤¤¥í¥°¥¤¥ó¥·¥§¥ë¤Î̾Á°¡£
 ¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò¶õÇò¤Ë¤·¤¿¾ì¹ç¤Ï¡¢
 ¥·¥¹¥Æ¥à¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤òÁªÂò¤¹¤ë¡£
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 ¥æ¡¼¥¶¤Î ID Èֹ档
-¤³¤ÎÃͤϡ¢\fB-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+¤³¤ÎÃͤϡ¢\fB\-o\fR ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤ë¾ì¹ç¤ò½ü¤­¡¢Â¾¤È½ÅÊ£¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 ¤Þ¤¿ÈóÉéÃͤǤʤ¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 0 ¤«¤é 999 ¤Þ¤Ç¤ÎÃͤϡ¢Ä̾亮¥¹¥Æ¥à¥¢¥«¥¦¥ó¥ÈÍѤËͽÌó¤µ¤ì¤Æ¤¤¤ë¡£
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¡¢
 ¤½¤Î¥æ¡¼¥¶½êÍ­¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Î¥æ¡¼¥¶ ID ¤Ï¡¢
 ¼«Æ°Åª¤Ë¿·¤·¤¤ÃͤËÊѹ¹¤µ¤ì¤ë¡£
 ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ï¼êºî¶È¤ÇÊѹ¹¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.IP "\fB-L\fR"
+.IP "\fB\-L\fR"
 ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¥í¥Ã¥¯¤¹¤ë¡£
 ¤³¤ì¤Ï°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ÎÁ°¤Ë '!' ¤òÄɲä·¡¢
 ¼Â¼ÁŪ¤Ë¥Ñ¥¹¥ï¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤ò \fI-p\fR ¤ä \fI-U\fR ¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-.IP "\fB-U\fR"
+¤³¤Î¥ª¥×¥·¥ç¥ó¤ò \fI\-p\fR ¤ä \fI\-U\fR ¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
+.IP "\fB\-U\fR"
 ¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¥¢¥ó¥í¥Ã¥¯¤¹¤ë¡£
 ¤³¤ì¤Ï°Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤ÎÀèÆ¬¤Î '!' ¤ò¼è¤ê½ü¤¯¡£
-¤³¤Î¥ª¥×¥·¥ç¥ó¤ò \fI-p\fR ¤ä \fI-L\fR ¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
+¤³¤Î¥ª¥×¥·¥ç¥ó¤ò \fI\-p\fR ¤ä \fI\-L\fR ¤ÈƱ»þ¤ËÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
 .SH ·Ù¹ð
 \fBusermod\fR
 ¤Ï¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Î̾Á°¤òÊѹ¹¤Ç¤­¤Ê¤¤¡£
@@ -130,7 +130,7 @@ NIS 
 .br
 \fI/etc/shadow\fR \- °ÂÁ´¤Ê¥æ¡¼¥¶¥¢¥«¥¦¥ó¥È¾ðÊó
 .br
-\fI/etc/group\fR \ - ¥°¥ë¡¼¥×¾ðÊó
+\fI/etc/group\fR \ \- ¥°¥ë¡¼¥×¾ðÊó
 .SH ´ØÏ¢¹àÌÜ
 .BR chfn (1),
 .BR chsh (1),
index e4e48b220278a46f7ba0e2dc624af1b184a9ccc9..3a86c54c95968f3dcdfdce11c27e5243652359e3 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: vipw.8,v 1.4 2003/04/28 02:14:00 kloczek Exp $
+.\" $Id: vipw.8,v 1.5 2005/04/05 19:08:55 kloczek Exp $
 .\"
 .\" Japanese Version Copyright (c) 2001 Maki KURODA
 .\"     all right reserved,
 .SH Ì¾Á°
 vipw, vigr \- password, group ¤È¤½¤ì¤¾¤ì¤Î shadow ¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë
 .SH ½ñ¼°
-\fBvipw\fR [\fB-s\fR]
+\fBvipw\fR [\fB\-s\fR]
 .br
-\fBvigr\fR [\fB-s\fR]
+\fBvigr\fR [\fB\-s\fR]
 .SH ÀâÌÀ
 .BR vipw " ¤È " vigr
 ¤Ï¡¢¤½¤ì¤¾¤ì
 \fI/etc/passwd\fR " ¤È " \fI/etc/group\fR
 ¤òÊÔ½¸¤¹¤ë¡£
-.B -s
+.B \-s
 ¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î shadow ²½ÈǤǤ¢¤ë
 \fI/etc/shadow\fR ¤È \fI/etc/gshadow\fR
 ¤ò¤½¤ì¤¾¤ìÊÔ½¸¤¹¤ë¡£
index f9f4d57f823998094b3937dc41d0fbe0b8ba3cb8..d1b83a2e22a2beb66dd1aff4eb535b332a3b9656 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -87,17 +87,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -192,9 +191,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/ko/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/ko/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/ko/Makefile
+         $(AUTOMAKE) --foreign  man/ko/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 32309435b02ba560c2d5bfcea6afa8c4ad5599a2..0ad8b51c9b6cc1bc4ad0ff2ed6748b115f4e0b82 100644 (file)
@@ -1,22 +1,15 @@
+.\" $Id: chfn.1,v 1.2 2005/04/05 19:08:56 kloczek Exp $
+.\" (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
-.\"  chfn.1 -- change your finger information
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.1 $
-.\"  $Date: 2002/03/13 19:03:01 $
-.\"
+.\" this program is free software.  you can redistribute it and
+.\" modify it under the terms of the gnu general public license.
+.\" there is no warranty.
 .TH CHFN 1 "October 13 1994" "chfn" "Linux Reference Manual"
 .SH NAME
 chfn \- »ç¿ëÀÚ finger Á¤º¸¸¦ ¹Ù²Û´Ù.
 .SH SYNOPSIS
-.B chfn
-[\ \-f\ full-name\ ] [\ \-o\ office\ ] [\ \-p\ office-phone\ ]
-[\ \-h\ home-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
+\fBchfn\fR [\fB\-f\fR \fIfull\-name\fR] [\fB\-o\fR \fIoffice\fR] [\fB\-p\fR \fIoffice\-phone\fR]
+[\ \-h\ home\-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
 .SH DESCRIPTION
 .B chfn
 ¸í·ÉÀº »ç¿ëÀÚÀÇ finger Á¤º¸¸¦ ¹Ù²Û´Ù. À̰ÍÀº 
@@ -37,22 +30,22 @@ chfn \- 
 ±×³É Enter ±Û¼è¸¦ ´©¸£¸é µÈ´Ù.
 .SH OPTIONS
 .TP
-.I "\-f, \-\-full-name"
+.I "\-f, \-\-full\-name"
 »ç¿ëÀÚ ½ÇÀç À̸§
 .TP
 .I "\-o, \-\-office"
 »ç¿ëÀÚ Á÷Àå
 .TP
-.I "\-p, \-\-office-phone"
+.I "\-p, \-\-office\-phone"
 »ç¿ëÀÚ Á÷Àå ÀüÈ­¹øÈ£
 .TP
-.I "\-h, \-\-home-phone"
+.I "\-h, \-\-home\-phone"
 »ç¿ëÀÚ Áý ÀüÈ­ ¹øÈ£
 .TP
 .I "\-u, \-\-help"
 µµ¿ò¸»À» º¸¿©ÁÖ°í ¸¶Ä£´Ù.
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 ¹öÀü Á¤º¸¸¦ º¸¿©ÁÖ°í ¸¶Ä£´Ù.
 .SH "SEE ALSO"
 .BR finger (1),
index 7a545bdb51e7a8cbc73362d367e89110bc0273ec..2b5c0f603e7a5e50d09b543a7b0c1a1a04483632 100644 (file)
@@ -1,15 +1,9 @@
+.\" $Id: chsh.1,v 1.2 2005/04/05 19:08:56 kloczek Exp $
+.\" (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
-.\"  chsh.1 -- change your login shell
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.1 $
-.\"  $Date: 2002/03/13 19:03:01 $
-.\"
+.\" this program is free software.  you can redistribute it and
+.\" modify it under the terms of the gnu general public license.
+.\" there is no warranty.
 .TH CHSH 1 "October 13 1994" "chsh" "Linux Reference Manual"
 .SH NAME
 chsh \- »ç¿ëÀÚ ·Î±×ÀΠ½©À» ¹Ù²Û´Ù.
@@ -32,14 +26,14 @@ chsh \- 
 .I "\-s, \-\-shell"
 ÁöÁ¤Çϴ ½©À» ¾ÕÀ¸·Î »ç¿ëÇÒ ·Î±×ÀΠ½©·Î ¹Ù²Û´Ù.
 .TP
-.I "\-l, \-\-list-shells"
+.I "\-l, \-\-list\-shells"
 .I /etc/shells
 ÆÄÀÏ ¾È¿¡ ÁöÁ¤µÈ ½©À» ³ª¿­ÇÏ°í ¸¶Ä£´Ù.
 .TP
 .I "\-u, \-\-help"
 µµ¿ò¸»À» º¸¿©ÁÖ°í ¸¶Ä£´Ù.
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 ¹öÀü Á¤º¸¸¦ º¸¿©ÁÖ°í ¸¶Ä£´Ù.
 .SH "SEE ALSO"
 .BR login (1),
index 10901a39797c8ee67157934e1c9fe2017c8e39af..71d9a9469f44623a963f63779878b16e70dee674 100644 (file)
@@ -1,4 +1,5 @@
-.TH GROUPS 1L "GNU ½© À¯Æ¿¸®Æ¼" "FSF" \" -*- nroff -*-
+.\"$Id: groups.1,v 1.2 2005/04/05 19:08:56 kloczek Exp $
+.TH GROUPS 1L "GNU ½© À¯Æ¿¸®Æ¼" "FSF" \" \-*\- nroff \-*\-
 .SH À̸§
 groups \- »ç¿ëÀÚ°¡ ¼ÓÇÑ ±×·ìµéÀ» Ãâ·ÂÇÑ´Ù
 .SH °³¿ä
index 232c734af97db5780c05f9505f5745a59ee19dea..0e418e2939cb1121ab198ddc587aee50350398ab 100644 (file)
@@ -142,7 +142,7 @@ CLASSES 
 CLASSES
 myclass1               tty1 tty2
 myclass2               tty3 @.foo.com
-.in -.5
+.in \-.5
 .fi
 .PP
 À­ ¿¹Á¦´Â 
@@ -176,7 +176,7 @@ GROUPS 
 GROUPS
 sys            tty1 @.bar.edu
 stud           myclass1 tty4
-.in -0.5
+.in \-0.5
 .fi
 .PP
 À­ ¿¹Á¦´Â 
@@ -202,7 +202,7 @@ USERS 
 USERS
 zacho          tty1 @130.225.16.0/255.255.255.0
 blue           tty3 myclass2
-.in -0.5
+.in \-0.5
 .fi
 .PP
 À­ ¿¹Á¦´Â zacho °èÁ¤ »ç¿ëÀڴ IP ÁÖ¼Ò°¡ 130.225.16.0 ºÎÅÍ 130.225.16.255
@@ -223,7 +223,7 @@ USERS 
 .PP
 .IP o
 @localhost ¹®ÀÚ¿­Àº ·ÎÄ® È£½ºÆ®¿¡¼­ telnet/rloginÀ¸·Î Á¢¼ÓÇϴ »ç¿ëÀÚ¸¦ 
-ÀǹÌÇÑ´Ù. Áï `xterm -e /bin/login' ¸í·É°°Àº °ÍÀÌ ½ÇÇàµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
+ÀǹÌÇÑ´Ù. Áï `xterm \-e /bin/login' ¸í·É°°Àº °ÍÀÌ ½ÇÇàµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
 .PP
 .IP o
 @.some.dom ¹®ÀÚ¿­Àº ¸®¸ðÆ® È£½ºÆ® Á¢¼Ó½Ã ±× »ç¿ëÀÚ°¡ rlogin/telnetÀ¸·Î
@@ -240,11 +240,11 @@ IP 
 ±× Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
 .PP
 .nf
-timespec    ::= '[' <day-or-hour> [':' <day-or-hour>]* ']'
+timespec    ::= '[' <day\-or\-hour> [':' <day\-or\-hour>]* ']'
 day         ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
 hour        ::= '0' | '1' | ... | '23'
 hourspec    ::= <hour> | <hour> '\-' <hour>
-day-or-hour ::= <day> | <hourspec>
+day\-or\-hour ::= <day> | <hourspec>
 .fi
 .PP
 ¿¹¸¦ µé¾î, [mon:tue:wed:thu:fri:8\-17]tty3 ¹®ÀÚ¿­Àº 
@@ -295,6 +295,6 @@ a\-b 
 .BR rlogind (8)
 Ç®±×¸²¿¡¼­ ÇÊ¿äÇÒ Áöµµ ¸ð¸¥´Ù.
 .SH ¸¸µçÀÌ
-Derived from BSD login 5.40 (5/9/89) by Michael Glad (glad@daimi.dk) for HP-UX
+Derived from BSD login 5.40 (5/9/89) by Michael Glad (glad@daimi.dk) for HP\-UX
 .br
 Ported to Linux 0.12: Peter Orbaek (poe@daimi.aau.dk)
index 5205265e9d160de2bc5c5345d5509e8fb58f7a03..d1071a3a87327f5a13147c79471e25e988ad459d 100644 (file)
@@ -1,5 +1,4 @@
-.\" Copyright (c) 1993 Michael Haardt (michael@moria.de), Fri Apr  2 11:32:09 MET DST 1993
-.\"
+.\"$Id: passwd.5,v 1.3 2005/04/05 19:08:56 kloczek Exp $
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
index 1ea6bb3681d80adb7ecafe0ed12aed6f1789ce42..d1142b41ebd53d133d7e61a98dc924d331636fa9 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: lastlog.8,v 1.19 2004/12/12 20:31:57 kloczek Exp $
+.\"$Id: lastlog.8,v 1.21 2005/04/05 18:47:50 kloczek Exp $
 .\" Copyright 1992, Phillip Street and Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -35,29 +35,29 @@ lastlog \- examine lastlog file
 .SH DESCRIPTION
 .PP
 \fBlastlog\fR formats and prints the contents of the last login log
-\fI/var/log/lastlog\fR file. The \fBlogin-name\fR, \fBport\fR, and \fBlast
+\fI/var/log/lastlog\fR file. The \fBlogin\-name\fR, \fBport\fR, and \fBlast
 login time\fR will be printed. The default (no flags) causes lastlog entries
 to be printed, sorted by their order in \fB/etc/passwd\fR.
 .SH OPTIONS
 .TP
 The options which apply to the \fBlastlog\fR command are:
-.IP "\fB-h\fR, \fB--help\fR"
+.IP "\fB\-h\fR, \fB\-\-help\fR"
 Print help message and exit.
-.IP "\fB-t\fR, \fB--time\fR \fIDAYS\fR"
+.IP "\fB\-t\fR, \fB\-\-time\fR \fIDAYS\fR"
 Print the lastlog records more recent than \fIDAYS\fR.
-.IP "\fB-u\fR, \fB--user\fR \fILOGIN\fR"
+.IP "\fB\-u\fR, \fB\-\-user\fR \fILOGIN\fR"
 Print the lastlog record for user with specified \fILOGIN\fR only.
 .TP
-The \fB-t\fR flag overrides the use of \fB-u\fR.
+The \fB\-t\fR flag overrides the use of \fB\-u\fR.
 .PP
 If the user has never logged in the message \fB"**Never logged in**"\fR will
 be displayed instead of the port and time.
 .SH FILES
-\fI/var/log/lastlog\fR \       - lastlog logging file
+\fI/var/log/lastlog\fR \- lastlog logging file
 .SH CAVEATS
 Large gaps in uid numbers will cause the lastlog program to run longer with
 no output to the screen (i.e. if mmdf=800 and last uid=170, program will
-appear to hang as it processes uid 171-799).
+appear to hang as it processes uid 171\-799).
 .SH AUTHORS
 Julianne Frances Haugh (jockgrrl@ix.netcom.com)
 .br
index 596d8fa4f7c284dfa7264083fb366007b9823c5c..7cbc875db5f301393ca25d879bc32bb04d024387 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: limits.5,v 1.7 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: limits.5,v 1.9 2005/04/05 18:47:50 kloczek Exp $
 .TH LIMITS 5
 .SH NAME
 limits \- Resource limits definition
@@ -8,7 +8,7 @@ config.h) describes the resource limits you wish to impose. It should be
 owned by root and readable by root account only.
 .PP
 By default no quotas are imposed on 'root'. In fact, there is no way to impose
-limits via this procedure to root-equiv accounts (accounts with UID 0).
+limits via this procedure to root\-equiv accounts (accounts with UID 0).
 .PP
 Each line describes a limit for a user in the form:
 .sp
@@ -27,7 +27,7 @@ D: max data size (KB)
 .br
 F: maximum filesize (KB)
 .br
-M: max locked-in-memory address space (KB)
+M: max locked\-in\-memory address space (KB)
 .br
 N: max number of open files
 .br
@@ -60,12 +60,11 @@ The default entry is denoted by username "\fB*\fP". If you have multiple
 \fIdefault\fP entries in your \fBLIMITS_FILE\fP, then the last one will be
 used as the default entry.
 .PP
-To completely disable limits for a user, a single dash "\fB-\fP" will do.
+To completely disable limits for a user, a single dash "\fB\-\fP" will do.
 .PP
 Also, please note that all limit settings are set PER LOGIN. They are not
 global, nor are they permanent. Perhaps global limits will come, but for
 now this will have to do ;)
-
 .SH FILES
 \fI/etc/limits\fR
 .SH SEE ALSO
index 0745a00018922164cddc85c4395da48d1839bd4c..3ebf245f717bf443f35acdae7c371c3114de129e 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: login.1,v 1.18 2004/12/11 20:05:01 kloczek Exp $
+.\" $Id: login.1,v 1.23 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAME
 login \- begin session on the system
 .SH SYNOPSIS
-\fBlogin\fR [\fB-p\fR] [\fIusername\fR] [\fIENV=VAR\fR ...]
+\fBlogin\fR [\fB\-p\fR] [\fIusername\fR] [\fIENV=VAR\fR ...]
 .br
-\fBlogin\fR [\fB-p\fR] [\fB-h \fIhost\fR] [\fB-f \fIusername\fR]
+\fBlogin\fR [\fB\-p\fR] [\fB\-h\fR \fIhost\fR] [\fB\-f\fR \fIusername\fR]
 .br
-\fBlogin\fR [\fB-p\fR] \fB-r \fIhost\fR
+\fBlogin\fR [\fB\-p\fR] \fB\-r\fR \fIhost\fR
 .SH DESCRIPTION
 \fBlogin\fR is used to establish a new session with the system. It is
 normally invoked automatically by responding to the \fIlogin:\fR prompt on
 the user\'s terminal. fBlogin\fR may be special to the shell and may not be
-invoked as a sub-process. Typically, \fBlogin\fR is treated by the shell as
+invoked as a sub\-process. Typically, \fBlogin\fR is treated by the shell as
 \fBexec login\fR which causes the user to exit from the current shell.
 Attempting to execute \fBlogin\fR from any shell but the login shell will
 produce an error message.
 .PP
-
-When invoked from the \fIlogin:\fR prompt, the user may enter environmental
-variables after the username. These variables are entered in the form
-\fBNAME=VALUE\fR. Not all variables may be set in the fashion, notably
-\fBPATH\fR, \fBHOME\fR and \fBSHELL\fR. Additionally, \fBIFS\fR may be
-inhibited if the user\'s login shell is \fB/bin/sh\fR.
-.PP
 The user is then prompted for a password, where appropriate. Echoing is
 disabled to prevent revealing the password. Only a small number of password
 failures are permitted before \fBlogin\fR exits and the communications link
@@ -63,7 +56,7 @@ password and the new password before continuing. Please refer to
 
 After a successful login, you will be informed of any system messages and
 the presence of mail. You may turn off the printing of the system message
-file, \fI/etc/motd\fR, by creating a zero-length file \fI.hushlogin\fR in
+file, \fI/etc/motd\fR, by creating a zero\-length file \fI.hushlogin\fR in
 your login directory. The mail message will be one of "\fBYou have new
 mail.\fR", "\fBYou have mail.\fR", or "\fBNo Mail.\fR" according to the
 condition of your mailbox.
@@ -90,16 +83,16 @@ A subsystem login is indicated by the presence of a "*" as the first
 character of the login shell. The given home directory will be used as
 the root of a new file system which the user is actually logged into.
 .SH OPTIONS
-.IP "\fB-f\fR"
+.IP "\fB\-f\fR"
 Do not perform authentication, user is preauthenticated.
-.IP "\fB-h\fR"
+.IP "\fB\-h\fR"
 Name of the remote host for this login.
-.IP "\fB-p\fR"
+.IP "\fB\-p\fR"
 Preserve environment.
-.IP "\fB-r\fR"
+.IP "\fB\-r\fR"
 Perform autologin protocol for rlogin.
 .PP
-The \fB-r\fP, \fB-h\fP and \fB-f\fP options are only used when \fBlogin\fP is
+The \fB\-r\fP, \fB\-h\fP and \fB\-f\fP options are only used when \fBlogin\fP is
 invoked by root.
 .SH CAVEATS
 This version of \fBlogin\fR has many compilation options, only some of which
@@ -107,21 +100,21 @@ may be in use at any particular site.
 .PP
 The location of files is subject to differences in system configuration.
 .SH FILES
-\fI/var/run/utmp\fR \- list of current login sessions
+\fI/var/run/utmp\fR            \- list of current login sessions
 .br
-\fI/var/log/wtmp\fR \- list of previous login sessions
+\fI/var/log/wtmp\fR            \- list of previous login sessions
 .br
-\fI/etc/passwd\fR \- user account information
+\fI/etc/passwd\fR              \- user account information
 .br
-\fI/etc/shadow\fR \- encrypted passwords and age information
+\fI/etc/shadow\fR              \- secure user account information
 .br
-\fI/etc/motd\fR \- system message file
+\fI/etc/motd\fR                        \- system message file
 .br
-\fI/etc/nologin\fR \- prevent non-root users from logging in
+\fI/etc/nologin\fR             \- prevent non\-root users from logging in
 .br
-\fI/etc/ttytype\fR \- list of terminal types
+\fI/etc/ttytype\fR             \- list of terminal types
 .br
-\fI$HOME/.hushlogin\fR \- suppress printing of system messages
+\fI$HOME/.hushlogin\fR \- suppress printing of system messages
 .SH SEE ALSO
 .BR mail (1),
 .BR passwd (1),
index 9e4312effd10843e89938b1246342b35c4c19935..c41e856924a9c1b71c3cbfc45b9cc61f27bbdd30 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: login.access.5,v 1.5 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: login.access.5,v 1.6 2005/04/02 16:10:24 kloczek Exp $
 .\" this is comment
 .TH LOGIN.ACCESS 5
 .\" .Dt SKEY.ACCESS 5
@@ -11,7 +11,7 @@ The \fIlogin.access\fR file specifies (user, host) combinations and/or
 refused.
 .PP
 When someone logs in, the \fIlogin.access\fR is scanned for the first entry
-that matches the (user, host) combination, or, in case of non-networked
+that matches the (user, host) combination, or, in case of non\-networked
 logins, the first entry that matches the (user, tty) combination. The
 permissions field of that table entry determines whether the login will be
 accepted or refused.
@@ -21,10 +21,10 @@ Each line of the login access control table has three fields separated by a
 .sp 1
 .IR    permission : users : origins
 .sp 1
-The first field should be a "\fB+\fR" (access granted) or "\fB-\fR" (access
+The first field should be a "\fB+\fR" (access granted) or "\fB\-\fR" (access
 denied) character. The second field should be a list of one or more login
 names, group names, or \fBALL\fR (always matches). The third field should be
-a list of one or more tty names (for non-networked logins), host names,
+a list of one or more tty names (for non\-networked logins), host names,
 domain names (begin with "\fB.\fR"), host addresses, internet network
 numbers (end with "\fB.\fR"), \fBALL\fR (always matches) or \fBLOCAL\fR
 (matches any string that does not contain a "\fB.\fR" character). If you run
@@ -33,10 +33,10 @@ NIS you can use @netgroupname in host or user patterns.
 The \fBEXCEPT\fR operator makes it possible to write very compact rules.
 .PP
 The group file is searched only when a name does not match that of the
-logged-in user. Only groups are matched in which users are explicitly
+logged\-in user. Only groups are matched in which users are explicitly
 listed: the program does not look at a user's primary group id value.
 .SH FILES
-\fI/etc/loginn.defs\fR
+\fI/etc/loginn.defs\fR \- shadow password suite configuration
 .SH SEE ALSO
 .BR login (1)
 .SH AUTHOR
index 48627585176aa395252dbf0b736b56c96b0ddb6f..8c158b511c0322b02c8b2c07f6cc904365145ed0 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: login.defs.5,v 1.15 2005/04/05 18:47:50 kloczek Exp $
 .\" Copyright 1991 - 1993, Julianne Frances Haugh and Chip Rosenthal
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: login.defs.5,v 1.12 2003/05/01 18:17:39 kloczek Exp $
-.\"
 .TH LOGIN.DEFS 5
 .SH NAME
 /etc/login.defs \- shadow password suite configuration
 .SH DESCRIPTION
 The
-\fI/etc/login.defs\fR file defines the site-specific configuration for the
+\fI/etc/login.defs\fR file defines the site\-specific configuration for the
 shadow password suite. This file is required. Absence of this file will
 not prevent system operation, but will probably result in undesirable
 operation.
@@ -41,7 +39,7 @@ This file is a readable text file, each line of the file describing one
 configuration parameter. The lines consist of a configuration name and
 value, separated by whitespace. Blank lines and comment lines are ignored. 
 Comments are introduced with a `#' pound sign and the pound sign must be the
-first non-white character of the line.
+first non\-white character of the line.
 .PP
 Parameter values may be of four types:  strings, booleans, numbers, and long
 numbers. A string is comprised of any printable characters. A boolean should
@@ -50,7 +48,7 @@ with a value other than these will be given a ``no'' value. Numbers (both
 regular and long) may be either decimal values, octal values (precede the
 value with ``0'') or hexadecimal values (precede the value with ``0x''). 
 The maximum value of the regular and long numeric parameters is
-machine-dependent.
+machine\-dependent.
 .PP
 The following configuration items are provided:
 .\"
@@ -70,25 +68,25 @@ installing chfn SUID.
 .\"
 .IP "CREATE_HOME (boolean)"
 This defines whether useradd should create home directories for users by
-default. This option is OR'ed with the \fI-m\fR flag on useradd command line.
+default. This option is OR'ed with the \fI\-m\fR flag on useradd command line.
 .\"
 .IP "GID_MAX (number)"
 .IP "GID_MIN (number)"
-Range of group IDs to choose from for the fBuseradd\fR and \fBgroupadd\fR
+Range of group IDs to choose from for the \fBuseradd\fR and \fBgroupadd\fR
 programs.
 .\"
 .IP "MAIL_DIR (string)"
 The mail spool directory. This is needed to manipulate the mailbox when its
 corresponding user account is modified or deleted. If not specified, a
-compile-time default is used.
+compile\-time default is used.
 .\"
 .IP "PASS_MAX_DAYS (number)"
 The maximum number of days a password may be used. If the password is older
-than this, a password change will be forced. If not specified, -1 will be
+than this, a password change will be forced. If not specified, \-1 will be
 assumed (which disables the restriction).
 .IP "PASS_MIN_DAYS (number)"
 The minimum number of days allowed between password changes. Any password
-changes attempted sooner than this will be rejected. If not specified, -1
+changes attempted sooner than this will be rejected. If not specified, \-1
 will be assumed (which disables the restriction).
 .IP "PASS_WARN_AGE (number)"
 The number of days warning given before a password expires. A zero means
index 3a548ba7f64a97a1eab7026ac0628aad59d48225..a94c4993713093b3f0ceb0ceffa81fa7117f8888 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: logoutd.8,v 1.10 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: logoutd.8,v 1.11 2005/04/02 16:10:24 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -39,8 +39,8 @@ at the current time.
 Any login session which is violating the restrictions in \fI/etc/porttime\fR
 is terminated.
 .SH FILES
-\fI/etc/porttime\fR \  - login and port permissions
+\fI/etc/porttime\fR    \- login and port permissions
 .br
-\fI/var/run/utmp\fR \  - current login sessions
+\fI/var/run/utmp\fR    \- current login sessions
 .SH AUTHOR
 Julianne Frances Haugh (jockgrrl@ix.netcom.com)
index 7569deadebf99353716be92cbe5f38b4a3f4cbb7..7802a70903d7069d8d23406d54985c15fef3b151 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: mkpasswd.8,v 1.11 2004/08/09 17:39:42 kloczek Exp $
+.\"$Id: mkpasswd.8,v 1.14 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAME
 mkpasswd \- Update passwd and group database files
 .SH SYNOPSIS
-\fBmkpasswd\fR [\fB-fvgps\fR] \fIfile\fR
+\fBmkpasswd\fR [\fB\-fvgps\fR] \fIfile\fR
 .SH DESCRIPTION
 \fBmkpasswd\fR reads the file in the format given by the flags and converts
 it to the corresponding database file format. These database files are used
 to improve access performance on systems with large numbers of users. The
 output files will be named \fIfile\fR.dir and \fIfile\fR.pag.
 .PP
-The \fB-f\fR option causes \fBmkpasswd\fR to ignore any existing output
+The \fB\-f\fR option causes \fBmkpasswd\fR to ignore any existing output
 files and overwrite them. Normally \fBmkpasswd\fR complains about existing
 output files and quits.
 .PP
-The \fB-v\fR option causes \fBmkpasswd\fR to output information about each
+The \fB\-v\fR option causes \fBmkpasswd\fR to output information about each
 record as it is converted, with a final message at the very end.
 .PP
-The \fB-g\fR option treats the input file as though it were in
-\fI/etc/group\fR file format. When combined with the \fB-s\fR option, the
+The \fB\-g\fR option treats the input file as though it were in
+\fI/etc/group\fR file format. When combined with the \fB\-s\fR option, the
 \fI/etc/gshadow\fR file format is used instead.
 .PP
-The \fB-p\fR option treats the input file as though it were in
+The \fB\-p\fR option treats the input file as though it were in
 \fI/etc/passwd\fR file format. This is the default. When combined with the
-\fB-s\fR option, the \fI/etc/shadow\fR file format is used instead.
+\fB\-s\fR option, the \fI/etc/shadow\fR file format is used instead.
 .SH CAVEATS
 The use of more than one database file is limited to systems which include
 the NDBM database library and therefore may not be available on every
 system.
 .SH NOTE
 Since most commands are capable of updating the database files as changes
-are made, this command need only be used when re-creating a deleted or
+are made, this command need only be used when re\-creating a deleted or
 corrupted database file.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - shadow user information
+\fI/etc/shadow\fR      \- secure user account information
 .br
-\fI/etc/group\fR \     - group information
+\fI/etc/group\fR       \- group account information
 .br
-\fI/etc/gshadow\fR \   - shadow group information
+\fI/etc/gshadow\fR     \- shadow group information
 .SH SEE ALSO
 .BR group (5),
 .BR passwd (5),
index 6e2db4c461a7efb68043377b6eaccab31864f244..7dec9d2952dba84f2ab9d6b60c1ce47bd495cb7f 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: newgrp.1,v 1.15 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: newgrp.1,v 1.23 2005/04/12 18:08:46 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -31,9 +31,9 @@ newgrp \- log in to a new group
 .br
 sg \- execute command as different group ID
 .SH SYNOPSIS
-\fBnewgrp\fR [\fB-\fR] [\fIgroup\fR]
+\fBnewgrp\fR [\fB\-\fR] [\fIgroup\fR]
 .br
-\fBsg\fR [\fB-\fR] [\fIgroup\fR [[\fB-c\fR] \fIcommand\fR]]
+\fBsg\fR [\fB\-\fR] [\fIgroup\fR [[\fB\-c\fR] \fIcommand\fR]]
 .SH DESCRIPTION
 \fBnewgrp\fR is used to change the current group ID during a login session.
 If the optional \fB\-\fR flag is given, the user's environment will be
@@ -41,26 +41,38 @@ reinitialized as though the user had logged in, otherwise the current
 environment, including current working directory, remains unchanged.
 .PP
 \fBnewgrp\fR changes the current real group ID to the named group, or to the
-default group listed in \fI/etc/passwd\fR if no group name is given. The
-user will be prompted for a password if she do not have a password and the
-group does, or if the user is not listed as a member and the group has a
-password. The user will be denied access if the group password is empty and
-the user is not listed as a member.
+default group listed in \fI/etc/passwd\fR if no group name is given.
+\fBnewgrp\fR also tries to add the group to the user groupset. If not root,
+the user will be prompted for a password if she do not have a password and
+the group does, or if the user is not listed as a member and the group has
+a password. The user will be denied access if the group password is empty
+and the user is not listed as a member.
+If compiled with SHADOWPWD (respectively SHADOWGRP) defined, the password
+of the user (respectively, the password and the members of the group) will
+be overwritten by the value defined in \fI/etc/shadow\fR (respectively in
+\fI/etc/gshadow\fR) if an entry exists for this user (resp. group).
 .PP
 The \fBsg\fR command works similar to \fBnewgrp\fR but accepts a command.
-The command will be executed with the Bourne shell. With most shells you
-may run \fBsg\fR from, you need to enclose multi-word commands in quotes.
+The command will be executed with the \fB/bin/sh\fR shell. With most shells you
+may run \fBsg\fR from, you need to enclose multi\-word commands in quotes.
 Another difference between \fBnewgrp\fR and \fBsg\fR is that some shells
 treat \fBnewgrp\fR specially, replacing themselves with a new instance of a
 shell that \fBnewgrp\fR creates. This doesn't happen with \fBsg\fR, so upon
 exit from a \fBsg\fR command you are returned to your previous group ID.
 .SH FILES
-\fI/etc/passwd\fR \- user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/group\fR \- group information
+\fI/etc/shadow\fR      \- secure user account information
+.br
+\fI/etc/group\fR       \- group account information
+.br
+\fI/etc/gshadow\fR     \- shadow group file
 .SH SEE ALSO
 .BR id (1),
 .BR login (1),
-.BR su (1)
+.BR su (1),
+.BR gpasswd (1),
+.BR group (5),
+.BR gshadow (5)
 .SH AUTHOR
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
index 89c385700c26a4ad4b133c134505671fb4d3190b..cca39aa5a375811a30a353cf2ee6a359a2784f05 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: newusers.8,v 1.13 2004/12/12 20:31:57 kloczek Exp $
+.\"$Id: newusers.8,v 1.14 2005/04/02 16:10:24 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" SUCH DAMAGE.
 .TH NEWUSERS 8
 .SH NAME
-newusers - update and create new users in batch
+newusers \- update and create new users in batch
 .SH SYNOPSIS
 \fBnewusers\fR [\fInew_users\fR]
 .SH DESCRIPTION
-\fBnewusers\fR reads a file of user name and clear-text password pairs and
+\fBnewusers\fR reads a file of user name and clear\-text password pairs and
 uses this information to update a group of existing users or to create new
 users. Each line is in the same format as the standard password file (see
 \fBpasswd\fR(5)) with the following exceptions.
@@ -42,7 +42,7 @@ password.
 This field will be ignored for shadow passwords if the user already exists.
 .IP "\fIpw_gid\fR"
 This field may be the name of an existing group, in which case the named
-user will be added as a member. If a non-existent numerical group is given,
+user will be added as a member. If a non\-existent numerical group is given,
 a new group will be created having this number.
 .IP "\fIpw_dir\fR"
 This field will be checked for existence as a directory and a new directory
index b37e8b42790b43020c4d67de7d02b827cca9dbaa..6245cc7a7ecec4bfbaf60ef9f5c5363713c083dc 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: passwd.1,v 1.17 2004/10/29 15:48:21 kloczek Exp $
+.\" $Id: passwd.1,v 1.24 2005/04/15 19:17:20 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAME
 passwd \- change user password
 .SH SYNOPSIS
-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIname\fR]
+\fBpasswd\fR [\fB\-f\fR|\fB\-s\fR] [\fIname\fR]
 .br
-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgroup\fR
+\fBpasswd\fR [\fB\-g\fR] [\fB\-r\fR|\fB\-R\fR] \fIgroup\fR
 .br
-\fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR]
-[\fB-w \fIwarn\fR] [\fB-i \fIinact\fR] \fIlogin\fR
+\fBpasswd\fR [\fB\-x\fR \fImax\fR] [\fB\-n\fR \fImin\fR]
+[\fB\-w\fR \fIwarn\fR] [\fB\-i\fR \fIinact\fR] \fIlogin\fR
 .br
-\fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR
+\fBpasswd\fR {\fB\-l\fR|\fB\-u\fR|\fB\-d\fR|\fB\-S\fR|\fB\-e\fR} \fIlogin\fR
 .SH DESCRIPTION
 \fBpasswd\fR changes passwords for user and group accounts. A normal user
 may only change the password for his/her own account, the super user may
@@ -45,10 +45,10 @@ the password for the group. \fBpasswd\fR also changes account information,
 such as the full name of the user, user's login shell, or password expiry
 date and interval.
 .PP
-The \fB-s\fR option makes passwd call chsh to change the user's shell. The
-\fB-f\fR option makes passwd call chfn to change the user's gecos
-information. These two options are only meant for compatiblity, since the
-other programs can be called directly.
+The \fB\-s\fR option makes \fBpasswd\fR call \fBchsh\fR to change the user's
+shell. The \fB\-f\fR option makes passwd call chfn to change the user's
+gecos information. These two options are only meant for compatiblity, since
+the other programs can be called directly.
 .SS Password Changes
 The user is first prompted for his/her old password, if one is present. This
 password is then encrypted and compared against the stored password. The
@@ -79,51 +79,54 @@ If the password is accepted, \fBpasswd\fR will prompt again and compare the
 second entry against the first. Both entries are required to match in order
 for the password to be changed.
 .SS Group passwords
-When the \fB-g\fR option is used, the password for the named group is
+When the \fB\-g\fR option is used, the password for the named group is
 changed. The user must either be the super user, or a group administrator
 for the named group. The current group password is not prompted for. The
-\fB-r\fR option is used with the \fB-g\fR option to remove the current
+\fB\-r\fR option is used with the \fB\-g\fR option to remove the current
 password from the named group. This allows group access to all members. The
-\fB-R\fR option is used with the \fB-g\fR option to restrict the named group
+\fB\-R\fR option is used with the \fB\-g\fR option to restrict the named group
 for all users.
-
 .SS Password expiry information
 The password aging information may be changed by the super user with the
-\fB-x\fR, \fB-n\fR, \fB-w\fR, and \fB-i\fR options. The \fB-x\fR option is
+\fB\-x\fR, \fB\-n\fR, \fB\-w\fR, and \fB\-i\fR options. The \fB\-x\fR option is
 used to set the maximum number of days a password remains valid. After
-\fImax\fR days, the password is required to be changed. The \fB-n\fR option
+\fImax\fR days, the password is required to be changed. The \fB\-n\fR option
 is used to set the minimum number of days before a password may be changed.
 The user will not be permitted to change the password until \fImin\fR days
-have elapsed. The \fB-w\fR option is used to set the number of days of
+have elapsed. The \fB\-w\fR option is used to set the number of days of
 warning the user will receive before his/her password will expire. The
 warning occurs \fIwarn\fR days before the expiration, telling the user how
-many days remain until the password is set to expire. The \fB-i\fR option is
+many days remain until the password is set to expire. The \fB\-i\fR option is
 used to disable an account after the password has been expired for a number
 of days. After a user account has had an expired password for \fIinact\fR
 days, the user may no longer sign on to the account.
 .PP
 If you wish to immediately expire an account's password, you can use the
-\fB-e\fR option. This in effect can force a user to change his/her password at
-the user's next login. You can also use the \fB-d\fR option to delete a user's
+\fB\-e\fR option. This in effect can force a user to change his/her password at
+the user's next login. You can also use the \fB\-d\fR option to delete a user's
 password (make it empty). Use caution with this option since it can make an
 account not require a password at all to login, leaving your system open to
 intruders.
 .SS Account maintenance
-User accounts may be locked and unlocked with the \fB-l\fR and \fB-u\fR
-flags. The \fB-l\fR option disables an account by changing the password to
-a value which matches no possible encrypted value. The \fB-u\fR option
-re-enables an account by changing the password back to its previous value.
+User accounts may be locked and unlocked with the \fB\-l\fR and \fB\-u\fR
+flags. The \fB\-l\fR option disables an account by changing the password to
+a value which matches no possible encrypted value. The \fB\-u\fR option
+re\-enables an account by changing the password back to its previous value.
 .PP
-The account status may be given with the \fB-S\fR option. The status
-information consists of 6 parts. The first part indicates if the user
-account is locked (L), has no password (NP), or has a usable password (P).
-The second part gives the date of the last password change. The next four
-parts are the minimum age, maximum age, warning period, and inactivity
-period for the password.
+The account status may be viewed with the \fB-S\fR option.
+The status information consists of 7 fields.
+The first field is the user's login name.
+The second field indicates if the user account is locked (L), has no
+password (NP), or has a usable password (P).
+The third field gives the date of the last password change.
+The next four fields are the minimum age, maximum age, warning period,
+and inactivity period for the password.
+These ages are expressed in days.
+See \fBPassword expiry information\fR above for a discussion of these fields.
 .SS Hints for user passwords
 The security of a password depends upon the strength of the
 encryption algorithm and the size of the key space.
-The \fB\s-2UNIX\s+2\fR System encryption method is based on
+The \fB\s\-2UNIX\s+2\fR System encryption method is based on
 the NBS DES algorithm and is very secure.
 The size of the key space depends upon the randomness of the
 password which is selected.
@@ -159,7 +162,7 @@ passwords and not rely exclusively on the methods given here.
 .SS Notes about group passwords
 Group passwords are an inherent security problem since more than one person
 is permitted to know the password. However, groups are a useful tool for
-permitting co-operation between different users.
+permitting co\-operation between different users.
 .SH CAVEATS
 Not all options may be supported.
 Password complexity checking may vary from site to site.
@@ -170,7 +173,7 @@ is enabled and they are not logged into the NIS server.
 .SH FILES
 \fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR      \- encrypted user passwords
+\fI/etc/shadow\fR      \- secure user account information
 .SH EXIT VALUES
 .TP 2
 The \fBpasswd\fR command exits with the following values:
@@ -189,6 +192,7 @@ The \fBpasswd\fR command exits with the following values:
 \fB6\fR        \- invalid argument to option
 .SH "SEE ALSO"
 .BR group (5),
-.BR passwd (5)
+.BR passwd (5),
+.BR shadow (5)
 .SH AUTHOR
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
index 8485461496404a3e931cd56704f0c15c135bd9e0..21bbb6c27918655b3a06d2c003130f43379d6ec1 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: passwd.5,v 1.13 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: passwd.5,v 1.15 2005/04/02 16:10:24 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -48,9 +48,13 @@ User command interpreter
 .PP
 The password field may not be filled if shadow passwords have been enabled.
 If shadow passwords are being used, the encrypted password will be found in
-\fI/etc/shadow\fR. The encrypted password consists of 13 characters from the
-64 character alphabet a thru z, A thru Z, 0 thru 9, \. and /. Refer to
-\fBcrypt\fR(3) for details on how this string is interpreted.
+\fI/etc/shadow\fR. The encrypted password consists of characters from the
+64 characters alphabet a thru z, A thru Z, 0 thru 9, \. and /. Optionally it
+can start with a "$" character. This means the encrypted password was generated
+using another (not DES) algorithm. For example if it starts with "$1$" it means
+the MD5\-based algorithm was used.
+.PP
+Refer to \fBcrypt\fR(3) for details on how this string is interpreted.
 .PP
 The comment field is used by various system utilities, such as
 \fBfinger\fR(1). Three additional values may be present in the comment
@@ -76,7 +80,7 @@ language interpreter, or the name of the initial program to execute.
 \fBSHELL\fR environmental variable.
 If this field is empty, it defaults to the value \fB/bin/sh\fR.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .SH SEE ALSO
 .BR login (1),
 .BR passwd (1),
index 7b981fbd4149ec28acc6454f61379e0f371b82f6..29634c4831608f00982de18e6c0c85cd7c2c8b2d 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -89,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -233,9 +232,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/pl/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/pl/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/pl/Makefile
+         $(AUTOMAKE) --foreign  man/pl/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 537df5a438e0cbc3fd5ceaa4aa52881ca7ca4faa..c82b7aaa2d8c82739daad39d0acfefc764e3e3a6 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: chage.1,v 1.9 2004/11/02 19:28:32 kloczek Exp $
-.\" {PTM/WK/1999-09-16}
+.\" $Id: chage.1,v 1.12 2005/04/13 22:51:13 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -32,50 +31,52 @@ chage \- zmiana informacji o terminie wa
 .SH SK£ADNIA
 .TP 6
 \fBchage\fR
-[\fB-m \fImindni\fR] [\fB-M \fImaxdni\fR]
-[\fB-d \fIostatni\fR] [\fB-I \fInieaktywne\fR]
+[\fB\-m\fR \fImindni\fR] [\fB\-M\fR \fImaxdni\fR]
+[\fB\-d\fR \fIostatni\fR] [\fB\-I\fR \fInieaktywne\fR]
 .br
-[\fB-E \fIdata_wa¿no¶ci\fR] [\fB-W \fIdni_ostrzegania\fR] \fIu¿ytkownik\fR
+[\fB\-E\fR \fIdata_wa¿no¶ci\fR] [\fB\-W\fR \fIdni_ostrzegania\fR] \fIu¿ytkownik\fR
 .TP 6
 \fBchage\fR
-\fB-l \fIu¿ytkownik\fR
+\fB\-l\fR \fIu¿ytkownik\fR
 .SH OPIS
 \fBchage\fR zmienia liczbê dni pomiêdzy zmianami has³a i datê ostatniej
 zmiany has³a. Informacjê tê system wykorzystuje do ustalenia, kiedy
 u¿ytkownik musi zmieniæ has³o.
 Polecenia \fBchage\fR mo¿e u¿yæ tylko u¿ytkownik root, za wyj±tkiem
-opcji \fB-l\fR. Mo¿e siê ni± pos³u¿yæ siê u¿ytkownik nieuprzywilejowany
+opcji \fB\-l\fR. Mo¿e siê ni± pos³u¿yæ siê u¿ytkownik nieuprzywilejowany
 do stwierdzenia, kiedy wygasa jego w³asne has³o lub konto.
 .SH OPCJE
 Polecenie \fBchage\fR posiada nastêpuj±ce opcje:
-.IP "\fB-E\fR \fIdata_wa¿no¶ci\fR"
+.IP "\fB\-E\fR \fIdata_wa¿no¶ci\fR"
 Ustawia datê, pocz±wszy od której konto u¿ytkownika nie bêdzie ju¿ dostêpne.
 \fIdata_wa¿no¶ci\fR jest liczb± dni od 1 stycznia 1970, od której konto jest
-blokowane. Data mo¿e byæ te¿ wyra¿ona w postaci RRRR-MM-DD (lub innej,
+blokowane. Data mo¿e byæ te¿ wyra¿ona w postaci RRRR\-MM\-DD (lub innej,
 powszechniej u¿ywanej w danym regionie).
 U¿ytkownik, którego konto jest zablokowane musi skontaktowaæ siê
 z administratorem systemu zanim bêdzie móg³ z niego ponownie skorzystaæ.
-.IP "\fB-I\fR \fInieaktywne\fR"
-Opcja \fB-I\fR s³u¿y do ustawiania czasu nieaktywno¶ci po wyga¶niêciu
+Przekazanie \fI-1\fR jako \fIdata_wa¿no¶ci\fR usuwa ograniczenie wa¿no¶ci
+konta u¿ytkownika.
+.IP "\fB\-I\fR \fInieaktywne\fR"
+Opcja \fB\-I\fR s³u¿y do ustawiania czasu nieaktywno¶ci po wyga¶niêciu
 has³a, po którym konto jest blokowane. Parametr \fInieaktywne\fR podaje
 liczbê dni nieaktywno¶ci. Warto¶æ 0 wy³±cza tê funkcjê.
 U¿ytkownik, którego konto jest zablokowane musi skontaktowaæ siê
 z administratorem systemu zanim bêdzie móg³ z niego ponownie skorzystaæ.
-.IP "\fB-m\fR \fImindni\fR"
+.IP "\fB\-m\fR \fImindni\fR"
 Utawia minimaln± liczbê dni pomiêdzy zmianami has³a na warto¶æ fImindni\fR.
 Warto¶æ zerowa oznacza, ¿e u¿ytkownik mo¿e je zmieniaæ w dowolnym czasie.
-.IP "\fB-M\fR \fImaxdni\fR"
+.IP "\fB\-M\fR \fImaxdni\fR"
 Ustawia maksymaln± liczbê dni, przez jakie has³o jest wa¿ne na warto¶æ
 \fImaxdni\fR. Gdy \fImaxdni\fR plus \fIostatni\fR jest mniejsze ni¿ bie¿±cy
 dzieñ, u¿ytkownik musi zmieniæ swoje has³a, zanim bêdzie móg³ skorzystaæ z
 konta. Zdarzenie to mo¿e byæ zaplanowane z wyprzedzeniem przez wykorzystanie
-opcji \fB-W\fR, ostrzegaj±cej zawczasu u¿ytkownika o zbli¿aj±cym siê
+opcji \fB\-W\fR, ostrzegaj±cej zawczasu u¿ytkownika o zbli¿aj±cym siê
 terminie zmiany.
-.IP "\fB-M\fR \fIostatni\fR"
+.IP "\fB\-M\fR \fIostatni\fR"
 Ustawia liczbê dni od 1 stycznia 1970 do dnia kiedy ostatnio zmieniono has³o
-na \fIostatni\fR. Data mo¿e równie¿ zostaæ podana w postaci RRRR-MM-DD (lub
+na \fIostatni\fR. Data mo¿e równie¿ zostaæ podana w postaci RRRR\-MM\-DD (lub
 postaci powszechniej u¿ywanej w danym regionie).
-.IP "\fB-W\fR \fIdni_ostrzegania\fR"
+.IP "\fB\-W\fR \fIdni_ostrzegania\fR"
 Ustawia na \fIdni_ostrzegania\fR liczbê dni przed up³ywem wa¿no¶ci has³a.
 Od tego dnia u¿ytkownik bêdzie ostrzegany o nadchodz±cym terminie zmiany
 has³a.
index 57bae15e11eb18e036bfddd9fda19aeafa72a7b0..cdc1e3b865ab155804caf92062d0e6b7177d0f84 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: chfn.1,v 1.7 2003/04/26 13:24:15 kloczek Exp $
-.\" {PTM/WK/1999-09-25}
+.\" $Id: chfn.1,v 1.9 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -32,9 +31,9 @@ chfn \- zmiana rzeczywistej nazwy u
 .SH SK£ADNIA
 .TP 5
 \fBchfn\fR
-[\fB-f \fIpe³na_nazwa\fR] [\fB-r \fInr_pokoju\fR]
+[\fB\-f\fR \fIpe³na_nazwa\fR] [\fB\-r\fR \fInr_pokoju\fR]
 .br
-[\fB-w \fR \fItel_s³u¿b\fR] [\fB-h \fItel_dom\fR] [\fB-o \fIinne\fR]
+[\fB\-w\fR \fItel_s³u¿b\fR] [\fB\-h\fR \fItel_dom\fR] [\fB\-o\fR \fIinne\fR]
 [\fIu¿ytkownik\fR]
 .SH OPIS
 \fBchfn\fR zmienia pe³n± nazwê (imiê i nazwisko), telefon s³u¿bowy i domowy
@@ -42,7 +41,7 @@ dla danego konta u
 \fBfinger\fR(1) i podobne mu programy.
 Zwyk³y u¿ytkownik mo¿e zmieniaæ wy³±cznie pola opisuj±ce w³asne konto.
 Tylko superu¿ytkownik mo¿e zmieniaæ pola dla dowolnego konta.
-Równie¿ tylko superu¿ytkownik mo¿e pos³u¿yæ siê opcj± \fB-o\fR by zmieniæ
+Równie¿ tylko superu¿ytkownik mo¿e pos³u¿yæ siê opcj± \fB\-o\fR by zmieniæ
 niezdefiniowane czê¶ci pola GECOS.
 .PP
 Jedynym ograniczeniem nak³adanym na zawarto¶æ pól jest zakaz u¿ywania w nich
index 223bd8493b24b0d47697f98e8efefa3ceb655c1a..689428940a4e19833b5f277ff9ed147ac8dd64b1 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: chpasswd.8,v 1.7 2004/12/13 01:24:14 kloczek Exp $
-.\" {PTM/WK/1999-09-16}
+.\" $Id: chpasswd.8,v 1.8 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH CHPASSWD 8
 .SH NAZWA
-\fBchpasswd\fR - wsadowa aktualizacja pliku hase³
+\fBchpasswd\fR \- wsadowa aktualizacja pliku hase³
 .SH SK£ADNIA
-\fBchpasswd\fR [\fI-e\fR]
+\fBchpasswd\fR [\fI\-e\fR]
 .SH OPIS
 \fBchpasswd\fR odczytuje pary danych (u¿ytkownik i has³o) ze standardowego
 wej¶cia. Odczytane informacje wykorzystywane s± do aktualizacji danych o
@@ -47,11 +46,11 @@ Polecenie to przeznaczone jest do u
 siê wiele kont naraz.
 .SH OPCJE
 Polecenie \fBchpasswd\fR posiada nastêpuj±ce opcje:
-.IP "\fB-e\fR, \fB--encrypted\fR"
+.IP "\fB\-e\fR, \fB\-\-encrypted\fR"
 Dostarczone na standardowe wej¶cie has³a s± traktowane jako ju¿ zakodowane.
-.IP "\fB-h\fR, \fB--help\fR"
+.IP "\fB\-h\fR, \fB\-\-help\fR"
 Wy¶wietla krótk± informacjê o tym jak u¿ywaæ program i zakoñczy pracê.
-.IP "\fB-m\fR, \fB--md5\fR"
+.IP "\fB\-m\fR, \fB\-\-md5\fR"
 Je¿eli dpostarczane has³a s± w postaci jawnej u¿yj kodowania MD5 zamiast
 domy¶lnego DES.
 .SH PRZESTROGI
index c1ab0af753e14e7607f393f741c5b7a56a7aa6ff..0cbac308b37e00d604c2c7ac4d4b41d411df5d3f 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: chsh.1,v 1.8 2004/11/02 19:28:32 kloczek Exp $
-.\" {PTM/WK/1999-09-25}
+.\" $Id: chsh.1,v 1.10 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -32,7 +31,7 @@ chsh \- zmiana pow
 .SH SK£ADNIA
 .TP 5
 \fBchsh\fR
-[\fB-s \fIpow³oka\fR] [\fIu¿ytkownik\fR]
+[\fB\-s\fR \fIpow³oka\fR] [\fIu¿ytkownik\fR]
 .SH OPIS
 \fBchsh\fR zmienia pow³okê zg³oszeniow± u¿ytkownika.
 Okre¶la nazwê pocz±tkowego polecenia zg³oszeniowego u¿ytkownika.
@@ -41,14 +40,14 @@ superu
 .PP
 Jedynym ograniczeniem na³o¿onym na pow³okê zg³oszeniow± jest to, ¿e jej nazwa
 musi byæ wymieniona w \fI/etc/shells\fR, chyba ¿e polecenie \fBchsh\fR
-wywo³ywane jest przez superu¿ytkownika - wówczas mo¿e byæ podana dowolna
+wywo³ywane jest przez superu¿ytkownika \- wówczas mo¿e byæ podana dowolna
 nazwa. U¿ytkownicy kont z ograniczon± pow³ok± logowania nie mog± jej zmieniaæ.
 Odradza siê z tego powodu umieszczanie \fB/bin/rsh\fR w pliku
 \fI/etc/shells\fR, gdy¿ przypadkowa zmiana na pow³okê ograniczon± uniemo¿liwi
 u¿ytkownikowi jak±kolwiek zmianê pow³oki logowania, nawet z powrotem na
 dotychczasow±.
 .SH OPCJE
-Je¿eli nie podano opcji \fB-s\fR, to \fBchsh\fR dzia³a w trybie interaktywnym,
+Je¿eli nie podano opcji \fB\-s\fR, to \fBchsh\fR dzia³a w trybie interaktywnym,
 proponuj±c u¿ytkownikowi bie¿±c± pow³okê logowania. Wprowadzenie nowej
 warto¶ci powoduje zmianê pow³oki, a podanie warto¶ci pustej pozostawia bie¿±c±
 pow³okê. Bie¿±ca pow³oka wy¶wietlana jest w nawiasach \fB[ ]\fR.
index 236b4c75ccac76eecaa0fb5dd254b104ee046a02..cbd2c6f5b9e3db984b2431bad5007dcc6906a931 100644 (file)
@@ -1,4 +1,4 @@
-.\" $Id: expiry.1,v 1.3 2003/04/26 13:24:15 kloczek Exp $
+.\" $Id: expiry.1,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1990 - 1994 Julianne Frances Haugh
 .\" All rights reserved.
 .\" Modified for expiry by Ben Collins <bcollins@debian.org>, 1999
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
 .TH EXPIRY 1
 .SH NAZWA
 expiry \- sprawdzenie wa¿no¶ci i wymuszenie zmiany has³a
 .SH SK£ADNIA
 .TP 6
-\fBexpiry\fR [\fB-c\fR] [\fB-f\fR]
+\fBexpiry\fR [\fB\-c\fR] [\fB\-f\fR]
 .SH OPIS
-\fBexpiry\fR sprawdza (\fB-c\fR), kiedy wyga¶nie aktualne has³o oraz wymusza
-(\fB-f\fR) jego zmianê, je¶li potrzeba. Mo¿e ono byæ wywo³ywane jako zwyk³e
+\fBexpiry\fR sprawdza (\fB\-c\fR), kiedy wyga¶nie aktualne has³o oraz wymusza
+(\fB\-f\fR) jego zmianê, je¶li potrzeba. Mo¿e ono byæ wywo³ywane jako zwyk³e
 polecenie przez u¿ytkownika.
 .SH PLIKI
 \fI/etc/passwd\fR \- informacje o kontach u¿ytkowników
index e310a38540d551559a16f337b08e9d716520d67d..b4f98223f849dc9af3d7d2584c05101446578b55 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: faillog.5,v 1.5 2003/01/07 14:25:35 kloczek Exp $
+.\" $Id: faillog.5,v 1.6 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" Translation (c) 1998 "Gwidon S. Naskrent" <naskrent@hoth.amu.edu.pl>
 .\" All rights reserved.
@@ -49,7 +49,7 @@ Struktura tego pliku to
 
 .DE
 .SH PLIKI
-.IR /var/log/faillog " - rejestr nieudanych zalogowañ"
+\fI/var/log/faillog\fR \- rejestr nieudanych zalogowa
 .SH ZOBACZ TAK¯E
 .BR faillog (8)
 .SH AUTOR
index e2659551685377abd4502ad5748fb4dda6898a5b..bcee001c06a47d7f391fdaa78f126644e5d89617 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: faillog.8,v 1.6 2004/12/11 16:49:34 kloczek Exp $
-.\" {PTM/WK/1999-09-18}
+.\" $Id: faillog.8,v 1.8 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 faillog \- sprawd¼ faillog i ustaw limity b³êdnych logowañ
 .SH SK£ADNIA
 .TP 8
-\fBfaillog\fR [\fB-u\fR \fInazwa\fR] [\fB-a\fR] [\fB-t\fR \fIdni\fR]
-[\fB-m \fImax\fR] [\fB-pr\fR] 
+\fBfaillog\fR [\fB\-u\fR \fInazwa\fR] [\fB\-a\fR] [\fB\-t\fR \fIdni\fR]
+[\fB\-m\fR \fImax\fR] [\fB\-pr\fR] 
 .SH OPIS
 \fBfaillog\fR formatuje zawarto¶æ rejestru nieudanych prób rozpoczêcia sesji,
 \fI/var/log/faillog\fR, oraz obs³uguje ograniczenia i liczniki b³êdnych prób.
 Kolejno¶æ argumentów \fBfaillog\fR jest znacz±ca. Ka¿dy z argumentów jest
 natychmiast przetwarzany w zadanej kolejno¶ci.
 .SH OPCJE
-Flaga \fB-p\fR powoduje, ¿e zapisy o nieudanych logowaniach wy¶wietlane bêd±
+Flaga \fB\-p\fR powoduje, ¿e zapisy o nieudanych logowaniach wy¶wietlane bêd±
 w kolejno¶ci rosn±cych identyfikatorów u¿ytkowników (UID).
-Pos³u¿enie siê flag± \fB-u \fInazwa\fR spowoduje, ¿e zostanie wy¶wietlony
+Pos³u¿enie siê flag± \fB\-u\fR \fInazwa\fR spowoduje, ¿e zostanie wy¶wietlony
 wy³±cznie zapis dotycz±cy u¿ytkownika o tej \fInazwie\fR.
-U¿ycie \fB-t \fIdni\fR powoduje wy¶wietlanie wy³±cznie nieudanych prób
+U¿ycie \fB\-t\fR \fIdni\fR powoduje wy¶wietlanie wy³±cznie nieudanych prób
 logowania ¶wie¿szych ni¿ sprzed zadanej liczby \fIdni\fR.
-Flaga \fB-t\fR uniewa¿nia u¿ycie \fB-u\fR.
-Flaga \fB-a\fR powoduje wybranie wszystkich u¿ytkowników.
-W po³±czeniu z flag± \fB-p\fR flag, opcja ta wybiera wszystkich u¿ytkowników,
+Flaga \fB\-t\fR uniewa¿nia u¿ycie \fB\-u\fR.
+Flaga \fB\-a\fR powoduje wybranie wszystkich u¿ytkowników.
+W po³±czeniu z flag± \fB\-p\fR flag, opcja ta wybiera wszystkich u¿ytkowników,
 dla których kiedykolwiek odnotowano niepomy¶ln± próbê logowania.
-Opcja ta nie ma znaczenia w po³±czeniu z flag± \fB-r\fR.
+Opcja ta nie ma znaczenia w po³±czeniu z flag± \fB\-r\fR.
 .PP
-\fB-r\fR s³u¿y do zerowania licznika b³êdnych logowañ. Do poprawnego dzia³ania
+\fB\-r\fR s³u¿y do zerowania licznika b³êdnych logowañ. Do poprawnego dzia³ania
 tej opcji wymagane jest prawo zapisu do \fI/var/log/faillog\fR.
-W po³±czeniu z \fB-u \fInazwa\fR s³u¿y do zerowania licznika b³êdów u¿ytkownika
+W po³±czeniu z \fB\-u\fR \fInazwa\fR s³u¿y do zerowania licznika b³êdów u¿ytkownika
 o podanej \fInazwie\fR.
 .PP
-Flaga \fB-m\fR ustawia maksymaln± liczbê b³êdów logowania, po której konto
+Flaga \fB\-m\fR ustawia maksymaln± liczbê b³êdów logowania, po której konto
 zostanie wy³±czone. Dla tej opcji wymagane jest prawo zapisu do
 \fI/var/log/faillog\fR.
-Argumenty \fB-m \fImax\fR powoduj±, ¿e wszystkie konta bêd± wy³±czane po
+Argumenty \fB\-m\fR \fImax\fR powoduj±, ¿e wszystkie konta bêd± wy³±czane po
 \fImax\fR nieudanych próbach logowania.
-U¿ycie dodatkowo \fB-u \fInazwa\fR, ogranicza dzia³anie tej funkcji do
+U¿ycie dodatkowo \fB\-u\fR \fInazwa\fR, ogranicza dzia³anie tej funkcji do
 u¿ytkownika o podanej \fInazwie\fR.
 Pos³u¿enie siê zerow± warto¶ci± \fImax\fR powoduje, ¿e liczba nieudanych prób
 rozpoczêcia sesji jest nieograniczona.
 Dla u¿ytkownika \fBroot\fR maksymalna liczba niepowodzeñ powinna byæ zawsze
 ustawiona na 0, by zapobiec atakom typu denial of service (odmowa obs³ugi).
 .PP
-Opcje mog± byæ ³±czone w praktycznie dowolny sposób. Ka¿da z opcji \fB-p\fR,
-\fB-r\fR i \fB-m\fR powoduje natychmiastowe wykonanie przy u¿yciu modyfikatora
-\fB-u\fR lub \fB-t\fR.
+Opcje mog± byæ ³±czone w praktycznie dowolny sposób. Ka¿da z opcji \fB\-p\fR,
+\fB\-r\fR i \fB\-m\fR powoduje natychmiastowe wykonanie przy u¿yciu modyfikatora
+\fB\-u\fR lub \fB\-t\fR.
 .SH PRZESTROGI
 \fBfaillog\fR wy¶wietla wy³±cznie u¿ytkowników, którzy od ostatniej nieudanej
 próby nie mieli poprawnych logowañ.
 Chc±c wy¶wietliæ u¿ytkownika, który po ostatniej pora¿ce logowa³ siê ju¿
-pomy¶lnie, musisz jawnie za¿±daæ o nim informacji przy pomocy flagi \fB-u\fR.
-Mo¿esz tak¿e wy¶wietliæ wszystkich u¿ytkowników pos³uguj±c siê flag± \fB-a\fR.
+pomy¶lnie, musisz jawnie za¿±daæ o nim informacji przy pomocy flagi \fB\-u\fR.
+Mo¿esz tak¿e wy¶wietliæ wszystkich u¿ytkowników pos³uguj±c siê flag± \fB\-a\fR.
 .SH PLIKI
-.IR /var/log/faillog " - plik rejestracji b³êdów logowania"
+\fI/var/log/faillog\fR \- plik rejestracji b³êdów logowania
 .SH ZOBACZ TAK¯E
 .BR login (1),
 .BR faillog (5)
index 87dce071070520e53eb5bf562d092ad4c369bde2..61ae61735fad5efe311e3a5a687f1c4179e9fb48 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: gpasswd.1,v 1.5 2003/04/26 13:24:15 kloczek Exp $
-.\" {PTM/WK/1999-09-16}
+.\" $Id: gpasswd.1,v 1.7 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1996, Rafal Maszkowski <rzm@pdi.net>
 .\" All rights reserved. You can redistribute this man page and/or
 .\" modify it under the terms of the GNU General Public License as
 gpasswd \- administracja plikiem /etc/group
 .br
 .SH SK£ADNIA
-\fBgpasswd \fIgrupa\fR
+\fBgpasswd\fR \fIgrupa\fR
 .br
-\fBgpasswd -a \fIu¿ytkownik grupa\fR
+\fBgpasswd \-a\fR \fIu¿ytkownik grupa\fR
 .br
-\fBgpasswd -d \fIu¿ytkownik grupa\fR
+\fBgpasswd \-d\fR \fIu¿ytkownik grupa\fR
 .br
-\fBgpasswd -R \fIgrupa\fR
+\fBgpasswd \-R\fR \fIgrupa\fR
 .br
-\fBgpasswd -r \fIgrupa\fR
+\fBgpasswd \-r\fR \fIgrupa\fR
 .br
-\fBgpasswd\fR [\fB-A \fIu¿ytkownik\fR,...] [\fB-M \fIu¿ytkownik\fR,...] \fIgrupa\fR
+\fBgpasswd\fR [\fB\-A\fR \fIu¿ytkownik\fR,...] [\fB\-M\fR \fIu¿ytkownik\fR,...] \fIgrupa\fR
 .SH OPIS
 \fBgpasswd\fR s³u¿y do administrowania plikiem /etc/group (oraz
 \fI/etc/gshadow\fR je¶li zosta³a wykonana kompilacja ze zdefiniowanym
 SHADOWGRP). Ka¿da z grup mo¿e posiadaæ administratorów, cz³onków i has³o.
-Administrator systemu mo¿e pos³u¿yæ siê opcj± \fB-A\fR do zdefiniowania
-administratora(-ów) grupy oraz opcj± \fB-M\fR do zdefiniowania jej cz³onków.
+Administrator systemu mo¿e pos³u¿yæ siê opcj± \fB\-A\fR do zdefiniowania
+administratora(\-ów) grupy oraz opcj± \fB\-M\fR do zdefiniowania jej cz³onków.
 Posiada on wszystkie prawa administratorów i cz³onków grup.
 .PP
 Administrator grupy mo¿e dodawaæ i usuwaæ u¿ytkowników przy pomocy,
-odpowiednio, opcji \fB-a\fR i \fB-d\fR. Administratorzy mog± te¿ u¿ywaæ opcji
-\fB-r\fR w celu usuniêcia has³a grupy. Je¿eli grupa nie posiada has³a,
+odpowiednio, opcji \fB\-a\fR i \fB\-d\fR. Administratorzy mog± te¿ u¿ywaæ opcji
+\fB\-r\fR w celu usuniêcia has³a grupy. Je¿eli grupa nie posiada has³a,
 to polecenia
 .BR newgrp (1)
 do przy³±czenia siê do grupy mog± u¿ywaæ tylko jej cz³onkowie.
-Opcja \fB-R\fR wy³±cza dostêp do grupy za pomoc± polecenia
+Opcja \fB\-R\fR wy³±cza dostêp do grupy za pomoc± polecenia
 .BR newgrp (1).
 .PP
 .B gpasswd
@@ -44,7 +43,6 @@ wywo
 Je¿eli has³o jest ustawione, to cz³onkowie grupy mog± nadal wykonywaæ
 .BR newgrp (1)
 bez has³a, inni musz± natomiast podaæ has³o.
-
 .SH PLIKI
 \fI/etc/group\fR \- informacja o grupach
 .br
index dc3fff0c5d17af131659ccc6f6c336463a21c294..67ccf99c91d1b7ed571c937c5d9f3ff453922dfa 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: groupadd.8,v 1.13 2004/11/04 03:06:32 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: groupadd.8,v 1.14 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH GROUPADD 8
 .SH NAZWA
-groupadd - twórz now± grupê
+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] \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.
@@ -38,14 +37,14 @@ W razie potrzeby zostanie wprowadzona do systemu nowa grupa.
 .SH OPCJE
 Polecenie \fBgroupadd\fR posiada nastêpuj±ce opcje:
 .TP
-.BI -f
+.BI \-f
 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).
+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 -g " gid"
+.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
+chyba ¿e u¿yto opcji \fB\-o\fR. Warto¶æ ID grupy nie mo¿e byæ ujemna. Domy¶lnie
 u¿ywana jest najmniejsza warto¶æ identyfikatora wiêksza ni¿ 999 a wiêksza ni¿
 jakiejkolwiek innej grupy.
 Warto¶ci miêdzy 0 a 999 s± zwykle zarezerwowane dla kont systemowych.
@@ -63,7 +62,7 @@ Polecenie \fBgroupadd\fR ko
 .br
 \fB3\fR        \- niew³a¶ciwe parametry opcji
 .br
-\fB4\fR        \- uid jest ju¿ u¿ywany (i nie u¿yto opcji -o)
+\fB4\fR        \- uid jest ju¿ u¿ywany (i nie u¿yto opcji \-o)
 .br
 \fB9\fR        \- nazwa groupy nie jest unikalna
 .br
index 27f11725157f88344bf7b7670e8a2e1393fbbbd6..367295fe312e7e40018adb5ba93e518568cb39d7 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: groupdel.8,v 1.7 2003/04/28 17:52:15 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: groupdel.8,v 1.8 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,7 +27,7 @@
 .\" SUCH DAMAGE.
 .TH GROUPDEL 8
 .SH NAZWA
-groupdel - usuñ grupê
+groupdel \- usuñ grupê
 .SH SK£ADNIA
 \fBgroupdel\fR \fIgrupa\fR
 .SH OPIS
index 99fca5bd1440aa829292c223e85083dafbc3a882..e5a158536790b5e1f4fbb7d06a9020940546e97d 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: groupmod.8,v 1.11 2004/12/12 20:58:26 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: groupmod.8,v 1.13 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" SUCH DAMAGE.
 .TH GROUPMOD 8
 .SH NAZWA
-groupmod - zmieñ dane grupy
+groupmod \- zmieñ dane grupy
 .SH SK£ADNIA
-\fBgroupmod\fR [\fB-g\fR \fIGID\fR [\fB-o\fR]] [\fB-n\fR \fINOWA_NAZWA_GRUPY\fR]
+\fBgroupmod\fR [\fB\-g\fR \fIGID\fR [\fB\-o\fR]] [\fB\-n\fR \fINOWA_NAZWA_GRUPY\fR]
 \fIGRUPA\fR
 .SH OPIS
 Polecenie \fBgroupmod\fR modyfikuje systemowe pliki kont tak, by
 odzwierciedliæ w nich zmiany grup podane w wierszu poleceñ.
 .SH OPCJE
 Polecenie \fBgroupmod\fR posiada nastêpuj±ce opcje:
-.IP "\fB-g\fR \fIGID\fR"
+.IP "\fB\-g\fR \fIGID\fR"
 Numeryczna warto¶æ identyfikatora grupy (group ID). Warto¶æ ta musi byæ
-niepowtarzalna, chyba ¿e u¿yto opcji \fB-o\fR. Nie mo¿e byæ ujemna.
+niepowtarzalna, chyba ¿e u¿yto opcji \fB\-o\fR. Nie mo¿e byæ ujemna.
 Warto¶ci pomiêdzy 0 a 999 s± zwykle zarezerwowane dla grup systemowych. 
 Pliki, dla których stary identyfikator jest identyfikatorem
 grupy pliku, wymagaj± rêcznej zmiany ID grupy.
-.IP "\fB-n\fR \fINOWA_NAZWA_GRUPY\fR"
+.IP "\fB\-n\fR \fINOWA_NAZWA_GRUPY\fR"
 Nazwa grupy zostanie zmieniona z \fIGRUPA\fR na \fINOWA_NAZWA_GRUPY\fR.
 .SH PLIKI
 \fI/etc/group\fR       \- informacja o grupach
 .br
-\fI/etc/gshadow\fI     \- bezpieczna informacja o grupach
+\fI/etc/gshadow\fR     \- bezpieczna informacja o grupach
 .SH KOD ZAKOÑCZENIA
 .TP 2
 Polecenie \fBgroupmod\fR koñczy dzia³anie z nastêpuj±cymi warto¶ciami kodów zakoñczenia:
@@ -59,7 +58,7 @@ Polecenie \fBgroupmod\fR ko
 .br
 \fB3\fR        \- niew³a¶ciwe parametry opcji
 .br
-\fB4\fR        \- gid jest ju¿ u¿ywany (i nie u¿yto opcji -o)
+\fB4\fR        \- gid jest ju¿ u¿ywany (i nie u¿yto opcji \-o)
 .br
 \fB6\fR        \- podana grupa nie istnieje
 .br
index b46d1db9101fa37d08323c813b96b38c07db3b33..9f77fd8848810edf9523dce75908d06b78df62db 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: groups.1,v 1.8 2003/04/26 13:24:15 kloczek Exp $
-.\" {PRM/WK/1999-09-25}
+.\" $Id: groups.1,v 1.9 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
index f56e7b4cc4c0ec59144d3014ffd4ab881a72caa0..90f98040a2613b3465fed09fe47758434f5551cf 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: grpck.8,v 1.8 2004/08/09 17:39:42 kloczek Exp $
-.\" {PTM/WK/1999-09-17}
+.\" $Id: grpck.8,v 1.9 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -30,7 +29,7 @@
 .SH NAZWA
 grpck \- weryfikacja spójno¶ci plików grup
 .SH SK£ADNIA
-\fBgrpck\fR [\fB-r\fR] [\fIgroup shadow\fR]
+\fBgrpck\fR [\fB\-r\fR] [\fIgroup shadow\fR]
 .SH OPIS
 \fBgrpck\fR weryfikuje integralno¶æ informacji autentykacji systemowej.
 Sprawdzane s± wszystkie pozycje w plikach \fI/etc/group\fR
@@ -42,12 +41,12 @@ si
 Kontrolowane jest czy ka¿da pozycja posiada:
 .sp
 .in +.5i
-- w³a¶ciw± liczbê pól
+\- w³a¶ciw± liczbê pól
 .br
-- unikaln± nazwê grupy
+\- unikaln± nazwê grupy
 .br
-- poprawn± listê cz³onków i administratorów
-.in -.5i
+\- poprawn± listê cz³onków i administratorów
+.in \-.5i
 .sp
 .P
 Kontrola w³a¶ciwej liczby pól i niepowtarzalnej nazwy grupy jest
@@ -67,13 +66,13 @@ u
 Domy¶lnie \fBgrpck\fR dzia³a na plikach \fI/etc/group\fR oraz \fI/etc/gshadow\fR.
 Przy pomocy parametrów \fIgroup\fR i \fIshadow\fR u¿ytkownik mo¿e wybraæ inne
 pliki.
-Dodatkowo, u¿ytkownik mo¿e wykonaæ polecenie w trybie tylko-do-odczytu, poprzez
-podanie flagi \fB-r\fR.
+Dodatkowo, u¿ytkownik mo¿e wykonaæ polecenie w trybie tylko\-do\-odczytu, poprzez
+podanie flagi \fB\-r\fR.
 Powoduje to, ¿e na wszystkie pytania dotycz±ce zmian zostanie, bez ingerencji
 u¿ytkownika, u¿yta odpowied¼ \fBnie\fR.
 \fBgrpck\fR mo¿e byæ równie¿ u¿yty do sortowania pozycji w plikach \fI/etc/group\fR 
 oraz \fI/etc/gshadow\fR wed³ug GID. By w³±czyæ tryb sortowania nale¿y przekazaæ
-opcjê \fB-s\fR. Nie s± wtedy przeprowadzane ¿adne kontrole, tylko sortowanie.
+opcjê \fB\-s\fR. Nie s± wtedy przeprowadzane ¿adne kontrole, tylko sortowanie.
 .SH PLIKI
 \fI/etc/group\fR       \- informacja o kontach grup
 .br
index 93eaed0e95439de0c27134ecd1507e5c03a4c21b..7326ee272827e44c10135ed5e37b53f41d2e36ae 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: id.1,v 1.8 2003/04/26 13:24:15 kloczek Exp $
-.\" {PTM/WK/1999-09-25}
+.\" $Id: id.1,v 1.10 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" SUCH DAMAGE.
 .TH ID 1
 .SH NAZWA
-id - wy¶wietlenie nazw bie¿±cych ID u¿ytkownika i grupy
+id \- wy¶wietlenie nazw bie¿±cych ID u¿ytkownika i grupy
 .SH SK£ADNIA
-\fBid [\fB-a\fR]
+\fBid\fR [\fB\-a\fR]
 .SH OPIS
 .B id
 wy¶wietla bie¿±ce nazwy (lub warto¶ci) rzeczywistych i efektywnych
 identyfikatorów u¿ytkownika i grupy.
 Je¿eli dana warto¶æ nie posiada odpowiedniego wpisu w \fI/etc/passwd\fR
 lub \fI/etc/group\fR, to zostanie wy¶wietlona bez odpowiedniej nazwy.
-U¿yvie opcji \fB-a\fR powoduje wy¶wietlenie zestaw grup w systemach, które
+U¿yvie opcji \fB\-a\fR powoduje wy¶wietlenie zestaw grup w systemach, które
 obs³uguj± równoczesne cz³onkostwo w wielu grupach.
 .SH PLIKI
-\fI/etc/passwd\fR \- informacja o kontach u¿ytkowników
+\fI/etc/passwd\fR      \- informacja o kontach u¿ytkowników
 .br
-\fI/etc/group\fR \- informacja o grupach
+\fI/etc/group\fR       \- informacja o grupach
 .SH ZOBACZ TAK¯E
 .BR getgid (2),
 .BR getgroups (2),
index 7921c13901a5defd93cc03b6451d1e0ce787a531..57e1e99e4363e41e82c256a8a7f3d58cc95459c0 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: lastlog.8,v 1.12 2004/12/12 20:36:50 kloczek Exp $
-.\" {PTM/WK/1999-09-18}
+.\" $Id: lastlog.8,v 1.13 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1992, Phillip Street and Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -42,15 +41,15 @@ flag) pozycje pliku wy
 \fB/etc/passwd\fR.
 .SH OPCJE
 Polecenie \fBlastlog\fR posiada nastêpuj±ce opcje:
-.IP "\fB-h\fR, \fB--help\fR"
+.IP "\fB\-h\fR, \fB\-\-help\fR"
 Wy¶wietla krótk± informacjê o tym jak u¿ywaæ program i koñczy pracê.
-.IP "\fB-t\fR, \fB--time\fR \fIDNI\fR"
+.IP "\fB\-t\fR, \fB\-\-time\fR \fIDNI\fR"
 Wy¶wietla tylko ostatnie logowania u¿ytkowników nie starsze ni¿ zadana
 ilo¶æ \fIDNI\fR.
-.IP "\fB-u\fR, \fB--user\fR \fILOGIN\fR"
+.IP "\fB\-u\fR, \fB\-\-user\fR \fILOGIN\fR"
 Wy¶wietla tylko informacji o ostanim logowaniu u¿ytkownika \fILOGIN\fR.
 .TP
-Opcja \fB-t\fR przes³ania u¿ycie opcji \fB-u\fR.
+Opcja \fB\-t\fR przes³ania u¿ycie opcji \fB\-u\fR.
 .PP
 Je¿eli u¿ytkownik nigdy siê nie logowa³ to zamiast portu i czasu logowania
 zostanie wy¶wietlony komunikat \fB"**Never logged in**"\fR (nigdy siê nie
@@ -60,7 +59,7 @@ logowa
 .SH PRZESTROGI
 Du¿e luki w numeracji UID powoduj±, ¿e program bêdzie pracowa³ d³u¿ej, nie
 wy¶wietlaj±c wyników (np. je¶li mmdf=800, za¶ ostatni uid=170, to program
-bêdzie sprawia³ wra¿enie zawieszonego w trakcie przetwarzania uid 171-799).
+bêdzie sprawia³ wra¿enie zawieszonego w trakcie przetwarzania uid 171\-799).
 .SH AUTORZY
 Julianne Frances Haugh (jockgrrl@ix.netcom.com)
 .br
index 03ab6db3038401f9dd6dd23a4365a7543be480e7..ac1ffbb07a0288d39f409436e6f871e33dc20490 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: limits.5,v 1.2 2001/01/25 10:43:54 kloczek Exp $
-.\" {PTM/WK/1999-09-18}
+.\" $Id: limits.5,v 1.3 2005/04/05 18:47:51 kloczek Exp $
 .TH LIMITS 5
 .SH NAZWA
 limits \- definicja ograniczeñ zasobów
@@ -33,7 +32,7 @@ D: max. rozmiar danych (KB)
 .br
 F: maksymalny rozmiar pliku (KB)
 .br
-M: max. locked-in-memory address space (KB)
+M: max. locked\-in\-memory address space (KB)
 .br
 N: max. liczba otwartych plików
 .br
@@ -65,7 +64,7 @@ Nazwa u
 Je¿eli w pliku \fBLIMITS_FILE\fP posiadasz wiele takich wpisów, to jako
 domy¶lny zostanie u¿yty ostatni z nich.
 .PP
-Pojedyncza kreska "\fB-\fP" ca³kowicie wy³±cza ograniczenia dla u¿ytkownika.
+Pojedyncza kreska "\fB\-\fP" ca³kowicie wy³±cza ograniczenia dla u¿ytkownika.
 .PP
 Zauwa¿ te¿, proszê, ¿e wszystkie te ograniczenia definiowane s± w odniesieniu
 do pojedynczej sesji (per login). Nie s± one globalne ani sta³e. Byæ mo¿e bêd±
index 3f4175ad9c730223faeb9ddf0c71bdc9049b9988..f654b05e4eb0f87f40ea7434992b441fc9a2b8c1 100644 (file)
@@ -1,6 +1,5 @@
-.\" $Id: login.1,v 1.10 2004/08/04 13:02:25 kloczek Exp $
-.\" {PTM/WK/1999-09-25}
-.\" Copyright 1989 - 1994, Julianne Frances Haugh
+.\" $Id: login.1,v 1.13 2005/04/05 18:47:51 kloczek Exp $
+.\" Copyright 1989 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .SH NAZWA
 login \- rozpocznij sesjê pracy w systemie
 .SH SK£ADNIA
-\fBlogin\fR [\fB-p\fR] [\fIu¿ytkownik\fR] [\fIZMIENNA=WARTO¦Æ\fR ...]
+\fBlogin\fR [\fB\-p\fR] [\fIu¿ytkownik\fR] [\fIZMIENNA=WARTO¦Æ\fR ...]
 .br
-\fBlogin\fR [\fB-p\fR] [\fB-h \fIhost\fR] [\fB-f \fIu¿ytkownik\fR]
+\fBlogin\fR [\fB\-p\fR] [\fB\-h\fR \fIhost\fR] [\fB\-f\fR \fIu¿ytkownik\fR]
 .br
-\fBlogin\fR [\fB-p\fR] \fB-r \fIhost\fR
+\fBlogin\fR [\fB\-p\fR] \fB\-r\fR \fIhost\fR
 .SH OPIS
 .B login
 s³u¿y do utworzenia nowej sesji pracy z systemem. Zwykle wywo³ywane jest
@@ -50,13 +49,6 @@ przez u
 Próba wykonania \fBlogin\fR z pow³oki innej ni¿ zg³oszeniowa powoduje
 wypisanie komunikatu o b³êdzie.
 .PP
-Przy wywo³aniu polecenia z zachêty \fIlogin:\fR, u¿ytkownik mo¿e po swojej
-nazwie wprowadziæ zmienne ¶rodowiska. Zmienne te wprowadzane s± w postaci:
-\fBNAZWA=WARTO¦Æ\fR. Nie wszystkie zmienne mog± jednak byæ ustawione w ten
-sposób, szczególnie \fBPATH\fR, \fBHOME\fR i \fBSHELL\fR.
-Dodatkowo, zakazane mo¿e byæ \fBIFS\fR (input field separator: separator pól
-wej¶ciowych), je¿eli pow³ok± zg³oszeniow± u¿ytkownika jest \fB/bin/sh\fR.
-.PP
 U¿ytkownik pytany jest o has³o, je¶li takowe istnieje.
 Dla zapobie¿enia ujawnieniu has³a wy¶wietlanie wprowadzanych znaków jest
 w trakcie jego wprowadzania wy³±czone. Dozwolona jest jedynie niewielka liczba
@@ -98,19 +90,19 @@ znaku pow
 katalog g³ówny nowego systemu plików, do którego u¿ytkownik siê zaloguje.
 .SH OPCJE
 .TP
-.B -f
+.B \-f
 Nie przeprowadzanie autentykacji, u¿ytkownik ju¿ zosta³ zautentykowany.
 .TP
-.B -h
+.B \-h
 Name zdalnego hosta dla tego logowania.
 .TP
-.B -p
+.B \-p
 Zachowanie ¶rodowiska.
 .TP
-.B -r
+.B \-r
 Przeprowadzenie procedury automatycznego logowania dla rlogin.
 .PP
-Opcje \fB-r\fP, \fB-h\fP i \fB-f\fP mog± byæ u¿ywane tylko w przypadku
+Opcje \fB\-r\fP, \fB\-h\fP i \fB\-f\fP mog± byæ u¿ywane tylko w przypadku
 wywo³ania \fBlogin\fP przez roota.
 .SH PRZESTROGI
 Niniejsza wersja \fBlogin\fR posiada wiele opcji kompilacji, z których tylko
@@ -119,22 +111,21 @@ cz
 Po³o¿enie plików mo¿e byæ ró¿ne w zale¿no¶ci od konfiguracji systemu.
 .SH PLIKI
 .br
-\fI/var/run/utmp\fR \- lista bie¿±cych sesji pracy
-.br
-\fI/var/log/wtmp\fR \- lista poprzednich sesji pracy
+\fI/var/run/utmp\fR            \- lista bie¿±cych sesji pracy
 .br
-\fI/etc/passwd\fR \- informacje o kontach u¿ytkowników
+\fI/var/log/wtmp\fR            \- lista poprzednich sesji pracy
 .br
-\fI/etc/shadow\fR \- zakodowane has³a i informacje o ich wa¿no¶ci
+\fI/etc/passwd\fR              \- informacje o kontach u¿ytkowników
 .br
-\fI/etc/motd\fR \- plik 'wiadomo¶ci dnia'
+\fI/etc/shadow\fR              \- zakodowane has³a i informacje o ich wa¿no¶ci
 .br
-\fI/etc/nologin\fR \- zapobiega logowaniu innych ni¿ root
+\fI/etc/motd\fR                        \- plik 'wiadomo¶ci dnia'
 .br
-\fI/etc/ttytype\fR \- lista typów terminali
+\fI/etc/nologin\fR             \- zapobiega logowaniu innych ni¿ root
 .br
+\fI/etc/ttytype\fR             \- lista typów terminali
 .br
-\fI$HOME/.hushlogin\fR \- zapobiega wy¶wietlaniu wiadomo¶ci dnia
+\fI$HOME/.hushlogin\fR \- zapobiega wy¶wietlaniu wiadomo¶ci dnia
 .SH ZOBACZ TAK¯E
 .BR mail (1),
 .BR passwd (1),
index 9d08104f9076b94d21fb8837de3d30d287666d76..94dc361ce4acdffe0facd3ed0f3db12d445c7ce4 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: login.access.5,v 1.2 2001/01/25 10:43:54 kloczek Exp $
-.\" {PTM/WK/1999-09-17}
+.\" $Id: login.access.5,v 1.3 2005/04/05 18:47:51 kloczek Exp $
 .TH LOGIN.ACCESS 5
 .\" .Dt SKEY.ACCESS 5
 .\" .Os FreeBSD 1.2
@@ -14,7 +13,7 @@ dla kt
 Gdy kto¶ siê loguje, plik
 .I login.access
 przeszukiwany jest do znalezienia pierwszej pozycji pasuj±cej do danej
-kombinacji (u¿ytkownik, host), lub, w przypadku logowañ nie-sieciowych
+kombinacji (u¿ytkownik, host), lub, w przypadku logowañ nie\-sieciowych
 kombinacji (u¿ytkownik, tty). Pole zezwolenia w tej tablicy pozycji okre¶la
 czy logowanie bêdzie przyjête czy odrzucone.
 .PP
@@ -23,16 +22,16 @@ znakiem dwukropka, pola:
 .sp 1
 .IR    zezwolenie : u¿ytkownicy : pochodzenie
 .sp 1
-Pierwsze pole powinno zawieraæ znak "\fB+\fR" (dostêp zapewniony) lub "\fB-\fR"
+Pierwsze pole powinno zawieraæ znak "\fB+\fR" (dostêp zapewniony) lub "\fB\-\fR"
 (zakaz dostêpu). Drugie z pól powinno zawieraæ listê jednego lub wiêcej nazw
 u¿ytkowników, grup lub s³owo
 .B ALL
 (zawsze pasuje do wszystkich). Trzecie pole powinno byæ list± jednej lub wiêcej
-nazw tty (dla logowañ nie-sieciowych), nazw hostów, domen (rozpoczynaj±cych siê
+nazw tty (dla logowañ nie\-sieciowych), nazw hostów, domen (rozpoczynaj±cych siê
 od kropki), adresów hostów, internetowych numerów sieci (koñcz±cych siê
 kropk±), s³owem
 .B ALL
-(wszystkie - zawsze pasuje) lub
+(wszystkie \- zawsze pasuje) lub
 .B LOCAL
 (dopasowuje dowolny ³añcuch nie zawieraj±cy kropki).
 Je¿eli uruchomisz NIS mo¿esz u¿yæ @nazwagrupysieciowej we wzorcu hosta
index 9e84b101da96f120badaead84b67aa527dbee21a..86dea8d5576767390f4f04695213b688b00676df 100644 (file)
@@ -1,6 +1,5 @@
-.\" $Id: login.defs.5,v 1.5 2002/03/09 11:16:19 ankry Exp $
-.\" {PTM/WK/1999-09-18}
-.\" Copyright 1991 - 1993, Julianne Frances Haugh and Chip Rosenthal
+.\" $Id: login.defs.5,v 1.7 2005/04/05 18:47:51 kloczek Exp $
+.\" Copyright 1991 \- 1993, Julianne Frances Haugh and Chip Rosenthal
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -256,7 +255,7 @@ T
 Jest to obs³ugiwane tylko w systemach z interfejsem
 .IR termio,
 np. System V. Je¿eli nie podano parametru, to znak kasowania zostanie
-zainicjowany na \s-2CTRL/U\s0. Informacjê powi±zan± znajdziesz w opisie
+zainicjowany na \s\-2CTRL/U\s0. Informacjê powi±zan± znajdziesz w opisie
 ERASECHAR.
 .\"
 .IP "LASTLOG_ENAB (logiczna)"
@@ -302,7 +301,7 @@ MAIL_DIR.
 .IP "MAIL_DIR (napis)"
 Okre¶la pe³n± nazwê ¶cie¿kow± do katalogu zawieraj±cego pliki skrzynki
 pocztowej u¿ytkownika. Do powy¿szej ¶cie¿ki doklejana jest nazwa u¿ytkownika,
-tworz±c w ten sposób zmienn± ¶rodowiskow± MAIL - ¶cie¿kê do skrzynki
+tworz±c w ten sposób zmienn± ¶rodowiskow± MAIL \- ¶cie¿kê do skrzynki
 u¿ytkownika. Musi byæ zdefiniowany albo niniejszy parametr albo parametr
 MAIL_FILE; je¶li nie zostan± zdefiniowane, to zostanie nadana, byæ mo¿e
 niepoprawna, warto¶æ domy¶lna. Zobacz tak¿e opis MAIL_CHECK_ENAB.
@@ -310,7 +309,7 @@ niepoprawna, warto
 .IP "MAIL_FILE (napis)"
 Okre¶la nazwê pliku skrzynki pocztowej u¿ytkownika. Nazwa ta doklejana jest
 na koniec nazwy katalogu domowego u¿ytkownika tworz±c zmienn± ¶rodowiskow±
-MAIL - ¶cie¿kê do skrzynki u¿ytkownika. Musi byæ zdefiniowany albo niniejszy
+MAIL \- ¶cie¿kê do skrzynki u¿ytkownika. Musi byæ zdefiniowany albo niniejszy
 parametr albo parametr MAIL_DIR; je¶li nie zostan± zdefiniowane, to zostanie
 nadana, byæ mo¿e niepoprawna, warto¶æ domy¶lna. Zobacz tak¿e opis
 MAIL_CHECK_ENAB.
@@ -322,8 +321,8 @@ to program
 .B passwd
 bêdzie kodowaæ nowo zmieniane has³a przy pomocy nowego algorytmu
 .BR crypt (3),
-opartego o MD-5. Algorytm ten pierwotnie pojawi³ siê we FreeBSD i jest te¿
-obs³ugiwany przez libc-5.4.38 oraz glibc-2.0 (lub wy¿sz±) w Linuksie.
+opartego o MD\-5. Algorytm ten pierwotnie pojawi³ siê we FreeBSD i jest te¿
+obs³ugiwany przez libc\-5.4.38 oraz glibc\-2.0 (lub wy¿sz±) w Linuksie.
 Pozwala on na u¿ywanie hase³ d³u¿szych ni¿ 8 znaków (ograniczone przez
 .BR getpass (3)
 do 127 znaków), ale nie jest zgodny z tradycyjnymi implementacjami polecenia
@@ -343,9 +342,6 @@ si
 roz³±czony. Je¿eli nie podano tego parametru, to opisana funkcja bêdzie
 wy³±czona.
 .\"
-.IP "NOLOGIN_STR (napis)"
-XXX powinno zostaæ udokumentowane.
-.\"
 .IP "OBSCURE_CHECKS_ENAB (logiczna)"
 Je¿eli ma warto¶æ
 .IR yes ,
@@ -415,13 +411,13 @@ Patrz tak
 .BR passwd (5).
 .\"
 .IP "SU_NAME (napis)"
-Przypisuje nazwê polecenia do uruchomionego "su -". Na przyk³ad, je¶li
+Przypisuje nazwê polecenia do uruchomionego "su \-". Na przyk³ad, je¶li
 parametr ten jest zdefiniowany jako "su", to polecenie
 .BR ps (1)
-poka¿e uruchomione polecenie jako "-su". Je¶li parametr ten jest
+poka¿e uruchomione polecenie jako "\-su". Je¶li parametr ten jest
 niezdefiniowany, to
 .BR ps (1)
-poka¿e nazwê faktycznie wykonywanej pow³oki, np. co¶ w rodzaju "-sh".
+poka¿e nazwê faktycznie wykonywanej pow³oki, np. co¶ w rodzaju "\-sh".
 .\"
 .IP "SULOG_FILE (napis)"
 Pokazuje pe³n± nazwê ¶cie¿kow± pliku, w którym rejestrowane jest wykorzystanie
@@ -538,7 +534,7 @@ OBSCURE_CHECKS_ENAB PASS_MIN_LEN
 PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
 .IP su 12
 ENV_HZ ENV_SUPATH ENV_TZ HUSHLOGIN_FILE MAIL_CHECK_ENAB MAIL_DIR
-MOTD_FILE NOLOGIN_STR QUOTAS_ENAB SULOG_FILE SYSLOG_SU_ENAB
+MOTD_FILE QUOTAS_ENAB SULOG_FILE SYSLOG_SU_ENAB
 .IP sulogin 12
 ENV_HZ ENV_SUPATH ENV_TZ MAIL_DIR QUOTAS_ENAB TTYPERM
 .ad
index 3af4aa9b157ca50870eaad60c88d8b70d1bd120e..d80623b3245d180711119d47c35f1d620316db20 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: logoutd.8,v 1.4 2002/10/07 17:32:42 kloczek Exp $
-.\" {PTM/WK/1999-09-17}
+.\" $Id: logoutd.8,v 1.5 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -43,8 +42,8 @@ czasie na danym porcie.
 Ka¿da sesja pracy (logowania) naruszaj±ca ograniczenia zawarte
 w \fI/etc/porttime\fR jest koñczona.
 .SH PLIKI
-.IR /etc/porttime " - zezwolenia dla logowania na portach"
+.IR /etc/porttime " \- zezwolenia dla logowania na portach"
 .br
-.IR /var/run/utmp "     - bie¿±ce sesje pracy"
+.IR /var/run/utmp "     \- bie¿±ce sesje pracy"
 .SH AUTOR
 Julianne Frances Haugh (jockgrrl@ix.netcom.com)
index 384dfe482e267353d61fcabc86c09ccd0572ad90..7b25dbbc96d96a081e504d530900fbd5fe927222 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: mkpasswd.8,v 1.6 2004/11/02 19:28:32 kloczek Exp $
-.\" {PTM/WK/1999-09-16}
+.\" $Id: mkpasswd.8,v 1.7 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -30,7 +29,7 @@
 .SH NAZWA
 mkpasswd \- aktualizuj pliki baz passwd i group
 .SH SK£ADNIA
-\fBmkpasswd\fR [\fB-fvgps\fR] \fIplik\fR
+\fBmkpasswd\fR [\fB\-fvgps\fR] \fIplik\fR
 .SH OPIS
 .B mkpasswd
 czyta plik w formacie okre¶lonym przez flagi i konwertuje go postaci
@@ -39,22 +38,22 @@ Wymienione pliki baz danych u
 w systemach o du¿ej liczbie u¿ytkowników.
 Pliki wynikowe otrzymaj± nazwy \fIplik\fR.dir i \fIplik\fR.pag.
 .SH OPCJE
-Opcja \fB-f\fR powoduje, ¿e \fBmkpasswd\fR ignoruje istnienie plików
+Opcja \fB\-f\fR powoduje, ¿e \fBmkpasswd\fR ignoruje istnienie plików
 wynikowych i nadpisuje je.
 Normalnie \fBmkpasswd\fR skar¿y siê na istnienie plików wynikowych
 i koñczy pracê.
 .PP
-Opcja \fB-v\fR powoduje wy¶wietlanie informacji o ka¿dym konwertowanym
+Opcja \fB\-v\fR powoduje wy¶wietlanie informacji o ka¿dym konwertowanym
 rekordzie oraz komunikatu koñcowego.
 .PP
-Opcja \fB-g\fR traktuje plik ¼ród³owy tak, jak gdyby by³ on w formacie
+Opcja \fB\-g\fR traktuje plik ¼ród³owy tak, jak gdyby by³ on w formacie
 pliku \fI/etc/group\fR.
-Przy po³±czeniu z opcj± \fB-s\fR u¿ywany jest format pliku \fI/etc/gshadow\fR.
+Przy po³±czeniu z opcj± \fB\-s\fR u¿ywany jest format pliku \fI/etc/gshadow\fR.
 .PP
-Opcja \fB-p\fR traktuje plik ¼ród³owy tak, jak gdyby by³ on w formacie
+Opcja \fB\-p\fR traktuje plik ¼ród³owy tak, jak gdyby by³ on w formacie
 pliku \fI/etc/passwd\fR.
 Jest to opcja domy¶lna.
-Przy po³±czeniu z opcj± \fB-s\fR u¿ywany jest format pliku \fI/etc/shadow\fR.
+Przy po³±czeniu z opcj± \fB\-s\fR u¿ywany jest format pliku \fI/etc/shadow\fR.
 .SH PRZESTROGI
 U¿ycie wiêcej ni¿ jednego pliku bazy ogranicza siê do systemów posiadaj±cych
 bibliotekê baz danych NDBM. Mo¿e zatem nie byæ dostêpne w ka¿dym systemie.
@@ -63,13 +62,13 @@ Poniewa
 podczas dokonywania zmian, \fBmkpasswd\fR potrzebne jest jedynie
 do ponownego utworzenia usuniêtego lub zepsutego pliku bazy.
 .SH PLIKI
-.IR /etc/passwd "  - informacja o kontach u¿ytkowników"
+\fI/etc/passwd\fR      \- informacja o kontach u¿ytkowników
 .br
-.IR /etc/shadow "  - chroniona informacja o u¿ytkownikach"
+\fI/etc/shadow\fR      \- chroniona informacja o u¿ytkownikach
 .br
-.IR /etc/group "   - informacja o grupach"
+\fI/etc/group\fR       \- informacja o grupach
 .br
-.IR /etc/gshadow " - chroniona informacja o grupach"
+\fI/etc/gshadow\fR     \- chroniona informacja o grupach
 .SH ZOBACZ TAK¯E
 .BR group (5),
 .BR passwd (5),
index de7e77bfdf4acf014cc755a91fc0816ab00b3142..345299167a6efedf7aed4871d87d8d4c6af1040a 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: newgrp.1,v 1.9 2004/12/16 23:00:55 kloczek Exp $
-.\" {PTM/WK/1999-09-15}
+.\" $Id: newgrp.1,v 1.11 2005/04/12 18:08:47 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -32,9 +31,9 @@ newgrp \- zalogowanie do nowej grupy
 .br
 sg \- wykonanie polecenia z innym ID grupy
 .SH SK£ADNIA
-\fBnewgrp\fR [\fB-\fR] [\fIgrupa\fR]
+\fBnewgrp\fR [\fB\-\fR] [\fIgrupa\fR]
 .br
-\fBsg\fR [\fB-\fR] [\fIgrupa\fR [[\fB-c\fR] \fIpolecenie\fR]]
+\fBsg\fR [\fB\-\fR] [\fIgrupa\fR [[\fB\-c\fR] \fIpolecenie\fR]]
 .SH OPIS
 \fBnewgrp\fR s³u¿y do zmiany bie¿±cego identyfikatora grupy (GID) podczas
 sesji. W przypadku podania opcji \fB\-\fR ¶rodowisko u¿ytkownika zostanie
@@ -50,7 +49,7 @@ o podanie has
 cz³onkiem, to efektem bêdzie odmowa dostêpu.
 .PP
 Polecenie \fBsg\fR dzia³a podobnie do \fBnewgrp\fR, z tym ¿e mo¿na mu podaæ
-polecenie. Podane polecenie zostanie wykonane przy u¿yciu pow³oki Bourne'a.
+polecenie. Podane polecenie zostanie wykonane przy u¿yciu pow³oki \fB/bin/sh\fR.
 W przypadku wiêkszo¶ci pow³ok, z których \fBsg\fR mo¿e zostaæ uruchomione,
 polecenie sk³adaj±ce siê z wielu s³ów nale¿y umie¶ciæ w cudzys³owach. 
 Inna ró¿nica pomiêdzy \fBnewgrp\fR a \fBsg\fR polega na tym, ¿e niektóre
@@ -59,9 +58,9 @@ now
 \fBsg\fR, wiêc po zakoñczeniu \fBsg\fR u¿ytkownik powraca do swego
 poprzedniego identyfikatora grupy.
 .SH PLIKI
-\fI/etc/passwd\fR \- informacja o kontach u¿ytkowników
+\fI/etc/passwd\fR      \- informacja o kontach u¿ytkowników
 .br
-\fI/etc/group\fR \- informacja o grupach
+\fI/etc/group\fR       \- informacja o grupach
 .SH ZOBACZ TAK¯E
 .BR id (1),
 .BR login (1),
index aab6bfcd601fd298f8ebdcc044755db47ed44de6..b7c455785563389272954ae1b748d8fc4fc978a4 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: newusers.8,v 1.4 2001/01/27 02:55:54 kloczek Exp $
-.\" {PTM/WK/1999-09-15}
+.\" $Id: newusers.8,v 1.5 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,7 +27,7 @@
 .\" SUCH DAMAGE.
 .TH NEWUSERS 8
 .SH NAZWA
-newusers - wsadowa aktualizacja i tworzenie nowych u¿ytkowników
+newusers \- wsadowa aktualizacja i tworzenie nowych u¿ytkowników
 .SH SK£ADNIA
 \fBnewusers\fR [\fInowi_u¿ytkownicy\fR]
 .SH OPIS
@@ -54,12 +53,8 @@ u
 .PP
 Polecenie to przeznaczone jest do u¿ytku w du¿ych systemach, gdzie aktualizuje
 siê wiele kont naraz.
-.SH PRZESTROGI
-.\" Po u¿yciu \fBnewusers\fR musi zostaæ wykonane polecenie \fImkpasswd\fR,
-.\" aktualizuj±ce pliki DBM hase³ (DBM password files).
 Plik ¼ród³owy, zawieraj±cy niezakodowane has³a, musi byæ chroniony.
 .SH ZOBACZ TAK¯E
-.\" mkpasswd(8), passwd(1), useradd(1)
 .BR passwd (1),
 .BR useradd (8)
 .SH AUTOR
index 2d0eafdf1404ae22a138a63b45d226cb961f9e35..e3a29b769254d176063577419c290760ad8194e5 100644 (file)
@@ -1,7 +1,4 @@
-.\" $Id: passwd.1,v 1.11 2003/04/28 17:52:15 kloczek Exp $
-.\" Translation (c) 1999 Wojtek Kotwica
-.\"             (c) 2002 Andrzej Krzysztofowicz
-.\" 
+.\" $Id: passwd.1,v 1.15 2005/04/14 00:13:56 kloczek Exp $
 .\" Copyright 1989 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .SH NAZWA
 passwd \- zmiana has³a u¿ytkownika
 .SH SK£ADNIA
-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fInazwa\fR]
+\fBpasswd\fR [\fB\-f\fR|\fB\-s\fR] [\fInazwa\fR]
 .br
-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgrupa\fR
+\fBpasswd\fR [\fB\-g\fR] [\fB\-r\fR|\fB\-R\fR] \fIgrupa\fR
 .br
-\fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR]
-[\fB-w \fIostrze¿\fR] [\fB-i \fInieakt\fR] \fIlogin\fR
+\fBpasswd\fR [\fB\-x\fR \fImax\fR] [\fB\-n\fR \fImin\fR]
+[\fB\-w\fR \fIostrze¿\fR] [\fB\-i\fR \fInieakt\fR] \fIlogin\fR
 .br
-\fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR
+\fBpasswd\fR {\fB\-l\fR|\fB\-u\fR|\fB\-d\fR|\fB\-S\fR|\fB\-e\fR} \fIlogin\fR
 .SH OPIS
 \fBpasswd\fR zmienia has³a kont u¿ytkowników i grup.
 Zwyk³y u¿ytkownik mo¿e zmieniæ wy³±cznie has³o w³asnego konta, superu¿ytkownik
@@ -49,9 +46,9 @@ Administrator grupy mo
 u¿ytkownika, jego pow³oka zg³oszeniowa (logowania) czy daty i interwa³y dotycz±ce
 wa¿no¶ci has³a.
 .PP
-U¿ycie opcji \fB-s\fR powoduje wywo³anie przez passwd programu chsh w celu
-zmiany pow³oki u¿ytkownika, u¿ycie opcji \fB-f\fR powoduje wywo³anie przez
-passwd programu chfn w celu zmiany infirmacji o u¿ytkowniku. Te dwie opcje
+U¿ycie opcji \fB\-s\fR powoduje wywo³anie przez \fBpasswd\fR programu \fBchsh\fR
+w celu zmiany pow³oki u¿ytkownika, u¿ycie opcji \fB\-f\fR powoduje wywo³anie
+przez passwd programu chfn w celu zmiany infirmacji o u¿ytkowniku. Te dwie opcje
 istniej± jedynie dla zgodno¶ci, gdy¿ wymienione programy mog± byæ wywo³ywane
 bezpo¶rednio.
 .SS Zmiany has³a
@@ -85,46 +82,46 @@ Je
 i porównuje drugi wpis z pierwszym.
 Oba wpisy musz± byæ takie same, by has³o zosta³o zmienione.
 .SS Has³a grup
-Je¿eli pos³u¿ono siê opcj± \fB-g\fR, to zmieniane jest has³o podanej grupy.
+Je¿eli pos³u¿ono siê opcj± \fB\-g\fR, to zmieniane jest has³o podanej grupy.
 U¿ytkownik powinien byæ albo superu¿ytkownikiem albo administratorem tej grupy.
 Nie wystêpuje pytanie o bie¿±ce has³o grupy.
-Do usuwania bie¿±cego has³a danej grupy s³u¿y opcja \fB-g\fR w po³±czeniu
-z \fB-r\fR. Pozwala to na dostêp do grupy tylko jej cz³onkom.
-Opcja \fB-R\fR w po³±czeniu z \fR-g\fR ogranicza dostêp do grupy wszystkim
+Do usuwania bie¿±cego has³a danej grupy s³u¿y opcja \fB\-g\fR w po³±czeniu
+z \fB\-r\fR. Pozwala to na dostêp do grupy tylko jej cz³onkom.
+Opcja \fB\-R\fR w po³±czeniu z \fR\-g\fR ogranicza dostêp do grupy wszystkim
 u¿ytkownikom.
 .SS Informacja o wa¿no¶ci konta
 Superu¿ytkownik mo¿e zmieniaæ informacjê o wieku konta pos³uguj±c siê opcjami
-\fB-x\fR, \fB-n\fR, \fB-w\fR oraz \fB-i\fR.
-Opcja \fB-x\fR s³u¿y do ustawiania maksymalnej liczby dni, przez jakie has³o
+\fB\-x\fR, \fB\-n\fR, \fB\-w\fR oraz \fB\-i\fR.
+Opcja \fB\-x\fR s³u¿y do ustawiania maksymalnej liczby dni, przez jakie has³o
 pozostaje wa¿ne.
 Po up³ywie \fImax\fR dni, has³o musi byæ zmienione.
-Opcja \fB-n\fR ustawia minimaln± liczbê dni, jakie musz± up³yn±æ zanim has³o
+Opcja \fB\-n\fR ustawia minimaln± liczbê dni, jakie musz± up³yn±æ zanim has³o
 bêdzie mog³o byæ zmienione.
 U¿ytkownik nie otrzyma zezwolenia na zmianê has³a przed up³ywem \fImin\fR dni.
-Opcja \fB-w\fR s³u¿y do ustawienia liczby dni przed up³ywem terminu wa¿no¶ci
+Opcja \fB\-w\fR s³u¿y do ustawienia liczby dni przed up³ywem terminu wa¿no¶ci
 has³a, przez które u¿ytkownik bêdzie otrzymywa³ ostrze¿enie mówi±ce mu, ile dni
 pozosta³o do tej daty. Ostrze¿enia zaczn± pojawiaæ siê \fIostrze¿\fR dni przed
 up³ywem wa¿no¶ci has³a.
-Opcja \fB-i\fR (nieaktywno¶æ) s³u¿y do wy³±czania konta po up³ywie zadanej
+Opcja \fB\-i\fR (nieaktywno¶æ) s³u¿y do wy³±czania konta po up³ywie zadanej
 liczby dni po wyga¶niêciu has³a.
 Po up³ywie \fInieakt\fR dni od przeterminowania has³a u¿ytkownik nie mo¿e ju¿
 korzystaæ z konta.
 .PP
 Je¶li istnieje potrzeba natychmiastowego przeterminowania has³a dla danego
-konta, mo¿na pos³u¿yæ siê opcj± \fB-e\fR. Spowoduje to zmuszenie u¿ytkownika
-do zmiany has³a przy najbli¿szym logowaniu. Za pomoc± opcji \fB-d\fR mo¿na
+konta, mo¿na pos³u¿yæ siê opcj± \fB\-e\fR. Spowoduje to zmuszenie u¿ytkownika
+do zmiany has³a przy najbli¿szym logowaniu. Za pomoc± opcji \fB\-d\fR mo¿na
 skasowaæ has³o u¿ytkownika (uczyniæ je pustym). Nale¿y zachowaæ szczególn±
 ostro¿no¶æ u¿ywaj±c tej opcji, gdy¿ mo¿e ona spowodowaæ, ¿e do zalogowania
 siê na konto nie bêdzie w ogóle potrzebne has³o, pozostawiaj±c system otwartym
 dla nieproszonych go¶ci.
 .SS Utrzymywanie i konserwacja konta
 Konta u¿ytkowników mog± byæ blokowane i odblokowywane przy pomocy opcji
-\fB-l\fR i \fB-u\fR.
-Opcja \fB-l\fR wy³±cza konto zmieniaj±c jego has³o na warto¶æ nieodpowiadaj±c±
+\fB\-l\fR i \fB\-u\fR.
+Opcja \fB\-l\fR wy³±cza konto zmieniaj±c jego has³o na warto¶æ nieodpowiadaj±c±
 ¿adnemu mo¿liwemu zakodowanemu has³u.
-Opcja \fB-u\fR ponownie udostêpnia konto przywracaj±c uprzedni± warto¶æ has³a.
+Opcja \fB\-u\fR ponownie udostêpnia konto przywracaj±c uprzedni± warto¶æ has³a.
 .PP
-Stan konta mo¿na uzyskaæ przy pomocy opcji \fB-S\fR.
+Stan konta mo¿na uzyskaæ przy pomocy opcji \fB\-S\fR.
 Informacja o stanie sk³ada siê z 6 czê¶ci.
 Pierwsza wskazuje, czy konto u¿ytkownika jest zablokowane (L) (locked),
 nie posiada has³a (NP) (no password) lub ma funkcjonalne has³o (P) (password).
@@ -133,7 +130,7 @@ nast
 nieaktywno¶ci has³a.
 .SS Podpowiedzi dotycz±ce hase³ u¿ytkownika
 Bezpieczeñstwo has³a zale¿y od si³y algorytmu koduj±cego oraz rozmiaru
-przestrzeni kluczy. Metoda kodowania u¿ywana w Systemie \fB\s-2UNIX\s+2\fR
+przestrzeni kluczy. Metoda kodowania u¿ywana w Systemie \fB\s\-2UNIX\s+2\fR
 oparta jest o algorytm NBS DES i jest bardzo bezpieczna. Rozmiar przestrzeni
 kluczy zale¿y od losowo¶ci wybranego has³a.
 .PP
@@ -205,6 +202,7 @@ Polecenie \fBpasswd\fR ko
 \fB6\fR        \- niew³a¶ciwe parametry opcji
 .SH "ZOBACZ TAK¯E"
 .BR group (5),
-.BR passwd (5)
+.BR passwd (5),
+.BR shadow (5)
 .SH AUTOR
 Julianne Frances Haugh <jockgrrl@ix.netcom.com>
index 2e16f7563caebd9537781bb91d9f528cfcf5de9e..e740e02d5709be496e3fbbd111aa59a2846ee27d 100644 (file)
@@ -1,30 +1,30 @@
-.\" $Id: passwd.5,v 1.3 2002/03/09 11:16:20 ankry Exp $
-.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
+.\" $Id: passwd.5,v 1.4 2005/04/05 18:47:51 kloczek Exp $
+.\" Copyright 1989 - 1990, Julianne Frances Haugh
+.\" All rights reserved.
 .\"
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of Julianne F. Haugh nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
-.\" The GNU General Public License's references to "object code"
-.\" and "executables" are to be interpreted as the output of any
-.\" document formatting or typesetting system, including
-.\" intermediate and printed output.
-.\"
-.\" This manual is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
-.\" USA.
-.\"
-.\" Modified Sun Jul 25 10:46:28 1993 by Rik Faith (faith@cs.unc.edu)
-.\" Modified Sun Aug 21 18:12:27 1994 by Rik Faith (faith@cs.unc.edu)
-.\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl)
-.\" Polish translation nov.1996 piotr.pogorzelski@ippt.gov.pl
+.\" THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .TH PASSWD 5 "24 Czerwiec 1993" "Linux" "Podrêcznik programisty linuxowego"
 .SH NAZWA
 passwd \- plik passwd definiuj±cy u¿ytkowników systemu
index 7b6c085f87fc84a74a3567a6beefdc2e5901c2ff..33eb8d11058440704700c09388da010190982c2e 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: porttime.5,v 1.3 2001/01/25 10:43:54 kloczek Exp $
-.\" {PTM/WK/1999-09-17}
+.\" $Id: porttime.5,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -48,20 +47,20 @@ skr
 tygodnia przyjmowane jest \fBAl\fR.
 .SH PRZYK£ADY
 Poni¿szy wpis zezwala u¿ytkownikowi \fBjfh\fR na dostêp do ka¿dego portu
-w dni robocze od godziny 9-tej do 17-tej.
+w dni robocze od godziny 9\-tej do 17\-tej.
 .br
 .sp 1
-       *:jfh:Wk0900-1700
+       *:jfh:Wk0900\-1700
 .br
 .sp 1
 Poni¿sze pozycje pozwalaj± na dostêp do konsoli (/dev/console) wy³±cznie
-u¿ytkownikom \fBroot\fR i \fBoper\fR - w dowolnym czasie.
+u¿ytkownikom \fBroot\fR i \fBoper\fR \- w dowolnym czasie.
 Przyk³ad ten pokazuje, ¿e plik \fI/etc/porttime\fR stanowi uporz±dkowan±
 listê czasów dostêpu. Ka¿dy inny u¿ytkownik bêdzie pasowa³ do drugiej pozycji
 listy, nie zezwalaj±cej na dostêp w ¿adnym czasie.
 .br
 .sp 1
-       console:root,oper:Al0000-2400
+       console:root,oper:Al0000\-2400
 .br
        console:*:
 .br
@@ -70,11 +69,11 @@ Poni
 poza godzinami pracy.
 .br
 .sp 1
-       *:games:Wk1700-0900,SaSu0000-2400
+       *:games:Wk1700\-0900,SaSu0000\-2400
 .br
 .sp 1
 .SH PLIKI
-.IR /etc/porttime " - plik zawieraj±cy czasy dostêpu do portów"
+\fI/etc/porttime\fR    \- plik zawieraj±cy czasy dostêpu do portów
 .SH ZOBACZ TAK¯E
 .BR login (1)
 .SH AUTOR
index fd09cacbdf702360d82ca668f767f5b6852acd9a..6b4d6fe0152e1b9a9b153416ae27df31c1da32e8 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: pw_auth.3,v 1.3 2001/01/25 10:43:54 kloczek Exp $
-.\" {PTM/WK/1999-09-15}
+.\" $Id: pw_auth.3,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -69,40 +68,40 @@ Przyczyna (\fIreason\fR) jest jedn
 .IP \fBPW_SU\fR 1i
 Wykonaj uwierzytelnienie dla bie¿±cego rzeczywistego identyfikatora u¿ytkownika
 próbuj±c prze³±czyæ rzeczywisty ID na podanego u¿ytkownika.
-Program uwierzytelniaj±cy zostanie wywo³any z opcj± \fB-s\fR poprzedzaj±c±
+Program uwierzytelniaj±cy zostanie wywo³any z opcj± \fB\-s\fR poprzedzaj±c±
 nazwê u¿ytkownika.
 .IP \fBPW_LOGIN\fR 1i
 Wykonaj uwierzytelnienie dla danego u¿ytkownika tworz±c now± sesjê pracy
-(loginow±). Program uwierzytelniaj±cy zostanie wywo³any z opcj± \fB-l\fR,
+(loginow±). Program uwierzytelniaj±cy zostanie wywo³any z opcj± \fB\-l\fR,
 po której wyst±pi nazwa u¿ytkownika.
 .IP \fBPW_ADD\fR 1i
 Utwórz nowy wpis dla danego u¿ytkownika.
 Pozwala to programowi uwierzytelniania na zainicjowanie miejsca dla nowego
 u¿ytkownika.
-Program zostanie wywo³any z opcj± \fB-a\fR, po której wyst±pi nazwa u¿ytkownika.
+Program zostanie wywo³any z opcj± \fB\-a\fR, po której wyst±pi nazwa u¿ytkownika.
 .IP \fBPW_CHANGE\fR 1i
 Zmieñ istniej±cy wpis dla danego u¿ytkownika.
 Pozwala to na programowi uwierzytelniaj±cemu na zmianê informacji autentykuj±cej
 dla istniej±cego u¿ytkownika.
-Program zostanie wywo³any z opcj± \fB-c\fR poprzedzaj±c± nazwê u¿ytkownika.
+Program zostanie wywo³any z opcj± \fB\-c\fR poprzedzaj±c± nazwê u¿ytkownika.
 .IP \fBPW_DELETE\fR 1i
 Usuñ informacjê autentykuj±c± dla danego u¿ytkownika.
 Pozwala programowi uwierzytelniania na odzyskanie miejsca po u¿ytkowniku, który
 nie bêdzie ju¿ identyfikowany przy u¿yciu tego programu.
-Program uwierzytelniania zostanie wywo³any z opcj± \fB-d\fR,
+Program uwierzytelniania zostanie wywo³any z opcj± \fB\-d\fR,
 po której wyst±pi nazwa u¿ytkownika.
 .IP \fBPW_TELNET\fR 1i
 Wykonaj uwierzytelnianie u¿ytkownika pod³±czaj±cego siê do systemu przy pomocy
 polecenia \fBtelnet\fR.
-Program zostanie wywo³any z opcj± \fB-t\fR, po której wyst±pi nazwa u¿ytkownika.
+Program zostanie wywo³any z opcj± \fB\-t\fR, po której wyst±pi nazwa u¿ytkownika.
 .IP \fBPW_RLOGIN\fR 1i
 Wykonaj uwierzytelnienie u¿ytkownika pod³±czaj±cego siê do systemu przy pomocy
 polecenia \fBrlogin\fR.
-Program zostanie wywo³any z opcj± \fB-r\fR, po której wyst±pi nazwa u¿ytkownika.
+Program zostanie wywo³any z opcj± \fB\-r\fR, po której wyst±pi nazwa u¿ytkownika.
 .IP \fBPW_FTP\fR 1i
 Wykonaj uwierzytelnienie u¿ytkownika pod³±czaj±cego siê do systemu przy pomocy
 polecenia \fBftp\fR.
-Program uwierzytelniania zostanie wywo³any z opcj± \fB-f\fR,
+Program uwierzytelniania zostanie wywo³any z opcj± \fB\-f\fR,
 po której wyst±pi nazwa u¿ytkownika.
 Do komunikacji z u¿ytkownikiem NIE s± dostêpne standardowe deskryptory plików.
 Deskryptor standardowego wej¶cia zostanie pod³±czony do procesu macierzystego,
@@ -112,7 +111,7 @@ uwierzytelniania pos
 .IP \fBPW_REXEC\fR 1i
 Wykonaj uwierzytelnienie u¿ytkownika pod³±czaj±cego siê do systemu przy pomocy
 polecenia \fIrexec\fR.
-Program zostanie wywo³any z opcj± \fB-x\fR, po której wyst±pi nazwa u¿ytkownika.
+Program zostanie wywo³any z opcj± \fB\-x\fR, po której wyst±pi nazwa u¿ytkownika.
 Do komunikacji ze zdalnym u¿ytkownikiem NIE s± dostêpne standardowe
 deskryptory plików.
 Deskryptor standardowego wej¶cia zostanie pod³±czony do procesu macierzystego,
index b12a82c2b1e3a6a4c33fff721a101691ee3c892d..c65ff10ad81733de392e4fc3b4d69e1feb94bb71 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: pwck.8,v 1.6 2004/08/09 17:39:42 kloczek Exp $
-.\" {PTM/WK/1999-09-14}
+.\" $Id: pwck.8,v 1.7 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH PWCK 8
 .SH NAZWA
-pwck - weryfikacja spójno¶ci plików hase³
+pwck \- weryfikacja spójno¶ci plików hase³
 .SH OPIS
-\fBpwck\fR [\fB-r\fR] [\fIpasswd\fR \fIshadow\fR]
+\fBpwck\fR [\fB\-r\fR] [\fIpasswd\fR \fIshadow\fR]
 .SH OPIS
 \fBpwck\fR weryfikuje integralno¶æ informacji autentykacji systemowej.
 W plikach \fI/etc/passwd\fR i \fI/etc/shadow\fR sprawdzane s± wszystkie
@@ -42,18 +41,18 @@ si
 Kontrolowane jest czy ka¿da pozycja posiada:
 .sp
 .in +.5i
-- w³a¶ciw± liczbê pól
+\- w³a¶ciw± liczbê pól
 .br
-- unikaln± nazwê u¿ytkownika
+\- unikaln± nazwê u¿ytkownika
 .br
-- poprawny identyfikator u¿ytkownika i grupy
+\- poprawny identyfikator u¿ytkownika i grupy
 .br
-- poprawn± grupê g³ówn±
+\- poprawn± grupê g³ówn±
 .br
-- poprawny katalog domowy
+\- poprawny katalog domowy
 .br
-- poprawn± pow³okê zg³oszeniow± (startow±)
-.in -.5i
+\- poprawn± pow³okê zg³oszeniow± (startow±)
+.in \-.5i
 .sp
 .P
 Kontrola w³a¶ciwej liczby pól i niepowtarzalnej nazwy u¿ytkownika jest
@@ -73,13 +72,13 @@ u
 Domy¶lnie \fBpwck\fR dzia³a na plikach \fI/etc/passwd\fR oraz \fI/etc/shadow\fR.
 Przy pomocy parametrów \fIpasswd\fR i \fIshadow\fR u¿ytkownik mo¿e wybraæ inne
 pliki.
-Dodatkowo, u¿ytkownik mo¿e wykonaæ polecenie w trybie tylko-do-odczytu, poprzez
-podanie flagi \fB-r\fR.
+Dodatkowo, u¿ytkownik mo¿e wykonaæ polecenie w trybie tylko\-do\-odczytu, poprzez
+podanie flagi \fB\-r\fR.
 Powoduje to, ¿e na wszystkie pytania dotycz±ce zmian zostanie, bez ingerencji
 u¿ytkownika, u¿yta odpowied¼ \fBnie\fR.
 \fBpwck\fR mo¿e byæ równie¿ u¿yty do sortowania pozycji w plikach \fI/etc/passwd\fR 
 oraz \fI/etc/shadow\fR wed³ug UID. By w³±czyæ tryb sortowania nale¿y przekazaæ
-opcjê \fB-s\fR. Nie s± wtedy przeprowadzane ¿adne kontrole, tylko sortowanie.
+opcjê \fB\-s\fR. Nie s± wtedy przeprowadzane ¿adne kontrole, tylko sortowanie.
 .SH PLIKI
 \fI/etc/passwd\fR      \- informacja o kontach u¿ytkowników
 .br
index eff61cf053be29f573a51e56cbe07ea570fac1e8..ab1e9519b2897a675178cce5b1c1ebed27922f84 100644 (file)
@@ -1,8 +1,7 @@
-.\" $Id: pwconv.8,v 1.3 2002/03/09 11:16:22 ankry Exp $
-.\" {PTM/WK/1999-09-14}
+.\" $Id: pwconv.8,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .TH PWCONV 8 "26 wrze¶nia 1997"
 .SH NAZWA
-pwconv, pwunconv, grpconv, grpunconv - konwersja dot. chronionych plików hase³ i grup
+pwconv, pwunconv, grpconv, grpunconv \- konwersja dot. chronionych plików hase³ i grup
 .SH SK£ADNIA
 .B pwconv
 .br
index fc1446426ec51522d303f7b2e516a7ec2175c9e7..4bc13dc92d9981021bf4aa4d90753988275176ff 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: shadow.3,v 1.4 2003/01/07 14:32:57 kloczek Exp $
-.\" {PTM/WK/1999-09-16}
+.\" $Id: shadow.3,v 1.5 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -81,7 +80,7 @@ struct spwd {
 .br
        unsigned long int       sp_flag; /* zarezerwowane do przysz³ego u¿ytku */
 .br
-.in -.5i
+.in \-.5i
 }
 .PP
 Znaczenie poszczególnych pól:
@@ -127,18 +126,18 @@ by
 Kontynuuje próbê uzyskania drugiej blokady przy pomocy \fBspw_lock\fR
 przez czas pozosta³y z pocz±tkowych 15 sekund.
 Je¿eli po up³ywie 15 sekund którakolwiek z tych prób zawiedzie,
-to \fBlckpwdf\fR zwraca -1.
+to \fBlckpwdf\fR zwraca \-1.
 Je¿eli uzyskano obie blokady, to zwracane jest 0.
 .SH DIAGNOSTYKA
 Je¿eli nie ma dalszych pozycji lub podczas przetwarzania pojawi siê b³±d,
 to procedury zwracaj± NULL.
 Procedury zwracaj±ce warto¶æ typu \fBint\fR zwracaj± 0 w przypadku powodzenia
-a -1 dla pora¿ki.
+a \-1 dla pora¿ki.
 .SH PRZESTROGI
 Procedury te mog± byæ u¿ywane wy³±cznie przez superu¿ytkownika, gdy¿ dostêp
 do dodatkowego, chronionego pliku hase³ jest ograniczony.
 .SH PLIKI
-.IR /etc/shadow " - zakodowane has³a u¿ytkowników"
+.IR /etc/shadow " \- zakodowane has³a u¿ytkowników"
 .SH ZOBACZ TAK¯E
 .BR getpwent (3),
 .BR shadow (5)
index 47b0bd6c209751a9eae3a548cdf139dcdad8c7ef..a334c2d98d39c523d0a1ed182c34423c42ee6b58 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: shadow.5,v 1.3 2001/01/25 10:43:54 kloczek Exp $
-.\" 1999 PTM Przemek Borys
+.\" $Id: shadow.5,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -54,8 +53,8 @@ Dni od 1 stycznia 1970, okre
 .IP "" .5i
 Pole zarezerwowane
 .PP
-Pole has³a musi byæ wype³nione. Zakodowane has³o sk³ada siê z 13-24 znaków z
-64 znakowego alfabetu a-z, A-Z, 0-9, \. i /.
+Pole has³a musi byæ wype³nione. Zakodowane has³o sk³ada siê z 13\-24 znaków z
+64 znakowego alfabetu a\-z, A\-Z, 0\-9, \. i /.
 Dla szczegó³ów interpretacji tego napisu, odsy³amy do \fIcrypt(3)\fR.
 .PP
 Data ostatniej zmiany has³a jest podawana jako liczba dni od 1 stycznia
@@ -75,15 +74,15 @@ wieku znajduj
 Je¶li ma byæ utrzymywane bezpieczeñstwo hase³, to plik ten nie mo¿e byæ
 odczytywalny dla zwyk³ych u¿ytkowników.
 .SH Pliki
-.IR /etc/passwd " - informacje o kontach u¿ytkowników"
+\fI/etc/passwd\fR      \- informacje o kontach u¿ytkowników
 .br
-.IR /etc/shadow " - zakodowane has³a u¿ytkowników"
+\fI/etc/shadow\fR      \- zakodowane has³a u¿ytkowników
 .SH ZOBACZ TAK¯E
-chage(1),
-login(1),
-passwd(1),
-su(1),
-sulogin(1),
-passwd(5),
-pwconv(8),
-pwunconv(8)
+.BR chage (1),
+.BR login (1),
+.BR passwd (1),
+.BR su (1),
+.BR passwd (5),
+.BR pwconv (8),
+.BR pwunconv (8),
+.BR sulogin (8)
index e3556e84cb20c0d8f4b0002e72486301bc989540..8ed4074c49e7d3bf0147c0844bd900501a9a8d0c 100644 (file)
@@ -1,8 +1,7 @@
-.\" $Id: shadowconfig.8,v 1.3 2001/08/23 23:10:51 kloczek Exp $
-.\" {PTM/WK/1999-09-14}
+.\" $Id: shadowconfig.8,v 1.4 2005/04/05 18:47:51 kloczek Exp $
 .TH SHADOWCONFIG 8 "19 kwietnia 1997" "Debian GNU/Linux"
 .SH NAZWA
-shadowconfig - prze³±cza ochronê hase³ i grup przez pliki shadow
+shadowconfig \- prze³±cza ochronê hase³ i grup przez pliki shadow
 .SH SK£ADNIA
 .B "shadowconfig"
 .IR on " | " off
index 9f5e1c667021547fc8a1cd781f0a75a66000a13f..b8ca553cccdbc14252cc404b2120cee55cd0add8 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: su.1,v 1.8 2003/04/26 13:24:15 kloczek Exp $
-.\" {PTM/WK/1999-09-25}
+.\" $Id: su.1,v 1.9 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -30,7 +29,7 @@
 .SH NAZWA
 su \- zmiana identyfikatora u¿ytkownika lub uzyskanie praw superu¿ytkownika
 .SH SK£ADNIA
-\fBsu\fR [\fB-\fR] [\fInazwa_u¿ytkownika\fR [\fIargumenty\fR]]
+\fBsu\fR [\fB\-\fR] [\fInazwa_u¿ytkownika\fR [\fIargumenty\fR]]
 .SH OPIS
 .B su
 s³u¿y do stawania siê innym u¿ytkownikiem w trakcie w³asnej sesji.
@@ -43,7 +42,7 @@ u
 .PP
 Po nazwie u¿ytkownika mog± wyst±piæ dodatkowe argumenty. Zostan± one
 dostarczone pow³oce zg³oszeniowej u¿ytkownika. W szczególno¶ci, argument
-\fB-c\fR spowoduje, ¿e nastêpny argument zostanie potraktowany jak polecenie
+\fB\-c\fR spowoduje, ¿e nastêpny argument zostanie potraktowany jak polecenie
 przez wiêkszo¶æ interpretatorów poleceñ.
 Polecenie zostanie wykonane przez pow³okê wymienion± w \fI/etc/passwd\fR dla
 docelowego u¿ytkownika.
@@ -64,9 +63,9 @@ katalog g
 Niniejsza wersja \fBsu\fR posiada wiele opcji kompilacji, z których tylko
 czê¶æ bêdzie mieæ zastosowanie w danej instalacji.
 .SH PLIKI
-\fI/etc/passwd\fR \- informacje o kontach u¿ytkowników
+\fI/etc/passwd\fR      \- informacje o kontach u¿ytkowników
 .br
-\fI/etc/shadow\fR \- zakodowane has³a i informacje o ich wa¿no¶ci
+\fI/etc/shadow\fR      \- zakodowane has³a i informacje o ich wa¿no¶ci
 .SH ZOBACZ TAK¯E
 .BR login (1),
 .BR sh (1),
index a8ebe60945265b89e6f09aca1ff4fa3f88e850b0..990a091b9299ddacfc084cb2d97d128a964926c0 100644 (file)
@@ -1,9 +1,8 @@
-.\" $Id: suauth.5,v 1.2 2001/01/25 10:43:54 kloczek Exp $
-.\" {PTM/WK/1999-09-14}
+.\" $Id: suauth.5,v 1.3 2005/04/05 18:47:51 kloczek Exp $
 .TH SUAUTH 5 "14 lutego 1996"
 .UC 5
 .SH NAZWA
-suauth - plik szczegó³owej kontroli su
+suauth \- plik szczegó³owej kontroli su
 .\" detailed su control file
 .SH SK£ADNIA
 .B /etc/suauth
@@ -25,17 +24,17 @@ Plik sformatowany jest jak poni
 traktowane jak wiersze komentarza i ignorowane.
 .PP
 .RS
-na-ID:z-ID:AKCJA
+na\-ID:z\-ID:AKCJA
 .RE
 .PP
-Gdzie na-ID jest albo s³owem
+Gdzie na\-ID jest albo s³owem
 .B ALL
 (wszyscy), albo list± nazw u¿ytkowników rozdzielonych "," albo te¿ s³owami
 .B ALL EXCEPT
 (wszyscy oprócz), po których nastêpuje lista nazw u¿ytkowników
 rozdzielonych przecinkiem.
 .PP
-z-ID jest formatowane w taki sam sposób jak na-ID, z wyj±tkiem tego, ¿e
+z\-ID jest formatowane w taki sam sposób jak na\-ID, z wyj±tkiem tego, ¿e
 rozpoznawane jest dodatkowe s³owo
 .BR GROUP.
 Zapis 
@@ -44,7 +43,7 @@ Zapis
 Po s³owie
 .B GROUP
 powinna wyst±piæ jedna lub wiêcej rozdzielonych przecinkiem nazw grup.
-Niewystarczaj±ce jest podanie g³ównego ID danej grupy - niezbêdny jest
+Niewystarczaj±ce jest podanie g³ównego ID danej grupy \- niezbêdny jest
 wpis w 
 .BR /etc/group (5).
 .PP
index 71af1fc0a35a6b01d8a120081f29f1094d761794..1cfd3103ed3ae93ef2a4cc489f0e4f2f857d5728 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: sulogin.8,v 1.5 2003/04/26 13:24:15 kloczek Exp $
-.\" {PTM/WK/1999-09-14}
+.\" $Id: sulogin.8,v 1.7 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1989 - 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -28,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH SULOGIN 8
 .SH NAZWA
-sulogin - login w trybie jednou¿ytkownikowym
+sulogin \- login w trybie jednou¿ytkownikowym
 .SH SK£ADNIA
-\fBsulogin\fR [\fIurz±dzenie-tty\fR]
+\fBsulogin\fR [\fIurz±dzenie\-tty\fR]
 .SH OPIS
 .B sulogin
 wywo³ywane jest przez \fBinit\fR przed zezwoleniem u¿ytkownikowi
@@ -41,16 +40,16 @@ pozycj
 .PP
 Wy¶wietlany jest symbol zachêty
 .IP "" .5i
-Type control-d to proceed with normal startup,
+Type control\-d to proceed with normal startup,
 .br
 (or give root password for system maintenance):
 .br
-Naci¶nij control-d by kontynuowaæ zwyk³y start,
+Naci¶nij control\-d by kontynuowaæ zwyk³y start,
 .br
 (lub podaj has³o u¿ytkownika root do konserwacji systemu):
 .PP
 Wej¶cie i wyj¶cie bêd± obs³ugiwane przy u¿yciu standardowych deskryptorów
-plików, chyba ¿e u¿yto opcjonalnego argumentu - nazwy urz±dzenia.
+plików, chyba ¿e u¿yto opcjonalnego argumentu \- nazwy urz±dzenia.
 .PP
 Je¶li u¿ytkownik wprowadzi poprawne has³o superu¿ytkownika root,
 to rozpoczynana jest sesja pracy na koncie root.
@@ -79,9 +78,9 @@ Jednak
 urz±dzenia, za¶ wiele poleceñ u¿ytkownika mo¿e byæ niedostêpnych lub
 nie funkcjonowaæ.
 .SH PLIKI
-.IR /etc/passwd " - informacja o kontach u¿ytkowników"
+.IR /etc/passwd " \- informacja o kontach u¿ytkowników"
 .br
-.IR /etc/shadow " - zakodowane has³a i informacja o ich wa¿no¶ci"
+.IR /etc/shadow " \- zakodowane has³a i informacja o ich wa¿no¶ci"
 .SH ZOBACZ TAK¯E
 .BR login (1),
 .BR sh (1),
index 47dd6b4f31088b4e4f332b0ff8265ce99d1c7e20..c823c80fac2a0345bdf7fc14b4b7c294a5f8c865 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: useradd.8,v 1.18 2004/11/04 03:06:32 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: useradd.8,v 1.20 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" SUCH DAMAGE.
 .TH USERADD 8
 .SH NAZWA
-useradd - twórz nowego u¿ytkownika lub zmieñ domy¶ln± informacjê o nowym
+useradd \- twórz nowego u¿ytkownika lub zmieñ domy¶ln± informacjê o nowym
 .SH SK£ADNIA
 .TP 8
-\fBuseradd\fR [\fB-c\fR \fIkomentarz\fR] [\fB-d\fR \fIkatalog_domowy\fR]
+\fBuseradd\fR [\fB\-c\fR \fIkomentarz\fR] [\fB\-d\fR \fIkatalog_domowy\fR]
 .br
-[\fB-e\fR \fIdata_wa¿no¶ci\fR] [\fB-f\fR \fIdni_nieaktywno¶ci\fR]
+[\fB\-e\fR \fIdata_wa¿no¶ci\fR] [\fB\-f\fR \fIdni_nieaktywno¶ci\fR]
 .br
-[\fB-g\fR \fIgrupa_pocz±tkowa\fR] [\fB-G\fR \fIgrupa\fR[,...]]
+[\fB\-g\fR \fIgrupa_pocz±tkowa\fR] [\fB\-G\fR \fIgrupa\fR[,...]]
 .br
-[[\fB-M\fR] \fB-m\fR [\fB-k\fR \fIkatalog_wzorców\fR]] [\fB-o\fR] [\fB-p\fR \fIhas³o\fR]
+[[\fB\-M\fR] \fB\-m\fR [\fB\-k\fR \fIkatalog_wzorców\fR]] [\fB\-o\fR] [\fB\-p\fR \fIhas³o\fR]
 .br
-[\fB-s\fR \fIpow³oka\fR] [\fB-u\fR \fIuid\fR] \fIlogin\fR
+[\fB\-s\fR \fIpow³oka\fR] [\fB\-u\fR \fIuid\fR] \fIlogin\fR
 .TP 8
-\fBuseradd\fR \fB-D\fR [\fB-g\fI domy¶lna_grupa\fR] [\fB-b\fI katalog_bazowy\fR]
+\fBuseradd\fR \fB\-D\fR [\fB\-g\fR \fIdomy¶lna_grupa\fR] [\fB\-b\fR \fIkatalog_bazowy\fR]
 .br
-[\fB-f\fI domy¶lne_dni_nieaktywno¶ci\fR]
+[\fB\-f\fR \fIdomy¶lne_dni_nieaktywno¶ci\fR]
 .br
-[\fB-e\fI domy¶lna_data_wa¿no¶ci\fR]
+[\fB\-e\fR \fIdomy¶lna_data_wa¿no¶ci\fR]
 .br
-[\fB-s\fI domy¶lna_pow³oka\fR]
+[\fB\-s\fR \fIdomy¶lna_pow³oka\fR]
 .SH OPIS
 .SS Tworzenie nowych u¿ytkowników
 .\" .SS Creating New Users
-Wywo³ane bez opcji \fB-D\fR, polecenie \fBuseradd\fR tworzy nowe konto
+Wywo³ane bez opcji \fB\-D\fR, polecenie \fBuseradd\fR tworzy nowe konto
 u¿ytkownika pos³uguj±c siê warto¶ciami podanymi w wierszu poleceñ i domy¶lnymi
 warto¶ciami z systemu.
 W zale¿no¶ci od potrzeb i opcji wiersza poleceñ, do plików systemowych
@@ -59,91 +58,77 @@ zostanie wprowadzone nowe konto u
 domowy, do którego przekopiowane zostan± pliki startowe.
 .SH OPCJE
 Polecenie \fBuseradd\fR posiada nastêpuj±ce opcje:
-.\" .IP "\fB-A {\fImetoda\fR|\fBDEFAULT\fR},..."
-.\" Okre¶la metodê autentykacji u¿ytkownika.
-.\" Metoda autentykacji jest nazw± programu odpowiedzialnego za weryfikacjê
-.\" to¿samo¶ci u¿ytkownika.
-.\" Mo¿e zostaæ u¿yty ³añcuch \fBDEFAULT\fR w celu zmiany metody autentykacji
-.\" u¿ytkownika na standardow± metodê has³a systemowego.
-.\" Argumentem tej opcji jest lista oddzielonych przecinkami nazw programów.
-.\" Mo¿e ona zawieraæ ³añcuch \fBDEFAULT\fR tylko jednokrotnie.
-.IP "\fB-c \fIkomentarz\fR"
+.IP "\fB\-c\fR \fIkomentarz\fR"
 Pole komentarza dla zak³adanego u¿ytkownika w pliku hase³.
-.IP "\fB-d \fIkatalog_domowy\fR"
+.IP "\fB\-d\fR \fIkatalog_domowy\fR"
 Warto¶æ \fIkatalog_domowy\fR zostanie u¿yta do okre¶lenia katalogu logowania
 nowotworzonego u¿ytkownika.
 Domy¶lnie do \fIdomy¶lny_domowy\fR dodawana jest nazwa u¿ytkownika
 (\fIlogin\fR) tworz±c pe³n± nazwê katalogu logowania.
-.IP "\fB-e \fIdata_wa¿no¶ci\fR"
+.IP "\fB\-e\fR \fIdata_wa¿no¶ci\fR"
 Data, od której konto u¿ytkownika zostanie wy³±czone.
 Data podawana jest w formacie \fIMM/DD/YY\fR.
-.IP "\fB-f \fIdni_nieaktywno¶ci\fR"
+.IP "\fB\-f\fR \fIdni_nieaktywno¶ci\fR"
 Liczba dni po wyga¶niêciu has³a do sta³ego wy³±czenia konta.
 Warto¶æ 0 wy³±cza konto natychmiast po przeterminowaniu has³a, za¶ warto¶æ
--1 wy³±cza tê cechê. Domy¶ln± warto¶ci± jest -1.
-.IP "\fB-g \fIgrupa_pocz±tkowa\fR"
+\-1 wy³±cza tê cechê. Domy¶ln± warto¶ci± jest \-1.
+.IP "\fB\-g\fR \fIgrupa_pocz±tkowa\fR"
 Nazwa lub numer pocz±tkowej grupy logowania u¿ytkownika. Nazwa grupy musi
 istnieæ. Numer grupy musi odnosiæ siê do ju¿ istniej±cej grupy.
 Domy¶lnym numerem grupy jest 1.
-.IP "\fB-G \fIgrupa,[...]\fR"
+.IP "\fB\-G\fR \fIgrupa,[...]\fR"
 Lista dodatkowych grup, do których równie¿ nale¿y u¿ytkownik.
 Ka¿da grupa oddzielona jest od nastêpnej przecinkiem, bez wtr±conej spacji.
 Do grup odnosz± siê te same ograniczenia, które obowi±zuj± przy grupie podanej
-w opcji \fB-g\fR.
+w opcji \fB\-g\fR.
 Domy¶lnie u¿ytkownik nale¿y tylko do grupy pocz±tkowej.
-.IP \fB-M\fR
-RedHat doda³ opcjê CREATE_HOME w pliku login.defs w swojej wersji shadow-utils,
-która powodowa³a domy¶lne u¿ycie \fB-m\fR - ta opcja wy³±cza to. U¿ywanie jej 
+.IP \fB\-M\fR
+RedHat doda³ opcjê CREATE_HOME w pliku login.defs w swojej wersji shadow\-utils,
+która powodowa³a domy¶lne u¿ycie \fB\-m\fR \- ta opcja wy³±cza to. U¿ywanie jej 
 znajduje zastosowanie np. w skryptach, lecz mo¿e byæ powodem niezgodno¶ci
-z innymi wersjami shadow-utils.
-.IP \fB-m\fR
+z innymi wersjami shadow\-utils.
+.IP \fB\-m\fR
 Je¶li nie istnieje katalog domowy u¿ytkownika, to zostanie on utworzony.
-Je¶li pos³u¿ono siê opcj± \fB-k\fR, to bêd± do niego przekopiowane wzorcowe
+Je¶li pos³u¿ono siê opcj± \fB\-k\fR, to bêd± do niego przekopiowane wzorcowe
 pliki startowe zawarte w \fIkatalogu_wzorców\fR. W przeciwnym przypadku,
 zamiast nich zostan± u¿yte pliki zawarte w \fI/etc/skel\fR.
 W katalogu domowym u¿ytkownika zostan± równie¿ utworzone
 podkatalogi zawarte w \fIkatalogu_wzorców\fR lub \fI/etc/skel\fR.
-Opcja \fB-k\fR jest dozwolona tylko w po³±czeniu z opcj± \fB-m\fR.
+Opcja \fB\-k\fR jest dozwolona tylko w po³±czeniu z opcj± \fB\-m\fR.
 Domy¶lnym dzia³aniem jest nie tworzenie katalogu i nie kopiowanie
 jakichkolwiek plików.
-.IP "\fB-o\fR"
+.IP "\fB\-o\fR"
 Umo¿liwia utworzenie u¿ytkownaika z nieunikalnym UID (takim samym jak ju¿
 istniej±cy).
-.IP "\fB-p \fIpasswd\fR"
+.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. 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-s \fIpow³oka\fR"
+.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.
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 Numeryczna warto¶æ identyfikatora u¿ytkownika (user's ID). Warto¶æ ta musi
-byæ niepowtarzalna, chyba ¿e u¿yto opcji \fI-o\fR. Warto¶æ musi byæ nieujemna.
+byæ niepowtarzalna, chyba ¿e u¿yto opcji \fI\-o\fR. Warto¶æ musi byæ nieujemna.
 Domy¶lnie u¿ywana jest tu najmniejsza warto¶æ identyfikatora wiêksza od 999
 i wiêksza od identyfikatorów pozosta³ych u¿ytkowników.
 Warto¶ci od 0 do 999 s± zwykle zarezerwowane dla kont systemowych.
 .SS Zmiana warto¶ci domy¶lnych
-Wywo³ane z opcj± \fB-D\fR, polecenie \fBuseradd\fR albo wy¶wietli bie¿±ce
+Wywo³ane z opcj± \fB\-D\fR, polecenie \fBuseradd\fR albo wy¶wietli bie¿±ce
 warto¶ci domy¶lne, albo zaktualizuje domy¶lne warto¶ci z wiersza poleceñ.
 Dozwolonymi opcjami s±:
-.IP "\fB-b \fIkatalog_bazowy\fR"
+.IP "\fB\-b\fR \fIkatalog_bazowy\fR"
 Pocz±tkowy przedrostek ¶cie¿ki dla katalogu domowego nowego u¿ytkownika.
-Je¶li przy tworzeniu nowego konta nie u¿yto opcji \fB-d\fR, to
+Je¶li przy tworzeniu nowego konta nie u¿yto opcji \fB\-d\fR, to
 na koniec \fIkatalogu_bazowego\fR zostanie dodana nazwa u¿ytkownika, tworz±c
 now± nazwê katalogu.
-.IP "\fB-e \fIdomy¶lna_data_wa¿no¶ci\fR"
+.IP "\fB\-e\fR \fIdomy¶lna_data_wa¿no¶ci\fR"
 Data, od której konto u¿ytkownika zostanie wy³±czone.
-.IP "\fB-f \fIdomy¶lne_dni_nieaktywno¶ci\fR"
+.IP "\fB\-f\fR \fIdomy¶lne_dni_nieaktywno¶ci\fR"
 Liczba dni po wyga¶niêciu has³a do sta³ego wy³±czenia konta.
-.IP "\fB-g \fIdomy¶lna_grupa\fR"
+.IP "\fB\-g\fR \fIdomy¶lna_grupa\fR"
 Nazwa lub numer pocz±tkowej grupy logowania u¿ytkownika. Nazwa grupy musi
 istnieæ. Numer grupy musi odnosiæ siê do ju¿ istniej±cej grupy.
-.IP "\fB-s \fIdomy¶lna_pow³oka\fR"
+.IP "\fB\-s\fR \fIdomy¶lna_pow³oka\fR"
 Nazwa pow³oki (shell) dla nowych u¿ytkowników. Podany program bêdzie u¿yty
 dla wszystkich przysz³ych nowych kont u¿ytkowników.
 .PP
@@ -176,7 +161,7 @@ Polecenie \fBuseadd\fR ko
 .br
 \fB3\fR        \- niew³a¶ciwe parametry opcji
 .br
-\fB4\fR        \- uid jest ju¿ u¿ywany (i nie u¿yto opcji -o)
+\fB4\fR        \- uid jest ju¿ u¿ywany (i nie u¿yto opcji \-o)
 .br
 \fB6\fR        \- podana grupa nie istnieje
 .br
index 36006e6484994c5cbd89a9ae834eaac92e154ea0..e48ce4fec3f15c661f0dde4b2ec698fbef2c5711 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: userdel.8,v 1.10 2004/11/02 19:28:32 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: userdel.8,v 1.11 2005/04/05 18:47:51 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -30,7 +29,7 @@
 .SH NAZWA
 userdel \- usuñ konto u¿ytkownika i powi±zane pliki
 .SH SK£ADNIA
-\fBuserdel\fR [\fB-r\fR] \fIlogin\fR
+\fBuserdel\fR [\fB\-r\fR] \fIlogin\fR
 .SH OPIS
 Polecenie \fBuserdel\fR zmienia systemowe pliki kont, usuwaj±c wszystkie
 zapisy odnosz±ce siê do \fIlogin\fR.
@@ -38,7 +37,7 @@ Podany u
 nastêpuj±ce opcje:
 .SH OPCJE
 .TP
-.B -r
+.B \-r
 Zostan± usuniête zarówno pliki w katalogu domowym u¿ytkownika jak
 i sam ten katalog.
 Pliki po³o¿one w innym systemie plików musz± byæ odszukane i usuniête rêcznie.
index 403282c224f5b80cdf95a73e3a53250d4bbc7f07..f88ceb01a1f473c5c85ef37a39e243f9cfbc5d2f 100644 (file)
@@ -1,5 +1,4 @@
-.\" $Id: usermod.8,v 1.12 2004/11/04 03:06:32 kloczek Exp $
-.\" {PTM/WK/0.1/VIII-1999}
+.\" $Id: usermod.8,v 1.14 2005/04/05 18:22:49 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 usermod \- zmiana danych konta u¿ytkownika
 .SH SK£ADNIA
 .TP 8
-.B usermod
-.\" .RB [ -A
-.\" .RI { metoda | \fBDEFAULT\fR "},... ]"
-.RB [ -c
-.IR komentarz ]
-.RB [ -d
-.IR katalog_domowy " ["
-.BR -m ]]
+\fBusermod\fR [\fB\-c\fR \fIkomentarz\fR] [\fB\-d\fR \fIkatalog_domowy\fR [\fB\-m\fR]]
 .br
-.RB [ -e
-.IR data_wa¿no¶ci ]
-.RB [ -f
-.IR dni_nieaktywno¶ci ]
+[\fB\-e\fR \fIdata_wa¿no¶ci\fR] [\fB\-f\fR \fIdni_nieaktywno¶ci\fR]
 .br
-.RB [ -g
-.IR grupa_pocz±tkowa ]
-.RB [ -G
-.IR grupa [,...]]
+[\fB\-g\fR \fIgrupa_pocz±tkowa\fR] [\fB\-G\fR \fIgrupa\fR [,...]]
 .br
-.RB [ -l
-.IR login_name ]
-.RB [ -s
-.IR pow³oka ]
+[\fB\-l\fR \fIlogin_name\fR] [\fB\-p\fR \fIhas³o\fR]
 .br
-.RB [ -u
-.IR uid " ["
-.BR -o ]]
-.I login
+[\fB\-s\fR \fIpow³oka\fR] [\fB\-u\fR \fIuid\fR [\fB\-o\fR]] [\fB\-L\fR|\fB\-U\fR]
+\fIlogin\fR
 .SH OPIS
 Polecenie \fBusermod\fR zmienia systemowe pliki kont, odzwierciedlaj±c zmiany
 podane w wierszu poleceñ.
 .SH OPCJE
-Posiada ono nastêpuj±ce opcje:
-.\" .IP "\fB-A \fImetoda\fR|\fBDEFAULT\fR"
-.\" Nowa warto¶æ metody autentykacji u¿ytkownika. Metoda autentykacji jest
-.\" nazw± programu odpowiedzialnego za weryfikacjê to¿samo¶ci u¿ytkownika.
-.\" Mo¿e zostaæ u¿yty ³añcuch \fBDEFAULT\fR w celu zmiany metody autentykacji
-.\" u¿ytkownika na standardow± metodê has³a systemowego.
-.\" method to the standard system password method.
-.IP "\fB-c \fIkomentarz\fR"
+Polecenie \fBusermod\fR posiada nastêpuj±ce opcje:
+.IP "\fB\-c\fR \fIkomentarz\fR"
 Nowa warto¶æ pola komentarza dla danego u¿ytkownika w pliku hase³.
 Zwykle jest zmieniana przy pomocy narzêzia \fBchfn\fR(1).
-.IP "\fB-d \fIkatalog_domowy\fR"
-Nowy katalog logowania u¿ytkownika. Je¿eli podano opcjê \fB-m\fR, to zawarto¶æ
+.IP "\fB\-d\fR \fIkatalog_domowy\fR"
+Nowy katalog logowania u¿ytkownika. Je¿eli podano opcjê \fB\-m\fR, to zawarto¶æ
 aktualnego katalogu domowego zostanie przesuniêta do nowego katalogu. Nowy
 katalog domowy jest tworzony je¶li nie istnieje.
-.IP "\fB-e \fIdata_wa¿no¶ci\fR"
+.IP "\fB\-e\fR \fIdata_wa¿no¶ci\fR"
 Data, od której konto danego u¿ytkownika zostanie wy³±czone.
-.\" disabled
 Data podawana jest w formacie \fIMM/DD/YY\fR.
-.IP "\fB-f \fIdni_nieaktywno¶ci\fR"
+.IP "\fB\-f\fR \fIdni_nieaktywno¶ci\fR"
 Liczba dni po wyga¶niêciu has³a do sta³ego wy³±czenia konta.
 Warto¶æ 0 wy³±cza konto natychmiast po przeterminowaniu has³a, za¶ warto¶æ
--1 wy³±cza tê cechê. Domy¶ln± warto¶ci± jest -1.
-.IP "\fB-g \fIgrupa_pocz±tkowa\fR"
+\-1 wy³±cza tê cechê. Domy¶ln± warto¶ci± jest \-1.
+.IP "\fB\-g\fR \fIgrupa_pocz±tkowa\fR"
 Nazwa lub numer pocz±tkowej grupy logowania u¿ytkownika. Nazwa grupy musi
 istnieæ. Numer grupy musi odnosiæ siê do ju¿ istniej±cej grupy.
 Domy¶lnym numerem grupy jest 1.
-.IP "\fB-G \fIgrupa,[...]\fR"
+.IP "\fB\-G\fR \fIgrupa,[...]\fR"
 Lista dodatkowych grup, do których równie¿ nale¿y u¿ytkownik.
 Ka¿da grupa oddzielona jest od nastêpnej przecinkiem, bez wtr±conej spacji.
 Do grup odnosz± siê te same ograniczenia, które obowi±zuj± przy grupie podanej
-w opcji \fB-g\fR.
+w opcji \fB\-g\fR.
 Je¿eli u¿ytkownik jest obecnie cz³onkiem grupy, której nie podano na li¶cie,
 to zostanie z niej usuniêty.
-.IP "\fB-l \fIlogin_name\fR"
+.IP "\fB\-l\fR \fIlogin_name\fR"
 Nazwa u¿ytkownika zostanie zmieniona z \fIlogin\fR na \fIlogin_name\fR.
 Nic wiêcej nie jest zmieniane. W szczególno¶ci, prawdopodobnie powinna zostaæ
 zmieniona nazwa katalogu domowego u¿ytkownika, tak by odzwierciedla³a now±
 nazwê u¿ytkownika.
-.IP "\fB-s \fIpow³oka\fR"
+.IP "\fB\-L\fR"
+Zablokuj has³o u¿ytkownika. Opcja ta powoduje wstawienie '!' na pocz±tku zakodowanego
+has³a. Opcji tej nie mo¿na u¿ywaæ z opcjami \fI\-p\fR, \fI\-U\fR.
+.IP "\fB\-o\fR"
+U¿yte z opcja \fI\-u\fR umo¿liwia zmiane ID u¿ytkownika na warto¶æ nieunikaln±.
+.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\-s\fR \fIpow³oka\fR"
 Nazwa nowej pow³oki (shell) u¿ytkownika. Ustawienie tego pola na puste
 powoduje, ¿e system wybierze domy¶ln± pow³okê logowania.
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 Numeryczna warto¶æ identyfikatora u¿ytkownika (user's ID). Warto¶æ ta musi
-byæ niepowtarzalna, chyba, ¿e u¿yto opcji \fI-o\fR. Warto¶æ musi byæ nieujemna.
+byæ niepowtarzalna, chyba, ¿e u¿yto opcji \fI\-o\fR. Warto¶æ musi byæ nieujemna.
 Warto¶ci od 0 do 999 s± zwykle zarezerwowane dla kont systemowych.
 Wszystkim plikom posiadanym przez u¿ytkownika, a po³o¿onym w drzewie katalogowym
 rozpoczynaj±cym siê od jego katalogu domowego zostanie automatycznie zmieniony
 identyfikator u¿ytkownika pliku.
 Pliki poza katalogiem domowym u¿ytkownika musz± zostaæ zmienione rêcznie.
+.IP "\fB\-U\fR"
+Odblokowuje has³o u¿ytkownika. Opcja ta powoduje usuniecie '!' z pocz±tku
+zakodowanego has³a. Opcji tej nie mo¿na u¿ywaæ z opcjami \fI\-p\fR, \fI\-L\fR.
 .SH OSTRZE¯ENIA
 \fBusermod\fR nie pozwoli na zmianê nazwy zalogowanego u¿ytkownika.
 Je¶li zmieniany jest numeryczny identyfikator u¿ytkownika procesu, to musisz
@@ -121,11 +106,11 @@ W
 W³a¶niciela zadañ at musisz zmieniæ rêcznie.
 Jakiekolwiek zmiany dotycz±ce NIS musisz wykonaæ na serwerze NIS.
 .SH PLIKI
-\fI/etc/passwd\fR \- informacja o kontach u¿ytkowników
+\fI/etc/passwd\fR      \- informacja o kontach u¿ytkowników
 .br
-\fI/etc/shadow\fR \- bezpieczna informacja o kontach u¿ytkowników
+\fI/etc/shadow\fR      \- bezpieczna informacja o kontach u¿ytkowników
 .br
-\fI/etc/group\fR  \- informacja o grupach
+\fI/etc/group\fR       \- informacja o grupach
 .SH ZOBACZ TAK¯E
 .BR chfn (1),
 .BR chsh (1),
index 33fdf6178e0db1c26d87ada9e1386cc122a716d0..013e79871191325a07d6a44b385fa2c7f09ddba6 100644 (file)
@@ -1,19 +1,18 @@
-.\" $Id: vipw.8,v 1.5 2001/12/22 03:28:52 kloczek Exp $
-.\" {PTM\WK\1999-09-14}
+.\" $Id: vipw.8,v 1.6 2005/04/05 18:47:51 kloczek Exp $
 .TH VIPW 8 "26 wrze¶nia 1997"
 .SH NAZWA
-vipw, vigr - edycja plików hase³, grup i ich wersji dodatkowych (shadow)
+vipw, vigr \- edycja plików hase³, grup i ich wersji dodatkowych (shadow)
 .SH SK£ADNIA
-\fBvipw\fR [\fB-s\fR]
+\fBvipw\fR [\fB\-s\fR]
 .br
-\fBvigr\fR [\fB-s\fR]
+\fBvigr\fR [\fB\-s\fR]
 .SH OPIS
 .BR vipw " i " vigr
 umo¿liwiaj± modyfikacjê plików odpowiednio
 .IR /etc/passwd " i " /etc/group .
 Przy zastosowaniu flagi
-.BR -s,
-modyfikuj± tak¿e dodatkowe wersje chronione (shadow) tych plików - odpowiednio
+.BR \-s,
+modyfikuj± tak¿e dodatkowe wersje chronione (shadow) tych plików \- odpowiednio
 .IR /etc/shadow " i " /etc/gshadow " .
 Dla ochrony przed uszkodzeniem plików programy te ustawiaj± odpowiednie
 blokady.
@@ -30,4 +29,3 @@ a na ko
 .BR passwd (5),
 .BR group (5),
 .BR shadow (5)
-.\" {PTM\WK\1999-09-14}
index 3c64cf15bab7fcd9497b777d5c97fe5d37f0fead..17cc7c97f440ef2d1c48795c4bc01bf36148b5f1 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: porttime.5,v 1.9 2003/05/01 18:17:39 kloczek Exp $
+.\" $Id: porttime.5,v 1.11 2005/04/05 18:47:50 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -50,7 +50,7 @@ The following entry allows access to user \fBjfh\fR on every port
 during weekdays from 9am to 5pm.
 .br
 .sp 1
-       *:jfh:Wk0900-1700
+       *:jfh:Wk0900\-1700
 .br
 .sp 1
 The following entries allow access only to the users \fBroot\fR and
@@ -59,20 +59,20 @@ The following entries allow access only to the users \fBroot\fR and
 would match the second entry which does not permit access at any time.
 .br
 .sp 1
-       console:root,oper:Al0000-2400
+       console:root,oper:Al0000\-2400
 .br
        console:*:
 .br
 .sp 1
 The following entry allows access for the user \fBgames\fR on any port
-during non-working hours.
+during non\-working hours.
 .br
 .sp 1
-       *:games:Wk1700-0900,SaSu0000-2400
+       *:games:Wk1700\-0900,SaSu0000\-2400
 .br
 .sp 1
 .SH FILES
-\fI/etc/porttime\fR \  - file containing port access times
+\fI/etc/porttime\fR    \- file containing port access times
 .SH SEE ALSO
 .BR login (1)
 .SH AUTHOR
index e69f8b67ed0e6520be39a29748a51f8bf1d2b979..f58ed8c050612b16415572faac702ba83c8a2e6d 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -89,17 +89,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -193,9 +192,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/pt_BR/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/pt_BR/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/pt_BR/Makefile
+         $(AUTOMAKE) --foreign  man/pt_BR/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index aaf631be54d3ffed852ab038e019b538ef626934..a70bca78c0defba78292e3df4c6de83b35b9f3ea 100644 (file)
 .\" Você deve receber uma cópia da Licença Pública GNU
 .\" junto com este manual; caso contrário, escreva para a Free Software
 .\" Foundation, Inc., 675 mass Ave, Cambridge, MA 02139 USA ou
-.\" em português na Conectiva Informática - http://www.conectiva.com.br
+.\" em português na Conectiva Informática \- http://www.conectiva.com.br
 .\"
-.\"    $Id: gpasswd.1,v 1.2 2003/04/26 13:24:16 kloczek Exp $
+.\"    $Id: gpasswd.1,v 1.3 2005/04/05 19:08:56 kloczek Exp $
 .\"
 .TH GPASSWD 1
 .SH NOME
 gpasswd \- administra o arquivo \fI/etc/group\fR
 .br
 .SH SINOSPE
-.B gpasswd \fIgrupo\fR
+\fBgpasswd\fR \fIgrupo\fR
 .br
-.B gpasswd
-.B -a
-\fIusuário\fR \fIgrupo\fR
+\fBgpasswd \-a\fR \fIusuário\fR \fIgrupo\fR
 .br
-.B gpasswd
-.B -d
-\fIusuário\fR \fIgrupo\fR
+\fBgpasswd \-d\fR \fIusuário\fR \fIgrupo\fR
 .br
-.B gpasswd
-.B -R
-\fIgrupo\fR
+\fBgpasswd \-R\fR \fIgrupo\fR
 .br
 .B gpasswd
-.B -r
+.B \-r
 \fIgrupo\fR
 .br
 .B gpasswd
-.RB [ -A
+.RB [ \-A
 \fIusuário\fR,...]
-.RB [ -M
+.RB [ \-M
 \fIusuário\fR,...]
 \fIgrupo\fR
 .br
@@ -60,16 +54,16 @@ O
 é utilizado para administrar o arquivo \fI/etc/group\fR (e o arquivo
 \fI/etc/gshadow\fR, caso compilado com SHADOWGRP).
 Todos os grupos podem ter administradores, membros e uma senha. O
-administrador do sistema pode usar a opção \fB-A\fR para definir o
-administrador do grupo e \fB-M\fR para definir os membros e todos os seus
+administrador do sistema pode usar a opção \fB\-A\fR para definir o
+administrador do grupo e \fB\-M\fR para definir os membros e todos os seus
 direitos assim como os do administrador.
 .PP
 Administradores de grupos podem adicionar e excluir usuários utilizando as
-opções \fB-a\fR e \fB-d\fR respectivamente. Administradores podem usar a opção
-\fB-r\fR  para remover a senha de um grupo. Quando não há senhas definidas
+opções \fB\-a\fR e \fB\-d\fR respectivamente. Administradores podem usar a opção
+\fB\-r\fR  para remover a senha de um grupo. Quando não há senhas definidas
 para um grupo, somente os membros do grupo podem usar o comando
 .BR newgrp (1) 
-para adicionar novos usuários ao grupo . A opção  \fB-R\fR 
+para adicionar novos usuários ao grupo . A opção  \fB\-R\fR 
 desabilita o acesso ao grupo através do comando 
 .BR newgrp (1)
 .
@@ -82,9 +76,9 @@ solicitar
 esteja habilitado para outros usuários do grupo sem o uso de senha, não
 membros podem também executar o comando, informando porém a senha do grupo.
 .SH ARQUIVOS
-\fI/etc/group\fR \- informações do grupo
+\fI/etc/group\fR       \- informações do grupo
 .br
-\fI/etc/gshadow\fR \- informações do grupo em arquivo shadow
+\fI/etc/gshadow\fR     \- informações do grupo em arquivo shadow
 .SH VEJA TAMBÉM
 .BR newgrp (1),
 .BR groupadd (8),
index 086b65111d6331e797fbe57beb215a4ea0bcf97e..99ec0e3676bdc2bc5d2adc6fd6e61f301f592ccd 100644 (file)
 .\" Você deve receber uma cópia da Licença Pública GNU
 .\" junto com este manual; caso contrário, escreva para a Free Software
 .\" Foundation, Inc., 675 mass Ave, Cambridge, MA 02139 USA ou
-.\" em português na Conectiva Informática Ltda. - http://www.conectiva.com.br
+.\" em português na Conectiva Informática Ltda. \- http://www.conectiva.com.br
 .\"
 .\"
 .\"
-.\"    $Id: groupadd.8,v 1.6 2004/11/04 03:06:32 kloczek Exp $
+.\"    $Id: groupadd.8,v 1.8 2005/04/05 19:08:56 kloczek Exp $
 .\"
 .TH GROUPADD 8
 .SH NOME
 groupadd \- Criar um novo grupo
 .SH SINOPSE
-\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgrupo\fR
+\fBgroupadd\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-f\fR] \fIgrupo\fR
 .SH DESCRIÇÃO
 O comando \fBgroupadd\fR cria um novo grupo usando valores especificados na
 linha de comando e os valores padrões do sistema. O novo grupo será criado
-nos arquivos do sistema, conforme o requerido. As opções que aplicam-se ao
+nos arquivos do sistema, conforme o requerido. As opções que aplicam\-se ao
 comando \fBgroupadd\fR são
-.IP \fB-f\fR
+.IP \fB\-f\fR
 Este é o indicador \fIforce\fR . Ele não irá parar o processamento do
 \fBgroupadd\fR e não finalizará o programa, caso um grupo que esteja sendo
 criado já exista no sistema. Neste caso, o grupo não será alterado(ou
 adicionado novamente).
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g \fIgid\fR"
 A identificação numérica do grupo é denominada ID. Este valor deve ser
-único, a menos que a opção \fB-o\fR seja usada. O valor deve ser não
+único, a menos que a opção \fB\-o\fR seja usada. O valor deve ser não
 negativo, e o padrão é o menor valor maior que 500 e o maior que qualquer
 outro grupo. Valores entre 0 e 999 são tipicamente reservados para \fIcontas
 do sistema\fR.
-.IP \fB-r\fR
+.IP \fB\-r\fR
 Este indicador instrui \fBgroupadd\fR a adicionar uma  \fIconta do sistema
 \fR. A primeira identificação de grupo \fI(gid)\fR menor que 999 será
-automaticamente selecionada a menos que a opção \fB-g\fR seja informada
+automaticamente selecionada a menos que a opção \fB\-g\fR seja informada
 também.
 .BR
 Esta é uma informação disponibilizada pela Red Hat Software.
 .BR
-Esta opção também modifica o modo como a opção \fB-g\fR funciona. Ao
+Esta opção também modifica o modo como a opção \fB\-g\fR funciona. Ao
 solicitar um \fIgid\fR que não seja único e ao não informar a opção
-\fB-o\fR, a criação do grupo , a criação terá o comportamento padrão
-(adicionando um grupo como se as opções \fB-g\fR ou \fB-o\fR \fBnão\fR
+\fB\-o\fR, a criação do grupo , a criação terá o comportamento padrão
+(adicionando um grupo como se as opções \fB\-g\fR ou \fB\-o\fR \fBnão\fR
 fossem especificadas).
 .BR
 .SH ARQUIVOS
index 0eb756222ee4b27fd85c3353df0e6e5e5e71bd58..077bc6ff2cffed83e1b39939bf5979208da5782c 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright 1991 - 1993, Julianne Frances Haugh
+.\" Copyright 1991 \- 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Todos os direitos reservados.
@@ -23,9 +23,9 @@
 .\" Você deve receber uma cópia da Licença Pública GNU
 .\" junto com este manual; caso contrário, escreva para a Free Software
 .\" Foundation, Inc., 675 mass Ave, Cambridge, MA 02139 USA ou
-.\" em português na Conectiva Informática Ltda. - http://www.conectiva.com.br.\"
+.\" em português na Conectiva Informática Ltda. \- http://www.conectiva.com.br.\"
 .\"
-.\"    $Id: groupdel.8,v 1.3 2003/04/26 13:24:16 kloczek Exp $
+.\"    $Id: groupdel.8,v 1.4 2005/04/05 19:08:56 kloczek Exp $
 .\"
 .TH GROUPDEL 8
 .SH NOME
@@ -36,9 +36,9 @@ groupdel \- Apaga um grupo
 .SH DESCRIÇÃO
 O comando \fBgroupdel\fR modifica os arquivos de contas do sistema, apagando todas as referências ao \fIgrupo\fR. O grupo a ser apagado deve existir.
 .PP
-Deve-se manualmente checar os sistemas de arquivos para garantir que nenhum dos arquivos permanece com o grupo ou com a sua identificação.
+Deve\-se manualmente checar os sistemas de arquivos para garantir que nenhum dos arquivos permanece com o grupo ou com a sua identificação.
 .SH DICAS
-Não se deve remover o grupo primário de um grupo existente. Deve-se remover os usuários, antes de se remover o grupo.
+Não se deve remover o grupo primário de um grupo existente. Deve\-se remover os usuários, antes de se remover o grupo.
 .SH ARQUIVOS
 \fI/etc/group\fR \- informações do grupo
 .br
index 2292f7dee2a8ee55bfb08476a37eccd398ecc92b..48d427746e8b8e1f2b3aa65059018c17b6d87c18 100644 (file)
@@ -1,7 +1,7 @@
+.\"    $Id: groupmod.8,v 1.7 2005/04/05 19:08:56 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" Todos os direitos reservados.
 .\"
-.\"
 .\" É permitida a confecção e distribuição deste manual, devidamente
 .\" acompanhado dos avisos de direitos autorais e desta permissão
 .\" em todas as cópias.
 .\" Você deve receber uma cópia da Licença Pública GNU
 .\" junto com este manual; caso contrário, escreva para a Free Software
 .\" Foundation, Inc., 675 mass Ave, Cambridge, MA 02139 USA ou
-.\" em português na Conectiva Informática Ltda. - http://www.conectiva.com.br
-.\"
-.\"
-.\"
-.\"    $Id: groupmod.8,v 1.5 2004/11/04 03:06:32 kloczek Exp $
-.\"
+.\" em português na Conectiva Informática Ltda. \- http://www.conectiva.com.br
 .TH GROUPMOD 8
 .SH NOME
 groupmod \- Modifica um grupo
 .SH SINOPSE
-.B groupmod
-[\fB-g\fI gid \fR[\fB-o\fR]]
-[\fB-n\fI nome_grupo \fR]
-.I grupo
+\fBgroupmod\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-n\fR \fInome_grupo\fR] \fIgrupo\fR
 .SH DESCRIÇÃO
-O comando \fBgroupmod\fR modifica os arquivos de contas do sistema para as novas configurações informadas na linha de comando. As opções que aplicam-se ao comando \fIgroupmod\fR são:
-.IP "\fB-g \fIgid\fR"
-O valor numérico de identificação do grupo é denominada GID. Este valor deve ser único, a menos que a opção \fB-o\fR seja usada. O valor dever ser não negativo. Valores entre 0 e 999 são tipicamente reservados para grupos do sistema. Quaisquer arquivos com uma identificação antiga de grupo devem ter o ID mudado manualmente. 
-.IP "\fB-n \fInome_grupo\fR"
+O comando \fBgroupmod\fR modifica os arquivos de contas do sistema para as
+novas configuraXXes informadas na linha de comando. As opXXes que aplicam\-se
+ao comando \fIgroupmod\fR sXo:
+.IP "\fB\-g\fR \fIgid\fR"
+O valor numXrico de identificaXXo do grupo X denominada GID. Este valor deve
+ser Xnico, a menos que a opXXo \fB\-o\fR seja usada. O valor dever ser nXo
+negativo. Valores entre 0 e 999 sXo tipicamente reservados para grupos do
+sistema. Quaisquer arquivos com uma identificaXXo antiga de grupo devem ter
+o ID mudado manualmente.
+.IP "\fB\-n\fR \fInome_grupo\fR"
 O nome do grupo irá ser alterado de \fIgroup\fR para
 \fInome_grupo\fR.
 .SH ARQUIVOS
-\fI/etc/group\fR \- Informações do grupo
+\fI/etc/group\fR       \- Informações do grupo
 .br
-\fI/etc/gshadow\fR \- informações seguras do grupo
+\fI/etc/gshadow\fR     \- informações seguras do grupo
 .SH VEJA TAMBÉM
 .BR chfn (1),
 .BR chsh (1),
index 5e735083119ea2e7ea55e5ee96e4e73a6e2d7a80..68683ea61d99b8bfa151e83f50520884e7dd4b60 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1989 - 1990, Julianne Frances Haugh
+.\" $Id: shadow.5,v 1.4 2005/04/05 19:08:56 kloczek Exp $
+.\" Copyright 1989 \- 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,9 +25,6 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: shadow.5,v 1.3 2003/04/26 13:24:16 kloczek Exp $
-.\"
 .TH SHADOW 5
 .SH NOME
 shadow \- arquivo de senhas criptografadas
@@ -53,19 +51,19 @@ Dias decorridos entre 1 de janeiro de 1970 e a data em que a conta foi desabilit
 .IP "" .5i
 Campo reservado.
 .PP
-O campo senha deve ser preenchido. A senha criptografada consiste de 13 a 24 caracteres entre os 64 caracteres alfabéticos - de a até z e de A até Z, além de 0 a 9, \. e /. Verifique em \fBcrypt\fR(3) por maiores detalhes de como esta cadeia de caracteres é interpretada.
+O campo senha deve ser preenchido. A senha criptografada consiste de 13 a 24 caracteres entre os 64 caracteres alfabéticos \- de a até z e de A até Z, além de 0 a 9, \. e /. Verifique em \fBcrypt\fR(3) por maiores detalhes de como esta cadeia de caracteres é interpretada.
 .PP
 A data da última mudança da senha é dada pelo número de dias desde 1 de janeiro de 1970. A senha não pode ser alterada novamente até que um determinado número de dias tenha se passado, e deve ser alterada após um número máximo de dias. Se o número mínimo de dias for maior que o número máximo, a senha não pode ser alterada pelo usuário.
 .PP
 uma conta é considerada inativa e desabilitada se a senha não foi alterada dentro de um determinado número de dias após a expiração das senhas. Uma conta poderá ser desabilitada ainda no dia especificado, independentemente de qualquer informação de expiração da senha.
 .PP
-Esta informação sobrepõe-se a qualquer senha ou idade de senha presente no arquivo.
+Esta informação sobrepõe\-se a qualquer senha ou idade de senha presente no arquivo.
 .PP
 Este arquivo não poderá ser acessado por usuários comuns, caso deseje manter a segurança das senhas.
 .SH ARQUIVOS
-\fI/etc/passwd\fR \- informações das contas de usuários
+\fI/etc/passwd\fR      \- informações das contas de usuários
 .br
-\fI/etc/shadow\fR \- senhas de usuários criptografadas
+\fI/etc/shadow\fR      \- senhas de usuários criptografadas
 .SH VEJA TAMBÉM
 .BR chage (1),
 .BR login (1),
index 744f5f90bc9e5f9a78bc36b46d0b1f154776e882..d39caaf2f85be1ef53bef7ba6fa0345a2b49ea32 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: pw_auth.3,v 1.9 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: pw_auth.3,v 1.10 2005/04/02 16:10:24 kloczek Exp $
 .\" Copyright 1992 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -46,7 +46,7 @@ invokes the administrator defined functions for a given user.
 \fIcommand\fR is the name of the authentication program.
 It is retrieved from the user's password file information.
 The string contains one or more executable file names, delimited by
-semi-colons.
+semi\-colons.
 Each program will be executed in the order given.
 The command line arguments are given for each of the reasons listed
 below.
@@ -54,7 +54,7 @@ below.
 \fIuser\fR is the name of the user to be authenticated, as given
 in the \fI/etc/passwd\fR file.
 User entries are indexed by username.
-This allows non-unique user IDs to be present and for each different
+This allows non\-unique user IDs to be present and for each different
 username associated with that user ID to have a different
 authentication program and information.
 .PP
@@ -68,44 +68,44 @@ making the authentication request.
 .IP \fBPW_SU\fR 1i
 Perform authentication for the current real user ID attempting to
 switch real user ID to the named user.
-The authentication program will be invoked with a \fB-s\fR option, followed
+The authentication program will be invoked with a \fB\-s\fR option, followed
 by the username.
 .IP \fBPW_LOGIN\fR 1i
 Perform authentication for the named user creating a new login session.
-The authentication program will be invoked with a \fB-l\fR option, followed
+The authentication program will be invoked with a \fB\-l\fR option, followed
 by the username.
 .IP \fBPW_ADD\fR 1i
 Create a new entry for the named user.
 This allows an authentication program to initialize storage for a new
 user.
-The authentication program will be invoked with a \fB-a\fR option, followed
+The authentication program will be invoked with a \fB\-a\fR option, followed
 by the username.
 .IP \fBPW_CHANGE\fR 1i
 Alter an existing entry for the named user.
 This allows an authentication program to alter the authentication
 information for an existing user.
-The authentication program will be invoked with a \fB-c\fR option, followed
+The authentication program will be invoked with a \fB\-c\fR option, followed
 by the username.
 .IP \fBPW_DELETE\fR 1i
 Delete authentication information for the named user.
 This allows an authentication program to reclaim storage for a user which
 is no longer authenticated using the authentication program.
-The authentication program will be invoked with a \fB-d\fR option, followed
+The authentication program will be invoked with a \fB\-d\fR option, followed
 by the username.
 .IP \fBPW_TELNET\fR 1i
 Authenticate a user who is connecting to the system using the 
 \fBtelnet\fR command.
-The authentication program will be invoked with a \fB-t\fR option, followed
+The authentication program will be invoked with a \fB\-t\fR option, followed
 by the username.
 .IP \fBPW_RLOGIN\fR 1i
 Authenticate a user who is connecting to the system using the \fBrlogin\fR
 command.
-The authentication program will be invoked with a \fB-r\fR option, followed
+The authentication program will be invoked with a \fB\-r\fR option, followed
 by the username.
 .IP \fBPW_FTP\fR 1i
 Authenticate a user who is connecting to the system using the \fBftp\fR
 command.
-The authentication program will be invoked with a \fB-f\fR option, followed
+The authentication program will be invoked with a \fB\-f\fR option, followed
 by the username.
 The standard file descriptors are not available for communicating with the
 user.
@@ -117,7 +117,7 @@ authentication program using file descriptor 0.
 .IP \fBPW_REXEC\fR 1i
 Authenticate a user who is connecting to the system using the \fIrexec\fR
 command.
-The authentication program will be invoked with a \fB-x\fR option, followed
+The authentication program will be invoked with a \fB\-x\fR option, followed
 by the username.
 The standard file descriptors are not available for communicating with the
 remote user.
@@ -145,7 +145,7 @@ It only indicates if the user should be allowed to create the session.
 The network options are untested at this time.
 .SH DIAGNOSTICS
 The \fBpw_auth\fR function returns 0 if the authentication program exited
-with a 0 exit code, and a non-zero value otherwise.
+with a 0 exit code, and a non\-zero value otherwise.
 .SH SEE ALSO
 .BR login (1),
 .BR passwd (1),
index de379bf1513076c5fb33b0e1337445ad77de381b..e57a5a00f0992eea8509c59fd7ad6a480be8ee32 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: pwck.8,v 1.14 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: pwck.8,v 1.18 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -29,7 +29,7 @@
 .SH NAME
 pwck \- verify integrity of password files
 .SH SYNOPSIS
-\fBpwck\fR [\fB-sr\fR] [\fIpasswd\fR \fIshadow\fR]
+\fBpwck\fR [\fB\-sr\fR] [\fIpasswd\fR \fIshadow\fR]
 .SH DESCRIPTION
 \fBpwck\fR verifies the integrity of the system authentication information.
 All entries in the \fI/etc/passwd\fR and \fI/etc/shadow\fR are checked to
@@ -40,18 +40,18 @@ which have other uncorrectable errors.
 Checks are made to verify that each entry has
 .sp
 .in +.5i
-- the correct number of fields
+\- the correct number of fields
 .br
-- a unique user name
+\- a unique user name
 .br
-- a valid user and group identifier
+\- a valid user and group identifier
 .br
-- a valid primary group
+\- a valid primary group
 .br
-- a valid home directory
+\- a valid home directory
 .br
-- a valid login shell
-.in -.5i
+\- a valid login shell
+.in \-.5i
 .sp
 .PP
 The checks for correct number of fields and unique user name are fatal. If
@@ -70,17 +70,17 @@ entry.
 By default, \fBpwck\fR operates on the files \fI/etc/passwd\fR and
 \fI/etc/shadow\fR. The user may select alternate files with the \fIpasswd\fR
 and \fIshadow\fR parameters. Additionally, the user may execute the command
-in read-only mode by specifying the \fB-r\fR flag. This causes all questions
+in read\-only mode by specifying the \fB\-r\fR flag. This causes all questions
 regarding changes to be answered \fBno\fR without user intervention.
 \fBpwck\fR can also sort entries in \fI/etc/passwd\fR and \fI/etc/shadow\fR
-by UID. To run it in sort mode pass it \fB-s\fR flag. No checks are
+by UID. To run it in sort mode pass it \fB\-s\fR flag. No checks are
 performed then, it just sorts.
 .SH FILES
 \fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR      \- encrypted password information
+\fI/etc/shadow\fR      \- secure user account information
 .br
-\fI/etc/group\fR       \- group information
+\fI/etc/group\fR       \- group account information
 .SH SEE ALSO
 .BR group (5),
 .BR passwd (5),
index ac7d141199778f6f701c4dcf2c3cd25ab0b9f701..9ca98f3fcdb196699420047b5591a5fb09fab083 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: pwconv.8,v 1.12 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: pwconv.8,v 1.15 2005/04/02 08:01:24 kloczek Exp $
 .TH PWCONV 8 "26 Sep 1997"
 .SH NAME
 pwconv, pwunconv, grpconv, grpunconv \- convert to and from shadow passwords and groups.
@@ -28,7 +28,7 @@ files: \fI/etc/passwd\fR, \fI/etc/group\fR, \fI/etc/shadow\fR, and
 \fI/etc/gshadow\fR.
 .PP
 .PP 
-Each program acquires the necessary locks before conversion. fBpwconv\fR and
+Each program acquires the necessary locks before conversion. \fBpwconv\fR and
 \fBgrpconv\fR are similar. First, entries in the shadowed file which don't
 exist in the main file are removed. Then, shadowed entries which don't have
 `x' as the password in the main file are updated. Any missing shadowed
@@ -36,8 +36,8 @@ entries are added. Finally, passwords in the main file are replaced with
 `x'. These programs can be used for initial conversion as well to update the
 shadowed file if the main file is edited by hand.
 .PP
-\fBpwconv\fR will use the values of fBPASS_MIN_DAYS\fR, \fBPASS_MAX_DAYS\fR,
-and \fBPASS_WARN_AGE\fR from fI/etc/login.defs\fR when adding new entries
+\fBpwconv\fR will use the values of \fIPASS_MIN_DAYS\fR, \fIPASS_MAX_DAYS\fR,
+and \fIPASS_WARN_AGE\fR from \fI/etc/login.defs\fR when adding new entries
 to \fI/etc/shadow\fR.
 .PP
 Likewise  \fBpwunconv\fR and \fBgrpunconv\fR are similiar. Passwords in the
index a6aa99a80c6183fb42733e5fb26fa24037222053..e5ebc205b3f8134cf5ab74b9616ba833aa4b3207 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -86,17 +86,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -186,9 +185,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/ru/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/ru/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/ru/Makefile
+         $(AUTOMAKE) --foreign  man/ru/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 73230258efdae42474435bf6e02a723a8b8e3276..35226c4da4c0d7f13fb1232a389498a0149e1bc7 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
+.\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth\-aachen.de), Fri Apr  2 11:32:09 MET DST 1993
 .\"
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" Modified Sun Jun 18 01:53:57 1995 by Andries Brouwer (aeb@cwi.nl)
 .\" Modified Mon Jan  5 20:24:40 MET 1998 by Michael Haardt
 .\"  (michael@cantor.informatik.rwth-aachen.de)
-.TH PASSWD 5 "$Date: 2003/04/28 02:17:55 $" "" "æÏÒÍÁÔÙ ÆÁÊÌÏ×"
+.TH PASSWD 5 "$Date: 2005/04/05 19:08:57 $" "" "æÏÒÍÁÔÙ ÆÁÊÌÏ×"
 .SH îáú÷áîéå
 passwd \- ÆÁÊÌ ÐÁÒÏÌÅÊ
 .SH ïðéóáîéå
 .B Passwd
--- ÜÔÏ ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ, ÓÏÄÅÒÖÁÝÉÊ ÓÐÉÓÏË ÕÞÅÔÎÙÈ ÚÁÐÉÓÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
+\-\- ÜÔÏ ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ, ÓÏÄÅÒÖÁÝÉÊ ÓÐÉÓÏË ÕÞÅÔÎÙÈ ÚÁÐÉÓÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
 ÓÉÓÔÅÍÙ, ËÁÖÄÁÑ ÉÚ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÉÔ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ, ËÁË
 ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ, ÄÏÍÁÛÎÉÊ ËÁÔÁÌÏÇ,
 ËÏÍÁÎÄÎÕÀ ÏÂÏÌÏÞËÕ É Ô. Ä.  þÁÓÔÏ × ÜÔÏÍ ÆÁÊÌÅ ÔÁËÖÅ ÓÏÄÅÒÖÁÔÓÑ
index b47331d3a44a77f2975f36b95b2d3b2764b9fa3a..d34b961d42cd6b06c90960560ce8a189c2bf03e2 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: shadow.3,v 1.10 2003/05/01 18:17:39 kloczek Exp $
+.\" $Id: shadow.3,v 1.13 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1989 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -81,14 +81,14 @@ struct spwd {
 .br
        unsigned long int       sp_flag; /* reserved for future use */
 .br
-.in -.5i
+.in \-.5i
 }
 .PP
 The meanings of each field are
 .sp
-sp_namp \- pointer to null-terminated user name.
+sp_namp \- pointer to null\-terminated user name.
 .br
-sp_pwdp \- pointer to null-terminated password.
+sp_pwdp \- pointer to null\-terminated password.
 .br
 sp_lstchg \- days since Jan 1, 1970 password was last changed.
 .br
@@ -122,17 +122,17 @@ exclusive access to the \fI/etc/shadow\fR file. \fBlckpwdf\fR attempts to
 acquire a lock using \fBpw_lock\fR for up to 15 seconds. It continues by
 attempting to acquire a second lock using \fBspw_lock\fR for the remainder
 of the initial 15 seconds. Should either attempt fail after a total of 15
-seconds, \fBlckpwdf\fR returns -1. When both locks are acquired 0 is
+seconds, \fBlckpwdf\fR returns \-1. When both locks are acquired 0 is
 returned.
 .SH DIAGNOSTICS
 Routines return NULL if no more entries are available or if an error occurs
 during processing. Routines which have \fBint\fR as the return value return
-0 for success and -1 for failure.
+0 for success and \-1 for failure.
 .SH CAVEATS
 These routines may only be used by the super user as access to the shadow
 password file is restricted.
 .SH FILES
-\fI/etc/shadow\fR \    - encrypted user passwords
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR getpwent (3),
 .BR shadow (5)
index f86d6b61622e66a24e508449c4fcb518743609fc..1485d990aab0fb2eced3406820b15d21804af222 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: shadow.5,v 1.11 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: shadow.5,v 1.15 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -51,9 +51,12 @@ Days since Jan 1, 1970 that account is disabled
 A reserved field
 .PP
 The password field must be filled. The encryped password consists of 13 to
-24 characters from the 64 character alphabet a thru z, A thru Z, 0 thru 9,
-\. and /. Refer to \fBcrypt\fR(3) for details on how this string is
-interpreted.
+24 characters from the 64 characters alphabet a thru z, A thru Z, 0 thru 9,
+\&\. and /. Optionally it can start with a "$" character. This means the
+encrypted password was generated using another (not DES) algorithm. For
+example if it starts with "$1$" it means the MD5\-based algorithm was used.
+.PP
+Refer to \fBcrypt\fR(3) for details on how this string is interpreted.
 .PP
 The date of the last password change is given as the number of days since
 Jan 1, 1970. The password may not be changed again until the proper number
@@ -72,9 +75,9 @@ in \fI/etc/passwd\fR.
 This file must not be readable by regular users if password security is to
 be maintained.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - encrypted user passwords
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR chage (1),
 .BR login (1),
index 75400c91c928b4d8ab77ff6eb2910d1ddee215d4..af50d95d3e26bb1e0709b16c95281ca8433925af 100644 (file)
--- a/man/su.1
+++ b/man/su.1
@@ -1,4 +1,4 @@
-.\"$Id: su.1,v 1.13 2003/05/01 18:17:39 kloczek Exp $
+.\" $Id: su.1,v 1.16 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1989 - 1990, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -27,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH SU 1
 .SH NAME
-su \- change user ID or become super-user
+su \- change user ID or become super\-user
 .SH SYNOPSIS
-\fBsu\fR [\fB-\fR] [\fIusername\fR [\fIargs\fR]]
+\fBsu\fR [\fB\-\fR] [\fIusername\fR [\fIargs\fR]]
 .SH DESCRIPTION
 \fBsu\fR is used to become another user during a login session. Invoked
 without a username, \fBsu\fR defaults to becoming the super user. The
@@ -38,7 +38,7 @@ what the user would expect had the user logged in directly.
 .PP
 Additional arguments may be provided after the username, in which case they
 are supplied to the user\'s login shell. In particular, an argument of
-\fB-c\fR will cause the next argument to be treated as a command by most
+\fB\-c\fR will cause the next argument to be treated as a command by most
 command interpreters. The command will be executed by the shell specified in
 \fI/etc/passwd\fR for the target user.
 .PP
@@ -59,9 +59,9 @@ the root of a new filesystem which the user is actually logged into.
 This version of \fBsu\fR has many compilation options, only some of which
 may be in use at any particular site.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - encrypted passwords and age information
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR login (1),
 .BR sh (1),
index 98f1540ecda718b07d74660f213c12a3f0b22f42..ca8f510180d8a4f1aca2264e736b0ad4440f3787 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: suauth.5,v 1.5 2004/12/11 20:05:01 kloczek Exp $
+.\"$Id: suauth.5,v 1.7 2005/04/05 18:47:50 kloczek Exp $
 .TH SUAUTH 5 "Feb 14, 1996"
 .UC 5
 .SH NAME
@@ -23,10 +23,10 @@ The file is formatted like this, with lines starting with a #
 being treated as comment lines and ignored;
 .PP
 .RS
-to-id:from-id:ACTION
+to\-id:from\-id:ACTION
 .RE
 .PP
-Where to-id is either the word
+Where to\-id is either the word
 .BR ALL ,
 a list of usernames
 delimited by "," or the words
@@ -34,7 +34,7 @@ delimited by "," or the words
 followed by a list
 of usernames delimited by ","
 .PP
-from-id is formatted the same as to-id except the extra word
+from\-id is formatted the same as to\-id except the extra word
 .B GROUP
 is recognised.
 .B ALL EXCEPT GROUP
index 2e4054300dc17d74f6c0dc3a150128cb82f4a69b..227d5d76834b60437edd58033d1c37a7bad9ec57 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: sulogin.8,v 1.10 2003/05/01 18:17:39 kloczek Exp $
+.\" $Id: sulogin.8,v 1.13 2005/04/12 16:31:06 kloczek Exp $
 .\" Copyright 1989 - 1992, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -27,9 +27,9 @@
 .\" SUCH DAMAGE.
 .TH SULOGIN 8
 .SH NAME
-sulogin \- Single-user login
+sulogin \- Single\-user login
 .SH SYNTAX
-\fBsulogin\fR [\fItty-device\fR]
+\fBsulogin\fR [\fItty\-device\fR]
 .SH DESCRIPTION
 \fBsulogin\fR is invoked by \fBinit\fR prior to allowing the user access to
 the system when in single user mode. This feature may only be available on
@@ -38,7 +38,7 @@ certain systems where \fBinit\fR has been modified accordingly, or where the
 .PP
 The user is prompted
 .IP "" .5i
-Type control-d to proceed with normal startup,
+Type control\-d to proceed with normal startup,
 .br
 (or give root password for system maintenance):
 .PP
@@ -46,11 +46,11 @@ Input and output will be performed with the standard file descriptors unless
 the optional device name argument is provided.
 .PP
 If the user enters the correct root password, a login session is initiated.
-When \fBEOF\fR is pressed instead, the system enters multi-user mode.
+When \fBEOF\fR is pressed instead, the system enters multi\-user mode.
 .PP
-After the user exits the single-user shell, or presses \fBEOF\fR,
+After the user exits the single\-user shell, or presses \fBEOF\fR,
 the system begins the initialization process required to enter
-multi-user mode.
+multi\-user mode.
 .SH CAVEATS
 .PP
 This command can only be used if \fBinit\fR has been modified to call
@@ -67,9 +67,9 @@ As complete an environment as possible is created. However, various devices
 may be unmounted or uninitialized and many of the user commands may be
 unavailable or nonfunctional as a result.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - encrypted passwords and age information
+\fI/etc/shadow\fR      \- secure user account information
 .SH SEE ALSO
 .BR login (1),
 .BR sh (1),
index 92496a03df84df1ae9ca0902548a0bcd1dc0194d..f7b81bdc1452fa85685508f4a0c6659b56f064eb 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: useradd.8,v 1.23 2004/12/11 20:05:01 kloczek Exp $
+.\" $Id: useradd.8,v 1.29 2005/04/18 19:21:33 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 useradd \- Create a new user or update default new user information
 .SH SYNOPSIS
 .TP 8
-\fBuseradd\fR [\fB-c\fR \fIcomment\fR] [\fB-d\fR \fIhome_dir\fR]
+\fBuseradd\fR [\fB\-c\fR \fIcomment\fR] [\fB\-d\fR \fIhome_dir\fR] [\fB\-e\fR \fIexpire_date\fR] [\fB\-f\fR \fIinactive_days\fR]
 .br
-[\fB-e\fR \fIexpire_date\fR] [\fB-f\fR \fIinactive_days\fR]
+[\fB\-g\fR \fIinitial_group\fR] [\fB\-G\fR \fIgroup1\fR[\fI,group2,...,\fR[\fIgroupN\fR]\fR]]
 .br
-[\fB-g\fR \fIinitial_group\fR] [\fB-G\fR \fIgroup\fR[,...]]
+[[\fB\-M\fR] \fB\-m\fR [\fB\-k\fR \fIskeleton_dir\fR]] [\fB\-o\fR] [\fB\-p\fR \fIpasswd\fR] [\fB\-s\fR \fIshell\fR]
 .br
-[[\fB-M\fR] \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\-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
-[\fB-e\fI default_expire_date\fR] [\fB-f\fI default_inactive\fR]
+\fBuseradd\fR \fB\-D\fR [\fB\-g\fR \fIgroup\fR] [\fB\-b\fR \fIhome_dir\fR] [\fB\-e\fR \fIexpire_date\fR]
 .br
-[\fB-s\fI default_shell\fR]
+[\fB\-f\fR \fIinactive_days\fR] [\fB\-s\fR \fIshell\fR]
 .SH DESCRIPTION
 .SS Creating New Users
-When invoked without the \fB-D\fR option, the \fBuseradd\fR command creates
+When invoked without the \fB\-D\fR option, the \fBuseradd\fR command creates
 a new user account using the values specified on the command line and the
 default values from the system. Depending on command line options, the
 useradd command will update system files and may also create the new user's
@@ -55,74 +51,74 @@ home directory and copy initial files.
 .SH OPTIONS
 The options which apply to the
 \fBuseradd\fR command are:
-.IP "\fB-c\fR \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 The new user's password file comment field.
-.IP "\fB-d\fR \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 The new user will be created using \fIhome_dir\fR as the value for the
 user's login directory. The default is to append the \fIlogin\fR name to
-\fIdefault_home\fR and use that as the login directory name.
-.IP "\fB-e\fR \fIexpire_date\fR"
+\fIhome\fR and use that as the login directory name.
+.IP "\fB\-e\fR \fIexpire_date\fR"
 The date on which the user account will be disabled. The date is specified
-in the format \fIYYYY-MM-DD\fR.
-.IP "\fB-f\fR \fIinactive_days\fR"
+in the format \fIYYYY\-MM\-DD\fR.
+.IP "\fB\-f\fR \fIinactive_days\fR"
 The number of days after a password expires until the account is permanently
 disabled. A value of 0 disables the account as soon as the password has
-expired, and a value of -1 disables the feature. The default value is -1.
-.IP "\fB-g\fR \fIinitial_group\fR"
+expired, and a value of \-1 disables the feature. The default value is \-1.
+.IP "\fB\-g\fR \fIinitial_group\fR"
 The group name or number of the user's initial login group. The group name
 must exist.  A group number must refer to an already existing group. The
 default group number is 1 or whatever is specified in
 \fI/etc/default/useradd\fR.
-.IP "\fB-G\fR \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup1\fR[\fI,group2,...,\fR[\fIgroupN\fR]\fR]]"
 A list of supplementary groups which the user is also a member of. Each
 group is separated from the next by a comma, with no intervening whitespace.
 The groups are subject to the same restrictions as the group given with the
-\fB-g\fR option. The default is for the user to belong only to the initial
+\fB\-g\fR option. The default is for the user to belong only to the initial
 group.
-.IP \fB-M\fR
+.IP \fB\-M\fR
 RedHat added the CREATE_HOME option in login.defs in their version of
-shadow-utils (which makes -m the default, with new -M option to turn it
+shadow\-utils (which makes \-m the default, with new \-M option to turn it
 off). Unfortunately, this changes the way useradd works (it can be run by
 scripts expecting some standard behaviour), compared to other Unices and
 other Linux distributions, and also adds a lot of confusion.
-.IP \fB-m\fR
+.IP \fB\-m\fR
 The user's home directory will be created if it does not exist. The files
 contained in \fIskeleton_dir\fR will be copied to the home directory if the
-\fB-k\fR option is used, otherwise the files contained in \fI/etc/skel\fR
+\fB\-k\fR option is used, otherwise the files contained in \fI/etc/skel\fR
 will be used instead. Any directories contained in \fIskeleton_dir\fR or
 \fI/etc/skel\fR will be created in the user's home directory as well. The
-\fB-k\fR option is only valid in conjunction with the \fB-m\fR option. The
+\fB\-k\fR option is only valid in conjunction with the \fB\-m\fR option. The
 default is to not create the directory and to not copy any files.
-.IP "\fB-o\fR"
-Allow create user with duplicate (non-unique) UID.
-.IP "\fB-p \fIpasswd\fR"
+.IP "\fB\-o\fR"
+Allow create user with duplicate (non\-unique) UID.
+.IP "\fB\-p\fR \fIpasswd\fR"
 The encrypted password, as returned by \fBcrypt\fR(3). The default is to
 disable the account.
-.IP "\fB-s\fR \fIshell\fR"
+.IP "\fB\-s\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.
-.IP "\fB-u \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 The numerical value of the user's ID. This value must be unique, unless the
-\fI-o\fR option is used. The value must be non-negative. The default is to
+\fI\-o\fR option is used. The value must be non\-negative. The default is to
 use the smallest ID value greater than 999 and greater than every other user.
 Values between 0 and 999 are typically reserved for system accounts.
 .SS Changing the default values
-When invoked with the \fB-D\fR option, \fBuseradd\fR will either display the
+When invoked with the \fB\-D\fR option, \fBuseradd\fR will either display the
 current default values, or update the default values from the command line.
 The valid options are
-.IP "\fB-b\fR \fIdefault_home\fR"
+.IP "\fB\-b\fR \fIhome_dir\fR"
 The initial path prefix for a new user's home directory. The user's name
-will be affixed to the end of \fIdefault_home\fR to create the new directory
-name if the \fB-d\fR option is not used when creating a new account.
-.IP "\fB-e\fR \fIdefault_expire_date\fR"
+will be affixed to the end of \fIhome\fR to create the new directory
+name if the \fB\-d\fR option is not used when creating a new account.
+.IP "\fB\-e\fR \fIexpire_date\fR"
 The date on which the user account is disabled.
-.IP "\fB-f\fR \fIdefault_inactive\fR"
+.IP "\fB\-f\fR \fIinactive\fR"
 The number of days after a password has expired before the account will be
 disabled.
-.IP "\fB-g\fR \fIdefault_group\fR"
+.IP "\fB\-g\fR \fIgroup\fR"
 The group name or ID for a new user's initial group. The named group must
 exist, and a numerical group ID must have an existing entry .
-.IP "\fB-s\fR \fIdefault_shell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 The name of the new user's login shell. The named program will be used for
 all future new user accounts.
 .PP
@@ -139,7 +135,7 @@ server.
 .br
 \fI/etc/shadow\fR                      \- secure user account information
 .br
-\fI/etc/group\fR                       \- group information
+\fI/etc/group\fR                       \- group account information
 .br
 \fI/etc/default/useradd\fR     \- default information
 .br
@@ -156,7 +152,7 @@ The \fBuseadd\fR command exits with the following values:
 .br
 \fB3\fR        \- invalid argument to option
 .br
-\fB4\fR        \- uid already in use (and no -o)
+\fB4\fR        \- uid already in use (and no \-o)
 .br
 \fB6\fR        \- specified group doesn't exist
 .br
index 2ba3e2b900e8a5424e4f3e275b40fba4e89165d6..9ff2c68a67c23d342a8d681069aae941a1b02eea 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: userdel.8,v 1.12 2004/11/02 19:28:31 kloczek Exp $
+.\"$Id: userdel.8,v 1.14 2005/04/12 17:55:55 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 userdel \- Delete a user account and related files
 .SH SYNOPSIS
 .B userdel
-[\fB-r\fR]
+[\fB\-r\fR]
 .I login
 .SH DESCRIPTION
 The \fBuserdel\fR command modifies the system account files, deleting all
 entries that refer to \fIlogin\fR. The named user must exist.
 .SH OPTIONS
 The options which apply to the \fBuserdel\fR command are:
-.IP \fB-r\fR
+.IP \fB\-r\fR
 Files in the user's home directory will be removed along with the home
 directory itself and the user's mail spool. Files located in other file
 systems will have to be searched for and deleted manually.
@@ -46,7 +46,7 @@ systems will have to be searched for and deleted manually.
 .br
 \fI/etc/shadow\fR      \- secure user account information
 .br
-\fI/etc/group\fR       \- group information
+\fI/etc/group\fR       \- group account information
 .SH EXIT VALUES
 .TP 2
 The \fBuserdel\fR command exits with the following values:
index 508b7af2959b3f116aa5e7e546d14a0f4452f45f..3790c098e2b7c466ab920795375df003b6c7a0c5 100644 (file)
@@ -1,4 +1,4 @@
-.\"$Id: usermod.8,v 1.17 2004/11/02 19:28:31 kloczek Exp $
+.\" $Id: usermod.8,v 1.24 2005/04/18 17:57:03 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 usermod \- Modify a user account
 .SH SYNOPSIS
 .TP 8
-\fBusermod\fR [\fB-c\fR \fIcomment\fR] [\fB-d\fR \fIhome_dir\fR [\fB-m\fR]]
+\fBusermod\fR [\fB\-c\fR \fIcomment\fR] [\fB\-d\fR \fIhome_dir\fR [\fB\-m\fR]] [\fB\-e\fR \fIexpire_date\fR]
+[\fB\-f\fR \fIinactive_time\fR] [\fB\-g\fR \fIinitial_group\fR]
 .br
-[\fB-e\fR \fIexpire_date\fR] [\fB-f\fR \fIinactive_time\fR]
+[\fB\-G\fR \fIgroup1\fR[\fI,group2,...,\fR[\fIgroupN\fR]\fR]]
 .br
-[\fB-g\fR \fIinitial_group\fR] [\fB-G\fR \fIgroup\fR [,...]]
+[\fB\-l\fR \fIlogin_name\fR] [\fB\-p\fR \fIpasswd\fR] [\fB\-s\fR \fIshell\fR] [\fB\-u\fR \fIuid\fR [\fB\-o\fR]]
 .br
-[\fB-l\fR \fIlogin_name\fR] [\fB-p\fR \fIpasswd\fR]
-.br
-[\fB-s\fR \fIshell\fR] [\fB-u\fR \fIuid\fR [\fB-o\fR]] [\fB-L\fR|\fB-U\fR]
-\fIlogin\fR
+[\fB\-L\fR|\fB\-U\fR] \fIlogin\fR
 .SH DESCRIPTION
 The \fBusermod\fR command modifies the system account files to reflect the
 changes that are specified on the command line.
 .SH OPTIONS
 The options which apply to the \fBusermod\fR command are:
-.IP "\fB-c\fR \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 The new value of the user's password file comment field. It is normally
 modified using the \fBchfn\fR(1) utility.
-.IP "\fB-d\fR \fIhome_dir\fR"
-The user's new login directory. If the \fB-m\fR option is given the contents
+.IP "\fB\-d\fR \fIhome_dir\fR"
+The user's new login directory. If the \fB\-m\fR option is given the contents
 of the current home directory will be moved to the new home directory, which
 is created if it does not already exist.
-.IP "\fB-e\fR \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 The date on which the user account will be disabled. The date is specified
-in the format \fIYYYY-MM-DD\fR.
-.IP "\fB-f\fR \fIinactive_days\fR"
+in the format \fIYYYY\-MM\-DD\fR.
+.IP "\fB\-f\fR \fIinactive_days\fR"
 The number of days after a password expires until the account is permanently
 disabled. A value of 0 disables the account as soon as the password has
-expired, and a value of -1 disables the feature. The default value is -1.
-.IP "\fB-g\fR \fIinitial_group\fR"
+expired, and a value of \-1 disables the feature. The default value is \-1.
+.IP "\fB\-g\fR \fIinitial_group\fR"
 The group name or number of the user's new initial login group. The group
 name must exist. A group number must refer to an already existing group.
 The default group number is 1.
-.IP "\fB-G\fR \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup1\fR[\fI,group2,...,\fR[\fIgroupN\fR]\fR]]"
 A list of supplementary groups which the user is also a member of. Each
 group is separated from the next by a comma, with no intervening whitespace.
 The groups are subject to the same restrictions as the group given with the
-\fB-g\fR option. If the user is currently a member of a group which is not
+\fB\-g\fR option. If the user is currently a member of a group which is not
 listed, the user will be removed from the group.
-.IP "\fB-l\fR \fIlogin_name\fR"
+.IP "\fB\-l\fR \fIlogin_name\fR"
 The name of the user will be changed from \fIlogin\fR to \fIlogin_name\fR.
 Nothing else is changed. In particular, the user's home directory name
 should probably be changed to reflect the new login name.
-.IP "\fB-L\fR"
+.IP "\fB\-L\fR"
 Lock a user's password. This puts a '!' in front of the encrypted password,
-effectively disabling the password.  You can't use this option with \fI-p\fR
-or \fI-U\fR.
-.IP "\fB-p\fR \fIpasswd\fR"                                                
+effectively disabling the password.  You can't use this option with \fI\-p\fR
+or \fI\-U\fR.
+.IP "\fB\-o\fR"
+When used with the \fI-u\fR option, this option allows to change the user ID
+to a non-unique value.
+.IP "\fB\-p\fR \fIpasswd\fR"                                                
 The encrypted password, as returned by \fBcrypt\fR(3).
-.IP "\fB-s\fR \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 The name of the user's new login shell. Setting this field to blank causes
 the system to select the default login shell.
-.IP "\fB-u\fR \fIuid\fR"
+.IP "\fB\-u\fR \fIuid\fR"
 The numerical value of the user's ID. This value must be unique, unless the
-\fI-o\fR option is used. The value must be non-negative. Values between 0
+\fI\-o\fR option is used. The value must be non\-negative. Values between 0
 and 99 are typically reserved for system accounts. Any files which the user
 owns and which are located in the directory tree rooted at the user's home
 directory will have the file user ID changed automatically. Files outside of
 the user's home directory must be altered manually.
-.IP "\fB-U\fR"
+.IP "\fB\-U\fR"
 Unlock a user's password. This removes the '!' in front of the encrypted
-password. You can't use this option with \fI-p\fR or \fI-L\fR.
+password. You can't use this option with \fI\-p\fR or \fI\-L\fR.
 .SH CAVEATS
 \fBusermod\fR will not allow you to change the name of a user who is
 logged in. You must make certain that the named user is not executing any
@@ -100,11 +101,11 @@ ID is being changed. You must change the owner of any crontab files
 manually. You must change the owner of any at jobs manually. You must make
 any changes involving NIS on the NIS server.
 .SH FILES
-\fI/etc/passwd\fR \    - user account information
+\fI/etc/passwd\fR      \- user account information
 .br
-\fI/etc/shadow\fR \    - secure user account information
+\fI/etc/shadow\fR      \- secure user account information
 .br
-\fI/etc/group\fR \     - group information
+\fI/etc/group\fR       \- group account information
 .SH SEE ALSO
 .BR chfn (1),
 .BR chsh (1),
index 099d897ba3623d6ac3d2c72da843d75549dc298d..76b9686a2029522290b0977a1e3c86162c7b2996 100644 (file)
@@ -1,14 +1,14 @@
-.\"$Id: vipw.8,v 1.6 2003/05/01 18:17:39 kloczek Exp $
+.\"$Id: vipw.8,v 1.8 2005/04/05 18:47:50 kloczek Exp $
 .TH VIPW 8 "26 Sep 1997"
 .SH NAME
-vipw, vigr \- edit the password, group, shadow-password, or shadow-group file.
+vipw, vigr \- edit the password, group, shadow\-password, or shadow\-group file.
 .SH SYNOPSIS
-\fBvipw\fR [\fB-s\fR]
+\fBvipw\fR [\fB\-s\fR]
 .br
-\fBvigr\fR [\fB-s\fR]
+\fBvigr\fR [\fB\-s\fR]
 .SH DESCRIPTION
 \fBvipw\fR and \fBvigr\fR will edit the files \fI/etc/passwd\fR and
-\fI/etc/group\fR, respectively. With the \fB-s\fR flag, they will edit the
+\fI/etc/group\fR, respectively. With the \fB\-s\fR flag, they will edit the
 shadow versions of those files, fI/etc/shadow\fR and \fI/etc/gshadow\fR,
 respectively. The programs will set the appropriate locks to prevent file
 corruption. When looking for an editor, the programs will first try the
index 5e6d59bd0d0259700384e3bd144031ebf0ab53d5..a0c99cb69a055aabca61b14f00eabba0537a6a39 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -87,17 +87,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -197,9 +196,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/zh_CN/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/zh_CN/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/zh_CN/Makefile
+         $(AUTOMAKE) --foreign  man/zh_CN/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 421b51f110373c3cc37e45d25b210a726e6b6d22..d2f2e286dbe60088612151c9ab63084babea41c7 100644 (file)
@@ -1,22 +1,16 @@
+.\" $Id: chfn.1,v 1.3 2005/04/05 19:08:57 kloczek Exp $
+.\" (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
-.\"  chfn.1 -- change your finger information
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
+.\" this program is free software.  you can redistribute it and
+.\" modify it under the terms of the gnu general public license.
 .\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:25 $
-.\"
 .TH CHFN 1 "October 13 1994" "chfn" "Linux Reference Manual"
 .SH Ãû³Æ
 chfn \- ¸Ä ±ä Ä㠵Ġfinger Ñ¶ Ï¢
 .SH Óï·¨
 .B chfn
-[\ \-f\ full-name\ ] [\ \-o\ office\ ] [\ \-p\ office-phone\ ]
-[\ \-h\ home-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
+[\ \-f\ full\-name\ ] [\ \-o\ office\ ] [\ \-p\ office\-phone\ ]
+[\ \-h\ home\-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
 .SH ÃèÊö
 .B chfn
 ÊÇ ÓàÀ´ ¸Ä ±ä Ä㠵Ġfinger Ñ¶ Ï¢ ¡£ Ñ¶ Ï¢ ÊÇ ´æ ·Å ÔÚ
@@ -40,22 +34,22 @@ chfn \- 
 Êä Èë "none" Ôò ±í Ê¾ ¸Ã À¸ ¿Õ °× ¡£
 .SH Ñ¡Ïî
 .TP
-.I "\-f, \-\-full-name"
+.I "\-f, \-\-full\-name"
 Õæ Êµ ÐÕ Ãû
 .TP
-.I "\-h, \-\-home-phone"
+.I "\-h, \-\-home\-phone"
 ¼Ò ÀĠµç »°
 .TP
 .I "\-o, \-\-office"
 °ì ¹¤ ÊÒ ºÅ Âë
 .TP
-.I "\-p, \-\-office-phone"
+.I "\-p, \-\-office\-phone"
 °ì ¹« ÊÒ µç »°
 .TP
 .I "\-u, \-\-help"
 Ðã ³ö Ê¹ Óà˵ Ã÷ ¶Ì Ñ¶ ¡£
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 Ðã ³ö °æ ±¾ Ñ¶ Ï¢ ¡£
 .SH "Ïà¹ØÎļþ"
 .BR finger (1),
index 944e0af8570c13d49d04e7ade9bf498229290157..ad32ea2707753a7f42e4731767b33a68f57916e2 100644 (file)
@@ -26,7 +26,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: chpasswd.8,v 1.2 2003/04/26 13:24:16 kloczek Exp $
+.\"    $Id: chpasswd.8,v 1.3 2005/04/05 19:08:57 kloczek Exp $
 .\"
 .TH CHPASSWD 8
 .SH NAME Ãû×Ö
@@ -55,7 +55,7 @@ passwd 
 .\" DBM password files.
 .\" This command may be discarded in favor of the newusers(8) command.
 ÒòΪ¿ÉÒÔʹÓÃÎļþÖØ¶¨Ïò½øÐÐÊäÈ룬
-¼´£ºchpasswd &lt; user&amp;passwd-filename£¬ 
+¼´£ºchpasswd &lt; user&amp;passwd\-filename£¬ 
 Èç¹ûÊäÈëÎļþÊǰ´·Ç¼ÓÃÜ·½Ê½´«µÝµÄ»°£¬Çë¶Ô¸ÃÎļþ½øÐÐÊʵ±µÄ¼ÓÃÜ¡£
 .SH ÓÖ¼û
 passwd(1),useradd(8),newuser(8)
index 8951515eb2bc813566ec67198be60abf3500dfe5..174ac5c5310863f86099fcd8fa18b94c0511f1ff 100644 (file)
@@ -1,15 +1,9 @@
+.\" $Id: chsh.1,v 1.3 2005/04/05 19:08:57 kloczek Exp $
+.\" (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
-.\"  chsh.1 -- change your login shell
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:25 $
-.\"
+.\" this program is free software.  you can redistribute it and
+.\" modify it under the terms of the gnu general public license.
+.\" there is no warranty.
 .TH CHSH 1 "October 13 1994" "chsh" "Linux Reference Manual"
 .SH Ãû³Æ
 chsh \- ¸ü»»ÄãµÇÈëʱËùÓõÄshell
@@ -30,7 +24,7 @@ chsh \- 
 µµÉÏ£¬Ôòchsh»áÌá³ö¾¯¸æÑ¶Ï¢¡£
 .SH Ñ¡Ïî
 .TP
-.I "\-l, \-\-list-shells"
+.I "\-l, \-\-list\-shells"
 Áгö¼Í¼ÔÚ
 .I /etc/shells
 µÄshell¡£
@@ -41,7 +35,7 @@ chsh \- 
 .I "\-u, \-\-help"
 Ê¹ÓöÌѶ¡£
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 °æ±¾×ÊѶ
 .SH "Ïà¹ØÎļþ"
 .BR login (1),
index 29f7b6879f62b2411f362c5ad0aae5f3cd1adfeb..790b17c8f288143ce162e03254438da1aa4f6f86 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: groupadd.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupadd.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH GROUPADD 8
 .SH Ãû³Æ
 groupadd \- ½¨ Á¢ Ð Ⱥ ×é
 .SH Óï·¨
 .B groupadd
-[\fB-g\fI gid \fR[\fB-o\fR]] [\fB-r\fR] [\fB-f\fR] \fIgroup\fR
+[\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-r\fR] [\fB\-f\fR] \fIgroup\fR
 .SH ÃèÊö
 \fBgroupadd\fR
 ¿É Ö¸ ¶¨ Èº ×é Ãû ³Æ À´ ½¨ Á¢ Ð µÄ Èº ×é ÕÊ ºÅ ¡£
 Ðè Òª Ê± ¿É ´Ó Ïµ Í³ ÖРȡ µÃ Ð Ⱥ ×é Öµ ¡£
 \fBgroupadd\fR ÓРÏ ÁРѡ Ïî ¿É Óà¡£
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g\fR \fIgid\fR"
 group's ID Öµ ¡£
-³ý  ·Ç Ê¹ Óà\fB-o\fR ²Î Êý ²» È» ¸Ã Öµ ±Ø Ðë ÊǠΨ Ò» £¬ ²» ¿É Ïà Í¬ ¡£
+³ý  ·Ç Ê¹ Óà\fB\-o\fR ²Î Êý ²» È» ¸Ã Öµ ±Ø Ðë ÊǠΨ Ò» £¬ ²» ¿É Ïà Í¬ ¡£
 Êý Öµ ²» ¿É Îª ¸º ¡£
 Ô¤ Éè Îª ×î Ð¡  ²»  µÃ Ð¡ ÓÚ 500 ¶ø Öð ´Î Ôö ¼Ó ¡£ 0~999 ´« Í³ ÉÏ
 ÊÇ ±£ Áô ¸ø \fIϵͳÕʺÅ\fR Ê¹ Óà¡£
-.IP \fB-r\fR
+.IP \fB\-r\fR
 
 
 ´Ë ²Î Êý ÊÇ ÓàÀ´ ½¨ Á¢ \fIϵͳÕʺÅ\fR ¡£
@@ -52,26 +50,26 @@ group's ID ֵ 
 µÄ UID_MIN À´ µÄ Ð¡ ¡£ ×¢ Òâ useradd ´Ë Óà·¨ Ëù ½¨
 Á¢  µÄ ÕÊ ºÅ ²» »á ½¨ Á¢ Ê¹ ÓàÕß Ä¿ Â¼ £¬ Ò² ²» »á
 ÔÚ ºõ ¼Í Â¼ ÔÚ /etc/login.defs. µÄ ¶¨ Òå Öµ  ¡£  Èç
-¹û  Äã Ïë Òª ÓРʹ ÓàÕß Ä¿ Â¼ Ðë ¶î Íâ Ö¸ ¶¨ -m ²Î
+¹û  Äã Ïë Òª ÓРʹ ÓàÕß Ä¿ Â¼ Ðë ¶î Íâ Ö¸ ¶¨ \-m ²Î
 Êý À´ ½¨ Á¢ Ïµ Í³ ÕÊ ºÅ ¡£ Õâ ÊÇ RED HAT ¶î  Íâ  Ôö
 É蠵Ġѡ Ïî ¡£
 Ëü »á ×Ô ¶¯ °ï Äã Ñ¡ ¶¨ Ò» ¸ö Ð¡ ÓÚ 999 µÄ \fIgif\fR
-²» Ðè Òª ÔÙ ¼Ó ÉÏ \fB-g\fR ²Î Êý ¡£
+²» Ðè Òª ÔÙ ¼Ó ÉÏ \fB\-g\fR ²Î Êý ¡£
 .br
 Õâ ÊÇ RED HAT ¶î  Íâ  Ôö É蠵Ġѡ Ïî ¡£
 
-.IP \fB-f\fR
+.IP \fB\-f\fR
 This is \fIforce\fR flag. 
 Ð Ôö Ò» ¸ö ÒÑ ¾­ ´æ ÔÚ µÄ Èº ×é ÕÊ ºÅ £¬ Ïµ Í³ »á ³ö
 ÏÖ ´í Îó Ñ¶ Ï¢ È» ºó ½á Êø \fBgroupadd\fR ¡£
  Èç ¹û ÊÇ Õâ Ñù µÄ Çé ¿ö £¬ ²» »á Ð Ôö Õâ ¸ö Èº ×é 
 ( Èç ¹û ÊÇ Õâ ¸ö Çé ¿ö Ï £¬ Ïµ Í³ ²» »á Ô٠РÔö Ò» ´Î )
 .br
-Ò² ¿É Í¬ Ê± ¼Ó ÉÏ \fB-g\fR Ñ¡ Ïî
+Ò² ¿É Í¬ Ê± ¼Ó ÉÏ \fB\-g\fR Ñ¡ Ïî
 µ± Äã ¼Ó ÉÏ Ò» ¸ö \fIgid\fR £¬ ´Ë Ê±  \fIgid\fR
-¾Í ²» ÓàÊǠΨ Ò» Öµ £¬ ¿É ²» ¼Ó \fB-o\fR ²Î Êý £¬
+¾Í ²» ÓàÊǠΨ Ò» Öµ £¬ ¿É ²» ¼Ó \fB\-o\fR ²Î Êý £¬
 ½¨ ºÃ Èº ×é ºó »á ÏÔ ½á ¹û  
-(adding a group as neither \fB-g\fR or \fB-o\fR options were
+(adding a group as neither \fB\-g\fR or \fB\-o\fR options were
 specified).
 
 .br
index ed65fbd195b3835be1ab2afcf06d98f59da37ee0..74f325c90346315a02c955f198a6646cc8c3ec16 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1991 - 1993, Julianne Frances Haugh
+.\" $Id: groupdel.8,v 1.3 2005/04/05 19:08:57 kloczek Exp $
+.\" Copyright 1991 \- 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,9 +25,6 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupdel.8,v 1.2 2003/04/26 13:24:16 kloczek Exp $
-.\"
 .TH GROUPDEL 8
 .SH Ãû³Æ
 groupdel \- É¾³ýȺ×é
index bb129c5989be398404961ff9ed74735ca44f85a6..dff4188982e546f46f19efcf5afde2d8e9d337b9 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: groupmod.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
+.\"    $Id: groupmod.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
 .\"
 .TH GROUPMOD 8
 .SH Ãû³Æ
 groupmod \- ÐÞ ¸Ä Èº ×é
 .SH Óï·¨
 .B groupmod
-[\fB-g\fI gid \fR[\fB-o\fR]]
-[\fB-n\fI group_name \fR]
+[\fB\-g\fR \fIgid\fR [\fB\-o\fR]]
+[\fB\-n\fR \fIgroup_name\fR]
 .I group
 .SH ÃèÊö
 
 \fBgroupmod\fR Ãü ÁᠲΠÕÕ Äã Ãü Áî ÁРÉÏ Ö¸ ¶¨ µÄ ²¿ ·Ý 
 ÐÞ ¸Ä Ïµ Í³ ÕÊ ºÅ µµ ¡£ Ï ÁРΪ \fIgroupmod\fR ¿É Ñ¡ ÓàµÄ ²Î Êý ¡£
 
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g\fR \fIgid\fR"
 Èº ×é I D Öµ ¡£
-±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà-o Ñ¡ Ïî ¡£
+±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà\-o Ñ¡ Ïî ¡£
 Êý ×Ö ²» ¿É Îª ¸º Öµ¡£Ô¤ Éè Îª ×î
 Ð¡ ²» µÃ Ð¡ ÓÚ 999 ¶ø Öð ´Î Ôö ¼Ó ¡£ 0~ 499 ´« Í³ ÉÏ
 ÊÇ ±£ Áô ¸ø Ïµ Í³ ÕÊ ºÅ Ê¹ Óà¡£
 Èç ¹û ÓРµµ °¸ Ê¹ Óà¾É µÄ Èº ×é ID £¬ ¶ø Õâ Ê± ºò Äã Ð Ôö µÄ Èº ×é ID
 Ç¡ ºÃ Ó렾ɠµÄ Ïà Í¬ £¬ Õâ Ñù µÄ »°
 Äã Òª ÊÖ ¶¯ ¸Ä Ò» Ï Õâ Ð© µµ °¸ µÄ Èº ×é ID ¡£
-.IP "\fB-n \fIgroup_name\fR"
+.IP "\fB\-n\fR \fIgroup_name\fR"
 ¸ü ¸Ä Èº ×é Ãû ¡£
 .SH µµ°¸
 \fI/etc/group\fR \- Èº ×é ×ʠѶ 
index f7f250ca74365583c51f93bb5232d57fe6507c75..47e27d01d7d823aa46e6dbe71ec8234f38c31d5a 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: useradd.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -25,7 +26,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    $Id: useradd.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
+.\"    $Id: useradd.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
 .\"
 .TH USERADD 8
 .SH Ãû ³Æ
@@ -33,135 +34,122 @@ useradd \- 
 .SH Óï ·¨
 .TP 8
 .B useradd
-.\" .RB [ -A
-.\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR comment ]
-.RB [ -d
+.RB [ \-d
 .IR home_dir ]
 .br
-.RB [ -e
+.RB [ \-e
 .IR expire_date ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR initial_group ]
-.RB [ -G
+.RB [ \-G
 .IR group [,...]]
 .br
-.RB [ -m " [" -k
-.IR skeleton_dir ] " |" " " -M ]
-.RB [ -s
+.RB [ \-m " [" \-k
+.IR skeleton_dir ] " |" " " \-M ]
+.RB [ \-s
 .IR shell ]
 .br
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
-.RB [ -n ]
-.RB [ -r ]
+.BR \-o ]]
+.RB [ \-n ]
+.RB [ \-r ]
 .I login
 .TP 8
 .B useradd
-\fB-D\fR
-[\fB-g\fI default_group\fR]
-[\fB-b\fI default_home\fR]
+\fB\-D\fR [\fB\-g\fR \fIdefault_group\fR] [\fB\-b\fR \fIdefault_home\fR]
 .br
-[\fB-f\fI default_inactive\fR]
-[\fB-e\fI default_expire_date\fR]
+[\fB\-f\fR \fIdefault_inactive\fR] [\fB\-e\fR \fIdefault_expire_date\fR]
 .br
-[\fB-s\fI default_shell\fR]
+[\fB\-s\fR \fIdefault_shell\fR]
 .SH Ãè Êö
 .SS Ð ÕÊ ºÅ ½¨ Á¢
-µ± ²» ¼Ó \fB-D\fR ²Î Êý , \fBuseradd\fR Ö¸ Áî Ê¹ ÓàÃü Áî ÁРÀ´ Ö¸ ¶¨
+µ± ²» ¼Ó \fB\-D\fR ²Î Êý , \fBuseradd\fR Ö¸ Áî Ê¹ ÓàÃü Áî ÁРÀ´ Ö¸ ¶¨
 Ð ÕÊ ºÅ µÄ Éè ¶¨ Öµ and Ê¹ Óàϵ Í³ ÉÏ µÄ Ô¤ Éè Öµ .
 Ð ʹ ÓàÕß ÕÊ ºÅ ½« ²ú Éú Ò» Ð© Ïµ Í³ µµ °¸ £¬ Ê¹ ÓàÕß Ä¿ Â¼ ½¨ Á¢ £¬
 ¿½ ±¸ Æð Ê¼ µµ °¸ µÈ
 £¬ Õâ Ð© ¾ù ¿É ÒÔ Àû ÓàÃü ÁîÁРѡ Ïî Ö¸ ¶¨ ¡£ ´Ë °æ ±¾ Îª Red Hat Linux Ìá ¹©
-£¬ ¿É °ï Ã¿ ¸ö Ð ¼Ó È렵Ġʹ ÓàÕß ½¨ Á¢ ¸ö ±ð µÄ group , Îã Ðë Ìí ¼Ó \fB-n\fR
+£¬ ¿É °ï Ã¿ ¸ö Ð ¼Ó È렵Ġʹ ÓàÕß ½¨ Á¢ ¸ö ±ð µÄ group , Îã Ðë Ìí ¼Ó \fB\-n\fR
 Ñ¡ Ïî ¡£  
 \fBuseradd\fR ¿É Ê¹ ÓàµÄ Ñ¡ Ïî Îª
-.\" .IP "\fB-A {\fImethod\fR|\fBDEFAULT\fR},..."
-.\" The value of the user's authentication method.
-.\" The authentication method is the name of a program which is responsible
-.\" for validating the user's identity.
-.\" The string \fBDEFAULT\fR may be used to change the user's authentication
-.\" method to the standard system password method.
-.\" This is a comma-separated list of program names.
-.\" It may include \fBDEFAULT\fR exactly once.
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 Ð ÕÊ ºÅ password µµ µÄ Ëµ Ã÷ À¸ ¡£ 
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 Ð ÕÊ ºÅ Ã¿ ´Î µÇ Èë Ê± Ëù Ê¹ ÓàµÄ \fIhome_dir\fR ¡£ 
 Ô¤ Éè Öµ Îª \fIdefault_home\fR ÄÚ \fIlogin\fR Ãû ³Æ £¬ ²¢ µ± ³É µÇ Èë Ê± Ä¿ Â¼ 
 Ãû ³Æ ¡£
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ÕÊ ºÅ ÖÕ Ö¹ ÈÕ ÆÚ ¡£ ÈÕ ÆÚ µÄ Ö¸ ¶¨ ¸ñ Ê½ Îª \fIMM/DD/YY\fR ¡£
-.IP "\fB-f \fIinactive_days\fR"
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ÕÊ ºÅ ¹ý ÆÚ ¼¸ ÈÕ ºó ÓÀ ¾Ã Í£ È¨ ¡£
 µ± Öµ Îª 0 Ê± ÕÊ ºÅ Ôò Á¢ ¿Ì ±» Í£ È¨ ¡£
-¶ø µ± Öµ Îª -1 Ê± Ôò ¹Ø ±Õ ´Ë ¹¦ ÄÜ £¬ Ô¤ Éè Öµ Îª -1
-.IP "\fB-g \fIinitial_group\fR"
+¶ø µ± Öµ Îª \-1 Ê± Ôò ¹Ø ±Õ ´Ë ¹¦ ÄÜ £¬ Ô¤ Éè Öµ Îª \-1
+.IP "\fB\-g\fR \fIinitial_group\fR"
 group Ãû ³Æ »ò ÒÔ Êý ×Ö À´ ×ö Îª Ê¹ ÓàÕß µÇ Èë Æð Ê¼ Èº ×é (group) ¡£
 Èº ×é Ãû Ðë Îª ÏÖ ÓР´æ ÔÚ µÄ Ãû ³Æ ¡£
 Èº ×é Êý ×Ö Ò² Ðë Îª ÏÖ ÓР´æ ÔÚ µÄ Èº ×é ¡£
 Ô¤ É蠵ĠȺ ×é Êý ×֠Ϊ 1 ¡£
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ¶¨ Ò場ˠʹ ÓàÕߠΪ ´Ë Ò» ¶Ñ groups µÄ ³É Ô± ¡£
 Ã¿ ¸ö Èº ×é Ê¹ Óà"," Çø ¸ñ ¿ª À´ £¬ ²» ¿É ÒÔ ¼Ð ÔÓ ¿Õ °× ×Ö Ôª ¡£
- Èº ×é Ãû Í¬ \fB-g\fR Ñ¡ ÏĠÏÞ ÖÆ ¡£
+ Èº ×é Ãû Í¬ \fB\-g\fR Ñ¡ ÏĠÏÞ ÖÆ ¡£
 ¶¨ Òå Öµ Îª Ê¹ÓàÕß µÄ Æð Ê¼ Èº ×é ¡£
-.IP \fB-m\fR
+.IP \fB\-m\fR
 Ê¹ ÓàÕß Ä¿ Â¼ Èç ²» ´æ ÔÚ Ôò ×Ô ¶¯ ½¨ Á¢ ¡£
-Èç Ê¹ Óà\fB-k\fR Ñ¡ Ïî \fIskeleton_dir\fR ÄÚ µÄ µµ °¸ ½« ¸´ ÖÆ ÖÁ Ê¹ ÓàÕß Ä¿ 
+Èç Ê¹ Óà\fB\-k\fR Ñ¡ Ïî \fIskeleton_dir\fR ÄÚ µÄ µµ °¸ ½« ¸´ ÖÆ ÖÁ Ê¹ ÓàÕß Ä¿ 
 Â¼ Ï ¡£
 È» ¶ø ÔÚ \fI/etc/skel\fR Ä¿ Â¼ Ï µÄ µµ °¸ Ò² »á ¸´ ÖÆ ¹ý È¥ È¡ ´ú ¡£
 ÈΠºÎ ÔÚ \fIskeleton_dir\fR or \fI/etc/skel\fR µÄ Ä¿ Â¼ Ò² Ïà Í¬ »á Ôڠʹ ÓàÕß
 Ä¿ Â¼ Ï һ Ò» ½¨ Á¢ ¡£
-The \fB-k\fR ͬ \fB-m\fR
+The \fB\-k\fR ͬ \fB\-m\fR
 ²» ½¨ Á¢ Ä¿ Â¼ ÒÔ ¼° ²» ¸´ ÖÆ ÈΠºÎ µµ °¸ Îª Ô¤ Éè Öµ ¡£
-.IP \fB-M\fR
+.IP \fB\-M\fR
 ²» ½¨ Á¢ Ê¹ ÓàÕß Ä¿ Â¼ £¬ ¼´ Ê¹ \fI/etc/login.defs\fR Ïµ Í³ µµ Éè ¶¨ Òª ½¨ 
 Á¢ Ê¹ ÓàÕß Ä¿ Â¼ ¡£
-.IP \fB-n\fR
+.IP \fB\-n\fR
 Ô¤ Éè Öµ Ê¹ ÓàÕߠȺ ×é Óë Ê¹ ÓàÕß Ãû ³Æ »á Ïà Í¬ ¡£ ´Ë Ñ¡ Ïî ½« È¡ Ïû ´Ë Ô¤ 
 Éè Öµ ¡£
-.IP \fB-r\fR
+.IP \fB\-r\fR
 ´Ë ²Î Êý ÊÇ ÓàÀ´ ½¨ Á¢ Ïµ Í³ ÕÊ ºÅ ¡£ Ïµ Í³ ÕÊ ºÅ µÄ UID »á ±È ¶¨ Òå Ôڠϵ
 Í³ µµ ÉÏ \fI/etc/login.defs\fR.
 µÄ UID_MIN À´ µÄ Ð¡ ¡£ ×¢ Òâ \fBuseradd\fR ´Ë Óà·¨ Ëù ½¨ Á¢ µÄ ÕÊ ºÅ ²» »á
 ½¨ Á¢ Ê¹ ÓàÕß Ä¿ Â¼
 £¬ Ò² ²» »á ÔÚ ºõ ¼Í Â¼ ÔÚ \fI/etc/login.defs\fR. µÄ ¶¨ Òå Öµ ¡£
-Èç ¹û Äã Ïë Òª ÓРʹ ÓàÕß Ä¿ Â¼ Ðë ¶î Íâ Ö¸ ¶¨ \fB-m\fR ²Î Êý À´ ½¨ Á¢ Ïµ 
+Èç ¹û Äã Ïë Òª ÓРʹ ÓàÕß Ä¿ Â¼ Ðë ¶î Íâ Ö¸ ¶¨ \fB\-m\fR ²Î Êý À´ ½¨ Á¢ Ïµ 
 Í³ ÕÊ ºÅ ¡£
 Õâ ÊÇ RED HAT ¶î Íâ Ôö É蠵Ġѡ Ïî ¡£
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s \fIshell\fR"
 Ê¹ ÓàÕß µÇ Èë ºó Ê¹ ÓàµÄ shell Ãû ³Æ ¡£
 Ô¤ Éè Îª ²» Ìî Ð´ £¬ Õâ Ñù Ïµ Í³ »á °ï Äã Ö¸ ¶¨ Ô¤ É蠵ĠµÇ Èë shell ¡£
-.IP "\fB-u \fIuid\fR"
-ʹ ÓàÕß µÄ ID Öµ ¡£ ±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà\fI-o\fR Ñ¡ Ïî ¡£
+.IP "\fB\-u \fIuid\fR"
+ʹ ÓàÕß µÄ ID Öµ ¡£ ±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà\fI\-o\fR Ñ¡ Ïî ¡£
 Êý ×Ö ²» ¿É Îª ¸º Öµ¡£Ô¤ Éè Îª ×î Ð¡ ²» µÃ Ð¡ ÓÚ 999 ¶ø Öð ´Î Ôö ¼Ó ¡£
 0~ 999 ´« Í³ ÉÏ ÊÇ ±£ Áô ¸ø Ïµ Í³ ÕÊ ºÅ Ê¹ Óà¡£
 
 .SS ¸Ä ±ä Ô¤ Éè Öµ
-µ± \fB-D\fR Ñ¡ Ïî ³ö Ï֠ʱ £¬ \fBuseradd\fR Ðã ³ö ÏÖ ÔÚ µÄ Ô¤ Éè Öµ £¬ »ò ÊÇ ½å 
+µ± \fB\-D\fR Ñ¡ Ïî ³ö Ï֠ʱ £¬ \fBuseradd\fR Ðã ³ö ÏÖ ÔÚ µÄ Ô¤ Éè Öµ £¬ »ò ÊÇ ½å 
 ÓÉ
 Ãü Áî ÁРµÄ ·½ Ê½ ¸ü Ð Ԥ Éè Öµ ¡£
 ¿É Óàѡ Ïî Îª ¡Ã
-.IP "\fB-b \fIdefault_home\fR"
+.IP "\fB\-b\fR \fIdefault_home\fR"
 ¶¨ Òå Ê¹ ÓàÕß Ëù Êô Ä¿ Â¼ µÄ Ç° Ò» ¸ö Ä¿ Â¼ ¡£
 Ê¹ ÓàÕß Ãû ³Æ »á ¸½ ¼Ó ÔÚ \fIdefault_home\fR ºó Ãæ
 ÓàÀ´ ½¨ Á¢ Ð ʹ ÓàÕß µÄ Ä¿ Â¼ ¡£
-µ± È» Ê¹ Óà\fB-d\fI ºó Ôò ´Ë Ñ¡ Ïî ÎޠЧ ¡£
-.IP "\fB-e \fIdefault_expire_date\fR"
+µ± È» Ê¹ Óà\fB\-d\fI ºó Ôò ´Ë Ñ¡ Ïî ÎޠЧ ¡£
+.IP "\fB\-e\fR \fIdefault_expire_date\fR"
 Ê¹ ÓàÕß ÕÊ ºÅ Í£ Ö¹ ÈÕ ÆÚ ¡£
-.IP "\fB-f \fIdefault_inactive\fR"
+.IP "\fB\-f\fR \fIdefault_inactive\fR"
 ÕÊ ºÅ ¹ý ÆÚ ¼¸ ÈÕ ºó Í£ È¨ ¡£
-.IP "\fB-g \fIdefault_group\fR"
+.IP "\fB\-g\fR \fIdefault_group\fR"
 Ð ÕÊ ºÅ Æð Ê¼ Èº ×é Ãû »ò ID ¡£
 Èº ×é Ãû Ðë Îª ÏÖ ÓР´æ ÔÚ µÄ Ãû ³Æ ¡£
 Èº ×é I D Ò² Ðë Îª ÏÖ ÓР´æ ÔÚ µÄ Èº ×é ¡£
-.IP "\fB-s \fIdefault_shell\fR"
+.IP "\fB\-s\fR \fIdefault_shell\fR"
 Ê¹ ÓàÕß µÇ Èë ºó Ê¹ ÓàµÄ shell Ãû ³Æ ¡£
 Íù ºó Ð ¼Ó È렵ĠÕÊ ºÅ ¶¼ ½« Ê¹ Óà´Ë shell.
 .PP
index 26552ae4af14940514bd942d73788290fc7208a5..a1eab0048dd8755f1b746ab4f524f5c36554cf31 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: userdel.8,v 1.3 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991 - 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: userdel.8,v 1.2 2003/04/26 13:24:16 kloczek Exp $
-.\"
 .TH USERDEL 8
 .SH Ãû³Æ
 userdel \- É¾ ³ý Ê¹ ÓàÕß ÕÊ ºÅ ¼° Ï࠹ؠµµ °¸
 .SH Óï·¨
 .B userdel
-[\fB-r\fR]
+[\fB\-r\fR]
 .I login
 .SH ÃèÊö
 \fBuserdel\fR Ãü Áî ÐÞ ¸Ä Ïµ Í³ ÕÊ ºÅ µµ
 É¾ ³ý Ëù ÓР\fIlogin\fR »á ²Î ¿¼ µÄ ²¿ ·Ý ¡£
 Ê¹ ÓàÕß Ãû ³Æ ±Ø ÐëÊÇ ´æ ÔÚ µÄ ¡£
-.IP \fB-r\fR
+.IP \fB\-r\fR
 Ê¹ ÓàÕß Ä¿ Â¼ Ï µÄ µµ °¸ Ò» ²¢ ÒÆ ³ý ¡£ ÔÚ Æä Ëû Î» ÖàÉÏ µÄ µµ
 °¸ Ò² ½« Ò» Ò» ÕÒ ³ö ²¢ É¾ ³ý ¡£
 .SH µµ°¸
index b9c94fc3acd98312018ac63e62f71e0681756995..0c4419b8027434aaafc2bb60eefb05dd77505335 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" $Id: usermod.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: usermod.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH USERMOD 8
 .SH Ãû³Æ
 usermod \- ÐÞ ¸Ä Ê¹ ÓàÕß ÕÊ ºÅ
 .SH Óï·¨
 .TP 8
 .B usermod
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR comment ]
-.RB [ -d
+.RB [ \-d
 .IR home_dir " ["
-.BR -m ]]
+.BR \-m ]]
 .br
-.RB [ -e
+.RB [ \-e
 .IR expire_date ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR initial_group ]
-.RB [ -G
+.RB [ \-G
 .IR group [,...]]
 .br
-.RB [ -l
+.RB [ \-l
 .IR login_name ]
-.RB [ -s
+.RB [ \-s
 .IR shell ]
 .br
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
+.BR \-o ]]
 .I login
 .SH ÃèÊö
 \fBusermod\fR Ãü ÁᠲΠÕÕ Äã Ãü Áî ÁРÉÏ Ö¸ ¶¨ µÄ ²¿ ·Ý ÐÞ ¸Ä Ïµ Í³ ÕÊ 
 ºÅ µµ ¡£ Ï ÁРΪ \fBusermod\fR ¿É Ñ¡ ÓàµÄ ²Î Êý ¡£
 
-.\" .IP "\fB-A \fImethod\fR|\fBDEFAULT\fR"
+.\" .IP "\fB\-A \fImethod\fR|\fBDEFAULT\fR"
 .\" The new value of the user's authentication method.
 .\" The authentication method is the name of a program which is responsible
 .\" for validating the user's identity.
 .\" The string \fBDEFAULT\fR may be used to change the user's authentication
 .\" method to the standard system password method.
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 ¸ü Ð ʹ ÓàÕß ÕÊ ºÅ password µµ ÖРµÄ ×¢ ½â À¸
 £¬ Ò» °ã ÊǠʹ Óà\fBchfn\fR(1) À´ ÐÞ ¸Ä ¡£
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 ¸ü Ð ʹ ÓàÕߠРµÄ µÇ Èë Ä¿ Â¼ ¡£
-Èç ¹û ¸ø ¶¨ \fB-m\fR Ñ¡ Ïî £¬ Ê¹ ÓàÕß ¾É Ä¿ Â¼ »á °á µ½ Ð µÄ Ä¿ Â¼ È¥ 
+Èç ¹û ¸ø ¶¨ \fB\-m\fR Ñ¡ Ïî £¬ Ê¹ ÓàÕß ¾É Ä¿ Â¼ »á °á µ½ Ð µÄ Ä¿ Â¼ È¥ 
 £¬È砾ɠĿ Â¼ ²» ´æ ÔÚ Ôò ½¨ ¸ö Ð µÄ ¡£
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ¼Ó ÉϠʹ ÓàÕß ÕÊ ºÅ Í£ Ö¹ ÈÕ ÆÚ ¡£ ÈÕ ÆÚ ¸ñ Ê½ Îª \fIMM/DD/YY\fR.
-.IP "\fB-f \fIinactive_days\fR"
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ÕÊ ºÅ ¹ý ÆÚ ¼¸ ÈÕ ºó ÓÀ ¾Ã Í£ È¨¡£µ± Öµ Îª  0  Ê±
-ÕÊ  ºÅ Ôò Á¢ ¿Ì ±» Í£ È¨ ¡£ ¶ø µ± Öµ Îª -1 Ê± Ôò ¹Ø±Õ´Ë¹¦ÄÜ
-¡£Ô¤ Éè Öµ Îª -1¡£
-.IP "\fB-g \fIinitial_group\fR"
+ÕÊ  ºÅ Ôò Á¢ ¿Ì ±» Í£ È¨ ¡£ ¶ø µ± Öµ Îª \-1 Ê± Ôò ¹Ø±Õ´Ë¹¦ÄÜ
+¡£Ô¤ Éè Öµ Îª \-1¡£
+.IP "\fB\-g\fR \fIinitial_group\fR"
 ¸ü Ð ʹ ÓàÕߠРµÄ Æð Ê¼ µÇ Èë Èº ×é ¡£ Èº ×é Ãû Ðë ÒÑ ´æ ÔÚ 
 ¡£Èº ×é ID ±Ø Ð렲ΠÕÕ ¼È ÓРµÄ µÄ Èº ×é ¡£ Èº ×é ID Ô¤ Éè Öµ Îª 1 ¡£
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ¶¨ Òå Ê¹ ÓàÕߠΪ  Ò» ¶Ñ groups µÄ ³É Ô± ¡£ Ã¿
 ¸ö Èº ×é Ê¹ Óà"," Çø ¸ñ ¿ª À´ £¬ ²» ¿É ÒÔ ¼Ð ÔÓ ¿Õ
-°× ×Ö Ôª ¡£ Èº ×é Ãû Í¬ -g Ñ¡ ÏĠÏÞ ÖÆ ¡£
+°× ×Ö Ôª ¡£ Èº ×é Ãû Í¬ \-g Ñ¡ ÏĠÏÞ ÖÆ ¡£
 Èç ¹û Ê¹ ÓàÕß ÏÖ ÔÚ µÄ Èº ×é ²» ÔÙ ´Ë ÁР£¬ Ôò ½« Ê¹ ÓàÕß ÓÉ ¸Ã 
 Èº ×é ÖÐ ÒÆ ³ý ¡£
-.IP "\fB-l \fIlogin_name\fR"
+.IP "\fB\-l\fR \fIlogin_name\fR"
 ±ä ¸ü Ê¹ ÓàÕß \fIlogin\fR Ê± µÄ Ãû ³Æ Îª \fIlogin_name\fR ¡£
 Æä ÓÚ ²» ±ä ¡£ ÌØ ±ð ÊÇ £¬ Ê¹ ÓàÕß Ä¿ Â¼ Ãû Ó¦ ¸Ã Ò² »á ¸ú ×Å ¸ü ¶¯ ³É Ð 
 µÄ µÇ Èë Ãû ¡£
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 Ö¸ ¶¨ Ð µÇ Èë shell ¡£ Èç ´Ë À¸ Áô °× £¬ Ïµ Í³ ½« Ñ¡ Óàϵ Í³ Ô¤ Éè shell ¡£
-.IP "\fB-u \fIuid\fR"
-ʹ ÓàÕß ID Öµ ¡£±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà\fI-o\fR Ñ¡ Ïî ¡£ Êý 
+.IP "\fB\-u\fR \fIuid\fR"
+ʹ ÓàÕß ID Öµ ¡£±Ø Ðë Îª Î¨ Ò» µÄ ID Öµ £¬ ³ý ·Ç Óà\fI\-o\fR Ñ¡ Ïî ¡£ Êý 
 ×Ö ²» ¿É Îª ¸º Öµ¡£Ô¤ Éè Îª ×î Ð¡  ²»  µÃ Ð¡ ÓÚ 999 ¶ø Öð ´Î 
 Ôö ¼Ó ¡£ 0~ 999 ´« Í³ ÉÏ ÊÇ ±£ Áô ¸ø Ïµ Í³ ÕÊ ºÅ Ê¹ Óà¡£
 Ê¹ ÓàÕß Ä¿ Â¼ Ê÷ Ï Ëù ÓРµÄ µµ °¸ Ä¿ Â¼ Æä user ID »á ×Ô ¶¯ ¸Ä ±ä ¡£
index f5a249cff33f95404013744cf88e8156f5a0c652..9ca322eddc6d76bc425b9f03af77b2e4b22f238e 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -87,17 +87,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -196,9 +195,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/zh_TW/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  man/zh_TW/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  man/zh_TW/Makefile
+         $(AUTOMAKE) --foreign  man/zh_TW/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 3d0df679dabf20caaeb4f6110a6760309e767f53..181d06af4b084acd91c527dc8c070e6f4411a31d 100644 (file)
@@ -1,22 +1,16 @@
+.\" $Id: chfn.1,v 1.3 2005/04/05 19:08:57 kloczek Exp $
+.\" (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
-.\"  chfn.1 -- change your finger information
-.\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
-.\"
-.\"  this program is free software.  you can redistribute it and
-.\"  modify it under the terms of the gnu general public license.
-.\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:26 $
-.\"
+.\" this program is free software.  you can redistribute it and
+.\" modify it under the terms of the gnu general public license.
+.\" there is no warranty.
 .TH CHFN 1 "October 13 1994" "chfn" "Linux Reference Manual"
 .SH ¦WºÙ
 chfn \- §ï ÅÜ §A ªº finger °T ®§
 .SH »yªk
 .B chfn
-[\ \-f\ full-name\ ] [\ \-o\ office\ ] [\ \-p\ office-phone\ ]
-[\ \-h\ home-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
+[\ \-f\ full\-name\ ] [\ \-o\ office\ ] [\ \-p\ office\-phone\ ]
+[\ \-h\ home\-phone\ ] [\ \-u\ ] [\ \-v\ ] [\ username\ ]
 .SH ´y­z
 .B chfn
 ¬O ¥Î ¨Ó §ï ÅÜ §A ªº finger °T ®§ ¡C °T ®§ ¬O ¦s ©ñ ¦b
@@ -40,22 +34,22 @@ chfn \- 
 ¿é ¤J "none" «h ªí ¥Ü ¸Ó Ä株Š¥Õ ¡C
 .SH ¿ï¶µ
 .TP
-.I "\-f, \-\-full-name"
+.I "\-f, \-\-full\-name"
 ¯u ¹ê ©m ¦W
 .TP
-.I "\-h, \-\-home-phone"
+.I "\-h, \-\-home\-phone"
 ®a ¸Ì ªº ¹q ¸Ü
 .TP
 .I "\-o, \-\-office"
 ¿ì ¤u «Ç ¸¹ ½X
 .TP
-.I "\-p, \-\-office-phone"
+.I "\-p, \-\-office\-phone"
 ¿ì ¤½ «Ç ¹q ¸Ü
 .TP
 .I "\-u, \-\-help"
 ¨q ¥X ¨Ï ¥Î »¡ ©ú µu °T ¡C
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 ¨q ¥X ª© ¥» °T ®§ ¡C
 .SH "¬ÛÃö¤å¥ó"
 .BR finger (1),
index 04ca9d1f7d58729027eb490561140d4118e4ec44..54b930fd62fda42014e85e861c3f2adedc5e651e 100644 (file)
@@ -1,15 +1,9 @@
-.\"
-.\"  chsh.1 -- change your login shell
+.\" $Id: chsh.1,v 1.3 2005/04/05 19:08:57 kloczek Exp $
 .\"  (c) 1994 by salvatore valente <svalente@athena.mit.edu>
 .\"
 .\"  this program is free software.  you can redistribute it and
 .\"  modify it under the terms of the gnu general public license.
 .\"  there is no warranty.
-.\"
-.\"  $Author: kloczek $
-.\"  $Revision: 1.2 $
-.\"  $Date: 2004/08/04 13:02:26 $
-.\"
 .TH CHSH 1 "October 13 1994" "chsh" "Linux Reference Manual"
 .SH ¦WºÙ
 chsh \- §ó´«§Aµn¤J®É©Ò¥Îªºshell
@@ -30,7 +24,7 @@ chsh \- 
 ÀɤW¡A«hchsh·|´£¥Xĵ§i°T®§¡C
 .SH ¿ï¶µ
 .TP
-.I "\-l, \-\-list-shells"
+.I "\-l, \-\-list\-shells"
 ¦C¥X¬ö¿ý¦b
 .I /etc/shells
 ªºshell¡C
@@ -41,7 +35,7 @@ chsh \- 
 .I "\-u, \-\-help"
 ¨Ï¥Îµu°T¡C
 .TP
-.I "-v, \-\-version"
+.I "\-v, \-\-version"
 ª©¥»¸ê°T
 .SH "¬ÛÃö¤å¥ó"
 .BR login (1),
index 1e8e010555b20ff34f9b74f7ccc6e5d67b602c79..0e19b976b1f145556eaad36a4aec7b41e492e0e0 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: groupadd.8,v 1.7 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupadd.8,v 1.5 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH GROUPADD 8
 .SH ¦WºÙ
 groupadd \- «Ø ¥ß ·s ¸s ²Õ
 .SH »yªk
-\fBgroupadd\fR [\fB-g\fI gid \fR[\fB-o\fR]] [\fB-f\fR] \fIgroup\fR
+\fBgroupadd\fR [\fB\-g\fR \fIgid\fR [\fB\-o\fR]] [\fB\-f\fR] \fIgroup\fR
 .SH ´y­z
 \fBgroupadd\fR
 ¥i «ü ©w ¸s ²Õ ¦W ºÙ ¨Ó «Ø ¥ß ·s ªº ¸s ²Õ ±b ¸¹ ¡C
 »Ý ­n ®É ¥i ±q ¨t ²Î ¤¤ ¨ú ±o ·s ¸s ²Õ ­È ¡C
 \fBgroupadd\fR ¦³ ¤U ¦C ¿ï ¶µ ¥i ¥Î ¡C
-.IP \fB-f\fR
+.IP \fB\-f\fR
 This is \fIforce\fR flag. 
 ·s ¼W ¤@ ­Ó ¤w ¸g ¦s ¦b ªº ¸s ²Õ ±b ¸¹ ¡A ¨t ²Î ·| ¥X
 ²{ ¿ù »~ °T ®§ µM «á µ² §ô \fBgroupadd\fR ¡C
  ¦p ªG ¬O ³o ¼Ë ªº ±¡ ªp ¡A ¤£ ·| ·s ¼W ³o ­Ó ¸s ²Õ 
 ( ¦p ªG ¬O ³o ­Ó ±¡ ªp ¤U ¡A ¨t ²Î ¤£ ·| ¦A ·s ¼W ¤@ ¦¸ )
 .br
-¤] ¥i ¦P ®É ¥[ ¤W \fB-g\fR ¿ï ¶µ
+¤] ¥i ¦P ®É ¥[ ¤W \fB\-g\fR ¿ï ¶µ
 ·í §A ¥[ ¤W ¤@ ­Ó \fIgid\fR ¡A ¦¹ ®É  \fIgid\fR
-´N ¤£ ¥Î ¬O °ß ¤@ ­È ¡A ¥i ¤£ ¥[ \fB-o\fR °Ñ ¼Æ ¡A
+´N ¤£ ¥Î ¬O °ß ¤@ ­È ¡A ¥i ¤£ ¥[ \fB\-o\fR °Ñ ¼Æ ¡A
 «Ø ¦n ¸s ²Õ «á ·| Åã µ² ªG  
-(adding a group as neither \fB-g\fR or \fB-o\fR options were
+(adding a group as neither \fB\-g\fR or \fB\-o\fR options were
 specified).
 
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g \fIgid\fR"
 group's ID ­È ¡C
-°£  «D ¨Ï ¥Î \fB-o\fR °Ñ ¼Æ ¤£ µM ¸Ó ­È ¥² ¶· ¬O °ß ¤@ ¡A ¤£ ¥i ¬Û ¦P ¡C
+°£  «D ¨Ï ¥Î \fB\-o\fR °Ñ ¼Æ ¤£ µM ¸Ó ­È ¥² ¶· ¬O °ß ¤@ ¡A ¤£ ¥i ¬Û ¦P ¡C
 ¼Æ ­È ¤£ ¥i ¬° ­t ¡C
 ¹w ³] ¬° ³Ì ¤p  ¤£  ±o ¤p ©ó 500 ¦Ó ³v ¦¸ ¼W ¥[ ¡C 0~999 ¶Ç ²Î ¤W
 ¬O «O ¯d µ¹ \fI¨t²Î±b¸¹\fR ¨Ï ¥Î ¡C
-.IP \fB-r\fR
+.IP \fB\-r\fR
 ¦¹ °Ñ ¼Æ ¬O ¥Î ¨Ó «Ø ¥ß \fI¨t²Î±b¸¹\fR ¡C
 ªº  UID ·| ¤ñ ©w ¸q ¦b ¨t ²Î ÀÉ ¤W /etc/login.defs.
 ªº UID_MIN ¨Ó ªº ¤p ¡C ª` ·N useradd ¦¹ ¥Î ªk ©Ò «Ø
 ¥ß  ªº ±b ¸¹ ¤£ ·| «Ø ¥ß ¨Ï ¥Î ªÌ ¥Ø ¿ý ¡A ¤] ¤£ ·|
 ¦b ¥G ¬ö ¿ý ¦b /etc/login.defs. ªº ©w ¸q ­È  ¡C  ¦p
-ªG  §A ·Q ­n ¦³ ¨Ï ¥Î ªÌ ¥Ø ¿ý ¶· ÃB ¥~ «ü ©w -m °Ñ
+ªG  §A ·Q ­n ¦³ ¨Ï ¥Î ªÌ ¥Ø ¿ý ¶· ÃB ¥~ «ü ©w \-m °Ñ
 ¼Æ ¨Ó «Ø ¥ß ¨t ²Î ±b ¸¹ ¡C ³o ¬O RED HAT ÃB  ¥~  ¼W
 ³] ªº ¿ï ¶µ ¡C
 ¥¦ ·| ¦Û °Ê À° §A ¿ï ©w ¤@ ­Ó ¤p ©ó 999 ªº \fIgif\fR
-¤£ »Ý ­n ¦A ¥[ ¤W \fB-g\fR °Ñ ¼Æ ¡C
+¤£ »Ý ­n ¦A ¥[ ¤W \fB\-g\fR °Ñ ¼Æ ¡C
 .br
 ³o ¬O RED HAT ÃB  ¥~  ¼W ³] ªº ¿ï ¶µ ¡C
 
index a614e850dca6b9d0becb221c0c858d0b89b2cdd3..7c6972da4955cfaa501de318afb23011fb19c1fe 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: groupdel.8,v 1.3 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991 - 1993, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
@@ -24,9 +25,6 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupdel.8,v 1.2 2003/04/26 13:24:16 kloczek Exp $
-.\"
 .TH GROUPDEL 8
 .SH ¦WºÙ
 groupdel \- §R°£¸s²Õ
index 1d2fb871a607848b3e115d10063ab5dbba339e93..1805613c190daab2f6cdcbda72c84f9847d08765 100644 (file)
@@ -1,3 +1,4 @@
+.\" $Id: groupmod.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
 .\" Copyright 1991, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: groupmod.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH GROUPMOD 8
 .SH ¦WºÙ
 groupmod \- ­× §ï ¸s ²Õ
 .SH »yªk
-.B groupmod
-[\fB-g\fI gid \fR[\fB-o\fR]]
-[\fB-n\fI group_name \fR]
-.I group
+\fBgroupmod\fR [\fB\-g\fR \fIgid \fR[\fB\-o\fR]] [\fB\-n\fR \fIgroup_name \fR] \fIgroup\fR
 .SH ´y­z
 
 \fBgroupmod\fR ©R ¥O ·| °Ñ ·Ó §A ©R ¥O ¦C ¤W «ü ©w ªº ³¡ ¥÷ 
 ­× §ï ¨t ²Î ±b ¸¹ ÀÉ ¡C ¤U ¦C ¬° \fIgroupmod\fR ¥i ¿ï ¥Î ªº °Ñ ¼Æ ¡C
 
-.IP "\fB-g \fIgid\fR"
+.IP "\fB\-g\fR \fIgid\fR"
 ¸s ²Õ I D ­È ¡C
-¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î -o ¿ï ¶µ ¡C
+¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î \-o ¿ï ¶µ ¡C
 ¼Æ ¦r ¤£ ¥i ¬° ­t ­È¡C¹w ³] ¬° ³Ì
 ¤p ¤£ ±o ¤p ©ó 999 ¦Ó ³v ¦¸ ¼W ¥[ ¡C 0~ 499 ¶Ç ²Î ¤W
 ¬O «O ¯d µ¹ ¨t ²Î ±b ¸¹ ¨Ï ¥Î ¡C
 ¦p ªG ¦³ ÀÉ ®× ¨Ï ¥Î Â ªº ¸s ²Õ ID ¡A ¦Ó ³o ®É ­Ô §A ·s ¼W ªº ¸s ²Õ ID
 «ê ¦n »P Â ªº ¬Û ¦P ¡A ³o ¼Ë ªº ¸Ü
 §A ­n ¤â °Ê §ï ¤@ ¤U ³o ¨Ç ÀÉ ®× ªº ¸s ²Õ ID ¡C
-.IP "\fB-n \fIgroup_name\fR"
+.IP "\fB\-n\fR \fIgroup_name\fR"
 §ó §ï ¸s ²Õ ¦W ¡C
 .SH ÀÉ®×
 \fI/etc/group\fR \- ¸s ²Õ ¸ê °T 
index 039fa93261b48f3c693d674115e2a8990b1d67d9..81eac57142ada66df4653d2282eaea7b2fe6cedd 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" $Id: useradd.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: useradd.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH USERADD 8
 .SH ¦W ºÙ
 useradd \- ±b ¸¹ «Ø ¥ß ©Î §ó ·s ·s ¨Ï ¥Î ªÌ ªº ¸ê °T
 .SH »y ªk
 .TP 8
 .B useradd
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR comment ]
-.RB [ -d
+.RB [ \-d
 .IR home_dir ]
 .br
-.RB [ -e
+.RB [ \-e
 .IR expire_date ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR initial_group ]
-.RB [ -G
+.RB [ \-G
 .IR group [,...]]
 .br
-.RB [ -m " [" -k
-.IR skeleton_dir ] " |" " " -M ]
-.RB [ -s
+.RB [ \-m " [" \-k
+.IR skeleton_dir ] " |" " " \-M ]
+.RB [ \-s
 .IR shell ]
 .br
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
-.RB [ -n ]
-.RB [ -r ]
+.BR \-o ]]
+.RB [ \-n ]
+.RB [ \-r ]
 .I login
 .TP 8
-.B useradd
-\fB-D\fR
-[\fB-g\fI default_group\fR]
-[\fB-b\fI default_home\fR]
+\fBuseradd\fR \fB\-D\fR [\fB\-g\fR \fIdefault_group\fR] [\fB\-b\fR \fIdefault_home\fR]
 .br
-[\fB-f\fI default_inactive\fR]
-[\fB-e\fI default_expire_date\fR]
+[\fB\-f\fR \fIdefault_inactive\fR] [\fB\-e\fR \fIdefault_expire_date\fR]
 .br
-[\fB-s\fI default_shell\fR]
+[\fB\-s\fR \fIdefault_shell\fR]
 .SH ´y ­z
 .SS ·s ±b ¸¹ «Ø ¥ß
-·í ¤£ ¥[ \fB-D\fR °Ñ ¼Æ , \fBuseradd\fR «ü ¥O ¨Ï ¥Î ©R ¥O ¦C ¨Ó «ü ©w
+·í ¤£ ¥[ \fB\-D\fR °Ñ ¼Æ , \fBuseradd\fR «ü ¥O ¨Ï ¥Î ©R ¥O ¦C ¨Ó «ü ©w
 ·s ±b ¸¹ ªº ³] ©w ­È and ¨Ï ¥Î ¨t ²Î ¤W ªº ¹w ³] ­È .
 ·s ¨Ï ¥Î ªÌ ±b ¸¹ ±N ²£ ¥Í ¤@ ¨Ç ¨t ²Î ÀÉ ®× ¡A ¨Ï ¥Î ªÌ ¥Ø ¿ý «Ø ¥ß ¡A
 «þ ³Æ °_ ©l ÀÉ ®× µ¥
 ¡A ³o ¨Ç §¡ ¥i ¥H §Q ¥Î ©R ¥O¦C ¿ï ¶µ «ü ©w ¡C ¦¹ ª© ¥» ¬° Red Hat Linux ´£ ¨Ñ
-¡A ¥i À° ¨C ­Ó ·s ¥[ ¤J ªº ¨Ï ¥Î ªÌ «Ø ¥ß ­Ó §O ªº group , ¤ð ¶· ²K ¥[ \fB-n\fR
+¡A ¥i À° ¨C ­Ó ·s ¥[ ¤J ªº ¨Ï ¥Î ªÌ «Ø ¥ß ­Ó §O ªº group , ¤ð ¶· ²K ¥[ \fB\-n\fR
 ¿ï ¶µ ¡C  
 \fBuseradd\fR ¥i ¨Ï ¥Î ªº ¿ï ¶µ ¬°
-.\" .IP "\fB-A {\fImethod\fR|\fBDEFAULT\fR},..."
-.\" The value of the user's authentication method.
-.\" The authentication method is the name of a program which is responsible
-.\" for validating the user's identity.
-.\" The string \fBDEFAULT\fR may be used to change the user's authentication
-.\" method to the standard system password method.
-.\" This is a comma-separated list of program names.
-.\" It may include \fBDEFAULT\fR exactly once.
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 ·s ±b ¸¹ password ÀÉ ªº »¡ ©ú Äæ ¡C 
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 ·s ±b ¸¹ ¨C ¦¸ µn ¤J ®É ©Ò ¨Ï ¥Î ªº \fIhome_dir\fR ¡C 
 ¹w ³] ­È ¬° \fIdefault_home\fR ¤º \fIlogin\fR ¦W ºÙ ¡A ¨Ã ·í ¦¨ µn ¤J ®É ¥Ø ¿ý 
 ¦W ºÙ ¡C
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ±b ¸¹ ²× ¤î ¤é ´Á ¡C ¤é ´Á ªº «ü ©w ®æ ¦¡ ¬° \fIMM/DD/YY\fR ¡C
-.IP "\fB-f \fIinactive_days\fR"
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ±b ¸¹ ¹L ´Á ´X ¤é «á ¥Ã ¤[ °± Åv ¡C
 ·í ­È ¬° 0 ®É ±b ¸¹ «h ¥ß ¨è ³Q °± Åv ¡C
-¦Ó ·í ­È ¬° -1 ®É «h Ãö ³¬ ¦¹ ¥\\ ¯à ¡A ¹w ³] ­È ¬° -1
-.IP "\fB-g \fIinitial_group\fR"
+¦Ó ·í ­È ¬° \-1 ®É «h Ãö ³¬ ¦¹ ¥\\ ¯à ¡A ¹w ³] ­È ¬° \-1
+.IP "\fB\-g\fR \fIinitial_group\fR"
 group ¦W ºÙ ©Î ¥H ¼Æ ¦r ¨Ó °µ ¬° ¨Ï ¥Î ªÌ µn ¤J °_ ©l ¸s ²Õ (group) ¡C
 ¸s ²Õ ¦W ¶· ¬° ²{ ¦³ ¦s ¦b ªº ¦W ºÙ ¡C
 ¸s ²Õ ¼Æ ¦r ¤] ¶· ¬° ²{ ¦³ ¦s ¦b ªº ¸s ²Õ ¡C
 ¹w ³] ªº ¸s ²Õ ¼Æ ¦r ¬° 1 ¡C
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ©w ¸q ¦¹ ¨Ï ¥Î ªÌ ¬° ¦¹ ¤@ °ï groups ªº ¦¨ ­û ¡C
 ¨C ­Ó ¸s ²Õ ¨Ï ¥Î "," °Ï ®æ ¶} ¨Ó ¡A ¤£ ¥i ¥H §¨ Âø ªÅ ¥Õ ¦r ¤¸ ¡C
- ¸s ²Õ ¦W ¦P \fB-g\fR ¿ï ¶µ ªº ­­ ¨î ¡C
+ ¸s ²Õ ¦W ¦P \fB\-g\fR ¿ï ¶µ ªº ­­ ¨î ¡C
 ©w ¸q ­È ¬° ¨Ï¥Î ªÌ ªº °_ ©l ¸s ²Õ ¡C
-.IP \fB-m\fR
+.IP \fB\-m\fR
 ¨Ï ¥Î ªÌ ¥Ø ¿ý ¦p ¤£ ¦s ¦b «h ¦Û °Ê «Ø ¥ß ¡C
-¦p ¨Ï ¥Î \fB-k\fR ¿ï ¶µ \fIskeleton_dir\fR ¤º ªº ÀÉ ®× ±N ½Æ »s ¦Ü ¨Ï ¥Î ªÌ ¥Ø 
+¦p ¨Ï ¥Î \fB\-k\fR ¿ï ¶µ \fIskeleton_dir\fR ¤º ªº ÀÉ ®× ±N ½Æ »s ¦Ü ¨Ï ¥Î ªÌ ¥Ø 
 ¿ý ¤U ¡C
 µM ¦Ó ¦b \fI/etc/skel\fR ¥Ø ¿ý ¤U ªº ÀÉ ®× ¤] ·| ½Æ »s ¹L ¥h ¨ú ¥N ¡C
 ¥ô ¦ó ¦b \fIskeleton_dir\fR or \fI/etc/skel\fR ªº ¥Ø ¿ý ¤] ¬Û ¦P ·| ¦b ¨Ï ¥Î ªÌ
 ¥Ø ¿ý ¤U ¤@ ¤@ «Ø ¥ß ¡C
-The \fB-k\fR ¦P \fB-m\fR
+The \fB\-k\fR ¦P \fB\-m\fR
 ¤£ «Ø ¥ß ¥Ø ¿ý ¥H ¤Î ¤£ ½Æ »s ¥ô ¦ó ÀÉ ®× ¬° ¹w ³] ­È ¡C
-.IP \fB-M\fR
+.IP \fB\-M\fR
 ¤£ «Ø ¥ß ¨Ï ¥Î ªÌ ¥Ø ¿ý ¡A §Y ¨Ï \fI/etc/login.defs\fR ¨t ²Î ÀÉ ³] ©w ­n «Ø 
 ¥ß ¨Ï ¥Î ªÌ ¥Ø ¿ý ¡C
-.IP \fB-n\fR
+.IP \fB\-n\fR
 ¹w ³] ­È ¨Ï ¥Î ªÌ ¸s ²Õ »P ¨Ï ¥Î ªÌ ¦W ºÙ ·| ¬Û ¦P ¡C ¦¹ ¿ï ¶µ ±N ¨ú ®ø ¦¹ ¹w 
 ³] ­È ¡C
-.IP \fB-r\fR
+.IP \fB\-r\fR
 ¦¹ °Ñ ¼Æ ¬O ¥Î ¨Ó «Ø ¥ß ¨t ²Î ±b ¸¹ ¡C ¨t ²Î ±b ¸¹ ªº UID ·| ¤ñ ©w ¸q ¦b ¨t
 ²Î ÀÉ ¤W \fI/etc/login.defs\fR.
 ªº UID_MIN ¨Ó ªº ¤p ¡C ª` ·N \fBuseradd\fR ¦¹ ¥Î ªk ©Ò «Ø ¥ß ªº ±b ¸¹ ¤£ ·|
 «Ø ¥ß ¨Ï ¥Î ªÌ ¥Ø ¿ý
 ¡A ¤] ¤£ ·| ¦b ¥G ¬ö ¿ý ¦b \fI/etc/login.defs\fR. ªº ©w ¸q ­È ¡C
-¦p ªG §A ·Q ­n ¦³ ¨Ï ¥Î ªÌ ¥Ø ¿ý ¶· ÃB ¥~ «ü ©w \fB-m\fR °Ñ ¼Æ ¨Ó «Ø ¥ß ¨t 
+¦p ªG §A ·Q ­n ¦³ ¨Ï ¥Î ªÌ ¥Ø ¿ý ¶· ÃB ¥~ «ü ©w \fB\-m\fR °Ñ ¼Æ ¨Ó «Ø ¥ß ¨t 
 ²Î ±b ¸¹ ¡C
 ³o ¬O RED HAT ÃB ¥~ ¼W ³] ªº ¿ï ¶µ ¡C
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 ¨Ï ¥Î ªÌ µn ¤J «á ¨Ï ¥Î ªº shell ¦W ºÙ ¡C
 ¹w ³] ¬° ¤£ ¶ñ ¼g ¡A ³o ¼Ë ¨t ²Î ·| À° §A «ü ©w ¹w ³] ªº µn ¤J shell ¡C
-.IP "\fB-u \fIuid\fR"
-¨Ï ¥Î ªÌ ªº ID ­È ¡C ¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î \fI-o\fR ¿ï ¶µ ¡C
+.IP "\fB\-u\fR \fIuid\fR"
+¨Ï ¥Î ªÌ ªº ID ­È ¡C ¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î \fI\-o\fR ¿ï ¶µ ¡C
 ¼Æ ¦r ¤£ ¥i ¬° ­t ­È¡C¹w ³] ¬° ³Ì ¤p ¤£ ±o ¤p ©ó 999 ¦Ó ³v ¦¸ ¼W ¥[ ¡C
 0~ 999 ¶Ç ²Î ¤W ¬O «O ¯d µ¹ ¨t ²Î ±b ¸¹ ¨Ï ¥Î ¡C
 
 .SS §ï ÅÜ ¹w ³] ­È
-·í \fB-D\fR ¿ï ¶µ ¥X ²{ ®É ¡A \fBuseradd\fR ¨q ¥X ²{ ¦b ªº ¹w ³] ­È ¡A ©Î ¬O ÂÇ 
+·í \fB\-D\fR ¿ï ¶µ ¥X ²{ ®É ¡A \fBuseradd\fR ¨q ¥X ²{ ¦b ªº ¹w ³] ­È ¡A ©Î ¬O ÂÇ 
 ¥Ñ
 ©R ¥O ¦C ªº ¤è ¦¡ §ó ·s ¹w ³] ­È ¡C
 ¥i ¥Î ¿ï ¶µ ¬° ¡G
-.IP "\fB-b \fIdefault_home\fR"
+.IP "\fB\-b\fR \fIdefault_home\fR"
 ©w ¸q ¨Ï ¥Î ªÌ ©Ò ÄÝ ¥Ø ¿ý ªº «e ¤@ ­Ó ¥Ø ¿ý ¡C
 ¨Ï ¥Î ªÌ ¦W ºÙ ·| ªþ ¥[ ¦b \fIdefault_home\fR «á ­±
 ¥Î ¨Ó «Ø ¥ß ·s ¨Ï ¥Î ªÌ ªº ¥Ø ¿ý ¡C
-·í µM ¨Ï ¥Î \fB-d\fI «á «h ¦¹ ¿ï ¶µ µL ®Ä ¡C
-.IP "\fB-e \fIdefault_expire_date\fR"
+·í µM ¨Ï ¥Î \fB\-d\fI «á «h ¦¹ ¿ï ¶µ µL ®Ä ¡C
+.IP "\fB\-e\fR \fIdefault_expire_date\fR"
 ¨Ï ¥Î ªÌ ±b ¸¹ °± ¤î ¤é ´Á ¡C
-.IP "\fB-f \fIdefault_inactive\fR"
+.IP "\fB\-f\fR \fIdefault_inactive\fR"
 ±b ¸¹ ¹L ´Á ´X ¤é «á °± Åv ¡C
-.IP "\fB-g \fIdefault_group\fR"
+.IP "\fB\-g\fR \fIdefault_group\fR"
 ·s ±b ¸¹ °_ ©l ¸s ²Õ ¦W ©Î ID ¡C
 ¸s ²Õ ¦W ¶· ¬° ²{ ¦³ ¦s ¦b ªº ¦W ºÙ ¡C
 ¸s ²Õ I D ¤] ¶· ¬° ²{ ¦³ ¦s ¦b ªº ¸s ²Õ ¡C
-.IP "\fB-s \fIdefault_shell\fR"
+.IP "\fB\-s\fR \fIdefault_shell\fR"
 ¨Ï ¥Î ªÌ µn ¤J «á ¨Ï ¥Î ªº shell ¦W ºÙ ¡C
 ©¹ «á ·s ¥[ ¤J ªº ±b ¸¹ ³£ ±N ¨Ï ¥Î ¦¹ shell.
 .PP
index 23421880b2286b16fe044fd6aa2b468f3e5039fc..afed4ce00cf4e63d1984d0ee4c898ca71f1d056a 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" $Id: userdel.8,v 1.3 2005/04/05 19:08:57 kloczek Exp $
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: userdel.8,v 1.2 2003/04/26 13:24:16 kloczek Exp $
-.\"
 .TH USERDEL 8
 .SH ¦WºÙ
 userdel \- §R °£ ¨Ï ¥Î ªÌ ±b ¸¹ ¤Î ¬Û Ãö ÀÉ ®×
 .SH »yªk
 .B userdel
-[\fB-r\fR]
+[\fB\-r\fR]
 .I login
 .SH ´y­z
 \fBuserdel\fR ©R ¥O ­× §ï ¨t ²Î ±b ¸¹ ÀÉ
 §R °£ ©Ò ¦³ \fIlogin\fR ·| °Ñ ¦Ò ªº ³¡ ¥÷ ¡C
 ¨Ï ¥Î ªÌ ¦W ºÙ ¥² ¶·¬O ¦s ¦b ªº ¡C
-.IP \fB-r\fR
+.IP \fB\-r\fR
 ¨Ï ¥Î ªÌ ¥Ø ¿ý ¤U ªº ÀÉ ®× ¤@ ¨Ã ²¾ °£ ¡C ¦b ¨ä ¥L ¦ì ¸m ¤W ªº ÀÉ
 ®× ¤] ±N ¤@ ¤@ §ä ¥X ¨Ã §R °£ ¡C
 .SH ÀÉ®×
index f1cc719ab4edbb30d494f0de078d9e8743f410f9..f4a70849fd5e0e682cdb3414b47e6c9208f8f628 100644 (file)
@@ -1,4 +1,5 @@
-.\" Copyright 1991 - 1994, Julianne Frances Haugh
+.\" $Id: usermod.8,v 1.6 2005/04/05 19:08:57 kloczek Exp $
+.\" Copyright 1991 \- 1994, Julianne Frances Haugh
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\"
-.\"    $Id: usermod.8,v 1.4 2004/11/04 03:06:33 kloczek Exp $
-.\"
 .TH USERMOD 8
 .SH ¦WºÙ
 usermod \- ­× §ï ¨Ï ¥Î ªÌ ±b ¸¹
 .SH »yªk
 .TP 8
 .B usermod
-.\" .RB [ -A
+.\" .RB [ \-A
 .\" .RI { method | \fBDEFAULT\fR "},... ]"
-.RB [ -c
+.RB [ \-c
 .IR comment ]
-.RB [ -d
+.RB [ \-d
 .IR home_dir " ["
-.BR -m ]]
+.BR \-m ]]
 .br
-.RB [ -e
+.RB [ \-e
 .IR expire_date ]
-.RB [ -f
+.RB [ \-f
 .IR inactive_time ]
 .br
-.RB [ -g
+.RB [ \-g
 .IR initial_group ]
-.RB [ -G
+.RB [ \-G
 .IR group [,...]]
 .br
-.RB [ -l
+.RB [ \-l
 .IR login_name ]
-.RB [ -s
+.RB [ \-s
 .IR shell ]
 .br
-.RB [ -u
+.RB [ \-u
 .IR uid " ["
-.BR -o ]]
+.BR \-o ]]
 .I login
 .SH ´y­z
 \fBusermod\fR ©R ¥O ·| °Ñ ·Ó §A ©R ¥O ¦C ¤W «ü ©w ªº ³¡ ¥÷ ­× §ï ¨t ²Î ±b 
 ¸¹ ÀÉ ¡C ¤U ¦C ¬° \fBusermod\fR ¥i ¿ï ¥Î ªº °Ñ ¼Æ ¡C
 
-.\" .IP "\fB-A \fImethod\fR|\fBDEFAULT\fR"
+.\" .IP "\fB\-A \fImethod\fR|\fBDEFAULT\fR"
 .\" The new value of the user's authentication method.
 .\" The authentication method is the name of a program which is responsible
 .\" for validating the user's identity.
 .\" The string \fBDEFAULT\fR may be used to change the user's authentication
 .\" method to the standard system password method.
-.IP "\fB-c \fIcomment\fR"
+.IP "\fB\-c\fR \fIcomment\fR"
 §ó ·s ¨Ï ¥Î ªÌ ±b ¸¹ password ÀÉ ¤¤ ªº ª` ¸Ñ Äæ
 ¡A ¤@ ¯ë ¬O ¨Ï ¥Î \fBchfn\fR(1) ¨Ó ­× §ï ¡C
-.IP "\fB-d \fIhome_dir\fR"
+.IP "\fB\-d\fR \fIhome_dir\fR"
 §ó ·s ¨Ï ¥Î ªÌ ·s ªº µn ¤J ¥Ø ¿ý ¡C
-¦p ªG µ¹ ©w \fB-m\fR ¿ï ¶µ ¡A ¨Ï ¥Î ªÌ Â ¥Ø ¿ý ·| ·h ¨ì ·s ªº ¥Ø ¿ý ¥h 
+¦p ªG µ¹ ©w \fB\-m\fR ¿ï ¶µ ¡A ¨Ï ¥Î ªÌ Â ¥Ø ¿ý ·| ·h ¨ì ·s ªº ¥Ø ¿ý ¥h 
 ¡A¦p Â ¥Ø ¿ý ¤£ ¦s ¦b «h «Ø ­Ó ·s ªº ¡C
-.IP "\fB-e \fIexpire_date\fR"
+.IP "\fB\-e\fR \fIexpire_date\fR"
 ¥[ ¤W ¨Ï ¥Î ªÌ ±b ¸¹ °± ¤î ¤é ´Á ¡C ¤é ´Á ®æ ¦¡ ¬° \fIMM/DD/YY\fR.
-.IP "\fB-f \fIinactive_days\fR"
+.IP "\fB\-f\fR \fIinactive_days\fR"
 ±b ¸¹ ¹L ´Á ´X ¤é «á ¥Ã ¤[ °± Åv¡C·í ­È ¬°  0  ®É
-±b  ¸¹ «h ¥ß ¨è ³Q °± Åv ¡C ¦Ó ·í ­È ¬° -1 ®É «h Ãö³¬¦¹¥\\¯à
-¡C¹w ³] ­È ¬° -1¡C
-.IP "\fB-g \fIinitial_group\fR"
+±b  ¸¹ «h ¥ß ¨è ³Q °± Åv ¡C ¦Ó ·í ­È ¬° \-1 ®É «h Ãö³¬¦¹¥\\¯à
+¡C¹w ³] ­È ¬° \-1¡C
+.IP "\fB\-g\fR \fIinitial_group\fR"
 §ó ·s ¨Ï ¥Î ªÌ ·s ªº °_ ©l µn ¤J ¸s ²Õ ¡C ¸s ²Õ ¦W ¶· ¤w ¦s ¦b 
 ¡C¸s ²Õ ID ¥² ¶· °Ñ ·Ó ¬J ¦³ ªº ªº ¸s ²Õ ¡C ¸s ²Õ ID ¹w ³] ­È ¬° 1 ¡C
-.IP "\fB-G \fIgroup,[...]\fR"
+.IP "\fB\-G\fR \fIgroup,[...]\fR"
 ©w ¸q ¨Ï ¥Î ªÌ ¬°  ¤@ °ï groups ªº ¦¨ ­û ¡C ¨C
 ­Ó ¸s ²Õ ¨Ï ¥Î "," °Ï ®æ ¶} ¨Ó ¡A ¤£ ¥i ¥H §¨ Âø ªÅ
-¥Õ ¦r ¤¸ ¡C ¸s ²Õ ¦W ¦P -g ¿ï ¶µ ªº ­­ ¨î ¡C
+¥Õ ¦r ¤¸ ¡C ¸s ²Õ ¦W ¦P \-g ¿ï ¶µ ªº ­­ ¨î ¡C
 ¦p ªG ¨Ï ¥Î ªÌ ²{ ¦b ªº ¸s ²Õ ¤£ ¦A ¦¹ ¦C ¡A «h ±N ¨Ï ¥Î ªÌ ¥Ñ ¸Ó 
 ¸s ²Õ ¤¤ ²¾ °£ ¡C
-.IP "\fB-l \fIlogin_name\fR"
+.IP "\fB\-l\fR \fIlogin_name\fR"
 ÅÜ §ó ¨Ï ¥Î ªÌ \fIlogin\fR ®É ªº ¦W ºÙ ¬° \fIlogin_name\fR ¡C
 ¨ä ©ó ¤£ ÅÜ ¡C ¯S §O ¬O ¡A ¨Ï ¥Î ªÌ ¥Ø ¿ý ¦W À³ ¸Ó ¤] ·| ¸ò µÛ §ó °Ê ¦¨ ·s 
 ªº µn ¤J ¦W ¡C
-.IP "\fB-s \fIshell\fR"
+.IP "\fB\-s\fR \fIshell\fR"
 «ü ©w ·s µn ¤J shell ¡C ¦p ¦¹ Äæ ¯d ¥Õ ¡A ¨t ²Î ±N ¿ï ¥Î ¨t ²Î ¹w ³] shell ¡C
-.IP "\fB-u \fIuid\fR"
-¨Ï ¥Î ªÌ ID ­È ¡C¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î \fI-o\fR ¿ï ¶µ ¡C ¼Æ 
+.IP "\fB\-u\fR \fIuid\fR"
+¨Ï ¥Î ªÌ ID ­È ¡C¥² ¶· ¬° °ß ¤@ ªº ID ­È ¡A °£ «D ¥Î \fI\-o\fR ¿ï ¶µ ¡C ¼Æ 
 ¦r ¤£ ¥i ¬° ­t ­È¡C¹w ³] ¬° ³Ì ¤p  ¤£  ±o ¤p ©ó 999 ¦Ó ³v ¦¸ 
 ¼W ¥[ ¡C 0~ 999 ¶Ç ²Î ¤W ¬O «O ¯d µ¹ ¨t ²Î ±b ¸¹ ¨Ï ¥Î ¡C
 ¨Ï ¥Î ªÌ ¥Ø ¿ý ¾ð ¤U ©Ò ¦³ ªº ÀÉ ®× ¥Ø ¿ý ¨ä user ID ·| ¦Û °Ê §ï ÅÜ ¡C
index 91ebdde828fb14d9d28f070340c4cb0119a2f85d..54e3d8bb892a22fcfd406c321b3cfc4a038d06ee 100644 (file)
@@ -24,6 +24,7 @@ ru
 sk
 sq
 sv
+tl
 tr
 uk
 zh_CN
index a00d06339b4b0900099392580f4ddea7f818c6ef..fbebdfee37adbd439618a4631d28e657e5337e88 100644 (file)
@@ -18,9 +18,6 @@ libmisc/isexpired.c
 libmisc/limits.c
 libmisc/list.c
 libmisc/log.c
-libmisc/login_access.c
-libmisc/login_desrpc.c
-libmisc/login_krb.c
 libmisc/loginprompt.c
 libmisc/mail.c
 libmisc/motd.c
@@ -49,25 +46,20 @@ lib/encrypt.c
 lib/fputsx.c
 lib/getdef.c
 lib/getpass.c
-lib/grdbm.c
 lib/groupio.c
 lib/grpack.c
-lib/gsdbm.c
 lib/gshadow.c
 lib/gspack.c
 lib/lockpw.c
 lib/port.c
 lib/pwauth.c
-lib/pwdbm.c
 lib/pwio.c
 lib/pwpack.c
-lib/rad64.c
 lib/sgetgrent.c
 lib/sgetpwent.c
 lib/sgroupio.c
 lib/shadow.c
 lib/shadowio.c
-lib/spdbm.c
 lib/sppack.c
 lib/utent.c
 src/chage.c
@@ -87,6 +79,7 @@ src/grpunconv.c
 src/id.c
 src/lastlog.c
 src/login.c
+src/login_nopam.c
 src/logoutd.c
 src/mkpasswd.c
 src/newgrp.c
index 784cae68ad33f7b671e265e5cca8bce52f780255..67c3a55be10cbbeca3df7d8b3345ad6a43eee898 100644 (file)
Binary files a/po/bs.gmo and b/po/bs.gmo differ
index 5bad04b74c618ffd30468dc9d24ee3337647f007..9905220a2004b5c10b561f08ad3138f051dcfb01 100644 (file)
--- a/po/bs.po
+++ b/po/bs.po
@@ -6,20 +6,22 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-05-09 12:03+0100\n"
 "Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
 "Language-Team: Bosnian <lokal@lugbih.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr ""
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr ""
@@ -47,17 +49,17 @@ msgstr ""
 msgid "  Choose a new password.\n"
 msgstr "  Izaberite novu šifru.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Vaša šifra ističe za in %ld dana.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Vaša šifra ističe sutra.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Vaša šifra ističe danas.\n"
@@ -72,39 +74,27 @@ msgstr ""
 msgid "Environment overflow\n"
 msgstr ""
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr ""
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Previše prijavljivanja.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr ""
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Imate novu poštu."
@@ -117,7 +107,7 @@ msgstr "Nema pošte."
 msgid "You have mail."
 msgstr "Imate poštu."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Neispravna šifra: %s.  "
@@ -132,20 +122,20 @@ msgstr ""
 msgid "passwd: %s\n"
 msgstr ""
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr ""
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr ""
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr ""
@@ -160,189 +150,178 @@ msgstr ""
 msgid "Can't change root directory to \"%s\"\n"
 msgstr ""
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr ""
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr ""
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Šifra:"
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s's Šifra: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "             [-I inactive] [-E expire] [-d last_day] user\n"
 msgstr ""
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimalna trajnost šifre"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maskimalna trajnost šifre"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr ""
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Upozorenje o isteku šifre"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Šifra neaktivna"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Datum isteka računa (GGGG-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Nikad\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Šifra:"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Šifra neaktivna"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr ""
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr ""
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr ""
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr ""
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr ""
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr ""
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr ""
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr ""
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr ""
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr ""
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr ""
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr ""
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr ""
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr ""
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr ""
@@ -359,117 +338,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Puno ime i prezime"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr ""
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Broj sobe"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Poslovni telefon"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Kućni telefon"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Ostalo"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr ""
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr ""
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr ""
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr ""
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr ""
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr ""
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr ""
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr ""
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr ""
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr ""
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr ""
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr ""
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr ""
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -486,48 +470,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr ""
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr ""
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr ""
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr ""
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr ""
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr ""
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr ""
@@ -537,26 +521,26 @@ msgstr ""
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr ""
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr ""
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr ""
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr ""
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr ""
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr ""
@@ -566,12 +550,12 @@ msgstr ""
 msgid "Usage: expiry {-f|-c}\n"
 msgstr ""
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr ""
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr ""
@@ -585,320 +569,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr ""
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
+msgid "Login       Failures Maximum Latest                   On\n"
 msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr ""
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr ""
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Nepoznat korisnik: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr ""
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr ""
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr ""
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "nepoznata grupa: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Dodajem korisnika %s grupi %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Uklanjam korisnika %s iz grupe %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: nepoznat član %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr ""
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Mijenjam šifru za grupu %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nova šifra:"
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Ponovo unesite novu šifru:"
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "One se ne slažu; pokušajte ponovo"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Pokušajte ponovo kasnije\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr ""
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr ""
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr ""
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr ""
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr ""
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr ""
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr ""
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr ""
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr ""
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr ""
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr ""
 
-#: 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr ""
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr ""
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr ""
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr ""
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr ""
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr ""
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr ""
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr ""
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr ""
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grupa %s postoji\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr ""
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr ""
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr ""
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr ""
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr ""
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr ""
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr ""
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr ""
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr ""
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr ""
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr ""
@@ -908,110 +857,105 @@ msgstr ""
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr ""
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr ""
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr ""
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr ""
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr ""
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr ""
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr ""
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr ""
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr ""
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr ""
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr ""
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr ""
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr ""
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr ""
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr ""
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
+msgid "%s: the files have been updated\n"
 msgstr ""
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr ""
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr ""
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1027,37 +971,37 @@ msgstr ""
 msgid "%s: can't lock shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr ""
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr ""
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr ""
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr ""
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr ""
@@ -1077,121 +1021,112 @@ msgstr ""
 msgid " groups="
 msgstr ""
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr ""
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr ""
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr ""
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr ""
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr ""
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr ""
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr ""
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
 "System closed for routine maintenance\n"
 msgstr ""
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr ""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr ""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 
-#: src/login.c:819
-msgid "login: "
-msgstr ""
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr ""
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr ""
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr ""
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr ""
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr ""
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1232,17 +1167,17 @@ msgstr ""
 msgid "added %d entries, longest was %d\n"
 msgstr ""
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr ""
@@ -1262,16 +1197,16 @@ msgstr ""
 msgid "unknown uid: %u\n"
 msgstr ""
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr ""
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr ""
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr ""
@@ -1281,107 +1216,107 @@ msgstr ""
 msgid "Usage: %s [input]\n"
 msgstr ""
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr ""
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr ""
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr ""
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr ""
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr ""
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr ""
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr ""
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr ""
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr ""
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr ""
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr ""
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr ""
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr ""
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Stara šifra:"
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr ""
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nova šifra:"
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Pokušajte ponovo.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1390,52 +1325,52 @@ msgstr ""
 "\n"
 "Upozorenje: slaba šifra (unesite je ponovo ako je ipak želite koristiti).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "One se ne slažu; pokušajte ponovo\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr ""
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr ""
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr ""
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr ""
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr ""
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Mijenjam šifru za grupu %s\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr ""
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr ""
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr ""
@@ -1450,49 +1385,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr ""
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr ""
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr ""
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr ""
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr ""
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr ""
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr ""
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr ""
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1512,17 +1447,17 @@ msgstr ""
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr ""
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr ""
@@ -1532,62 +1467,62 @@ msgstr ""
 msgid "%s: can't update entry for user %s\n"
 msgstr ""
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr ""
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Žalim."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr ""
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr ""
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr ""
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr ""
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr ""
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
 "(Ignored)\n"
 msgstr ""
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr ""
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr ""
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr ""
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr ""
@@ -1602,464 +1537,409 @@ msgstr ""
 msgid "No password entry for 'root'\n"
 msgstr ""
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr ""
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr ""
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr ""
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr ""
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr ""
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr ""
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr ""
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr ""
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr ""
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr ""
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr ""
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr ""
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr ""
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr ""
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr ""
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr ""
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr ""
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr ""
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr ""
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr ""
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr ""
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr ""
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr ""
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr ""
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr ""
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ""
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr ""
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr ""
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr ""
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr ""
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr ""
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr ""
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr ""
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr ""
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr ""
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr ""
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr ""
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr ""
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr ""
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr ""
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr ""
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr ""
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr ""
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr ""
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr ""
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr ""
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr ""
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr ""
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr ""
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr ""
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
 "%s: %s is unchanged\n"
 msgstr ""
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr ""
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr ""
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 16eefdf476434926f36f95c21c51ab71ed13d6cc..465b1ad58ca2da352c92f7806c3c102378e5337e 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index 0cdb1f2233ccad8cdb4a6e76c299fc7a8ecf1223..7217b5ecf6c5bf221f098ea9021115bc29d09e98 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 4.0.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-06-16 20:58:19+0200\n"
 "Last-Translator: Guillem Jover <guillem@debian.org>\n"
 "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
 msgid "Warning: unknown group %s\n"
 msgstr "Avís: el grup %s és desconegut\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Avís: hi ha massa grups\n"
@@ -47,17 +47,17 @@ msgstr "  Contacteu amb l'administrador del sistema.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Escolliu una nova contrasenya.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "La vostra contrasenya caduca en %ld dies.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "La vostra contrasenya caduca demà.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "La vostra contrasenya caduca avui.\n"
@@ -72,42 +72,29 @@ msgstr "No es pot canviar la tty %s"
 msgid "Environment overflow\n"
 msgstr "Desbordament d'entorn\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "No podeu canviar $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"S'ha produït %d error des de l'últim accés.  L'ultim va ser %s en %s.\n"
+msgstr[1] ""
 "S'ha produït %d error des de l'últim accés.  L'ultim va ser %s en %s.\n"
 
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
-
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Massa accessos.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "La contrasenya no desxifra la clau secreta per a %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"No s'ha pogut establir la clau secreta de %s: està funcionant el dimoni "
-"«keyserv»?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Teniu correu nou."
@@ -120,7 +107,7 @@ msgstr "No hi ha correu."
 msgid "You have mail."
 msgstr "Teniu correu."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "La contrasenya és incorrecta: %s."
@@ -135,20 +122,20 @@ msgstr "passwd: pam_start() ha fallat, error %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "No es pot canviar el directori actual a «%s»\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "No hi ha directori, entrant amb HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "No es pot executar %s"
@@ -163,37 +150,33 @@ msgstr "El directori arrel «%s» no és vàlid\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "No s'ha pogut canviar el directori arrel a «%s»\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) ha fallat\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "No s'ha pogut reservar espai per a la informació de configuració.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "error de configuració - element «%s» desconegut (notifiqueu-ho a "
 "l'administrador)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Contrasenya: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Contrasenya de l'usuari %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Eco activat) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -202,154 +185,147 @@ msgstr ""
 "Forma d'ús: chage [-l] [-m mín_dies] [-M màx_dies] [-W avís]\n"
 "                   [-I inactiu] [-E caduca] [-d últim_dia] usuari\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Introduïu el nou valor, o premeu ENTER per al predeterminat\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Duració mínima de la contrasenya"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Duració màxima de la contrasenya"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Últim canvi de contrasenya (AAAA-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Avís de caducitat de la contrasenya"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Contrasenya inactiva"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data de caducitat per al compte (AAAA-MM-YY)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Últim canvi de contrasenya (AAAA-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Mai\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "La contrasenya caduca:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Contrasenya inactiva:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "El compte caduca:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: no inclogueu «l» amb altres senyaladors\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: permís denegat\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: l'autenticació PAM ha fallat\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: no es pot obrir el fitxer de contrasenyes\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: l'usuari %s desconegut\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: no es pot bloquejar el fitxer de contrasenyes ombra"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: no es pot obrir el fitxer de contrasenyes ombra"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "S'està canviant la informació de caducitat per a %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: s'ha produït un error en canviar els camps\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: no es pot actualitzar el fitxer de contrasenyes\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: no es pot actualitzar el fitxer de contrasenyes ombra\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Error actualitzant l'entrada de contrasenya DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: no es pot reescriure el fitxer de contrasenyes ombra\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: no es pot reescriure el fitxer de contrasenyes\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthok ha fallat\n"
@@ -370,118 +346,123 @@ msgstr ""
 "Forma d'ús: %s [-f nom_complet] [-r num_habitació] [-w tel_feina]\n"
 "[-h tel_casa]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nom complet"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNom complet: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Número d'habitació"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telèfon de la feina"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telèfon de casa"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Altre"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: No s'ha pogut determinar el seu nom d'usuari.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: no s'ha pogut canviar l'usuari «%s» al client NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: «%s» és el mestre NIS per a aquest client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: permís denegat\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "S'està canviant la informació d'usuari per a %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: el nom no és vàlid: «%s»\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: el número d'habitació no és vàlid: «%s»\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: el telèfon de casa no és vàlid: «%s»\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: el telèfon de la feina no és vàlid: «%s»\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: «%s» conté caràcters il·legals\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: els camps són massa llargs\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "No s'ha pogut canviar l'ID al de root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "No s'ha pogut bloquejar el fitxer de contrasenyes; intenteu-ho més tard\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "No s'ha pogut obrir el fitxer de contrasenyes.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: no s'ha trobat %s a «/etc/passwd»\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Error en actualitzar l'entrada de la contrasenya.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "No es poden confirmar els canvis del fitxer de contrasenyes.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "No s'ha pogut desbloquejar el fitxer de contrasenyes.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -498,49 +479,49 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: no es pot bloquejar el fitxer de contrasenyes\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: no s'ha pogut bloquejar el fitxer de contrasenyes ombra\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: no s'ha pogut obrir el fitxer de contrasenyes ombra\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: línia %d: la línia és massa llarga\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: línia %d: manca la nova contrasenya\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: línia %d: l'usuari %s és desconegut\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: línia %d: no s'ha pogut actualitzar l'entrada de la contrasenya\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: s'ha detectat un error, els canvis s'han ignorat\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr ""
 "%s: s'ha produït un error en actualitzar el fitxer de contrasenyes ombra\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: s'ha produït un error en actualitzar el fitxer de contrasenyes\n"
@@ -550,26 +531,26 @@ msgstr "%s: s'ha produït un error en actualitzar el fitxer de contrasenyes\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Forma d'ús: %s [-s intèrpret] [nom]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Intèrpret d'accés"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "No podeu canviar l'intèrpret per a %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "S'està canviant l'intèrpret d'accés per a %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: L'entrada no és vàlida: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s no és un intèrpret vàlid.\n"
@@ -579,12 +560,12 @@ msgstr "%s no és un intèrpret vàlid.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Forma d'ús: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: AVÍS!  Ha de ser set-UID de root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: l'usuari és desconegut\n"
@@ -598,320 +579,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Usuari     Fallides  Màxim    Últim\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s en %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [falten %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [bloquejats %lds]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "L'usuari és desconegut: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Forma d'ús: %s [-r|-R] grup\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a usuari] grup\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d usuari] grup\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A usuari,...] [-M usuari,...] grup\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M usuari,...] grup\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: contrasenyes ombra de grups requerides per a «-A»\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Qui sou?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "El grup és desconegut: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "S'està afegint l'usuari %s al grup %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "S'està eliminant l'usuari %s del grup %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: El membre %s és desconegut\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: No és una tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "S'està canviant la contrasenya per al grup %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nova contrasenya: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Reintroduïu la nova contrasenya: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "No coincideixen; intenteu-ho de nou."
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Intenteu-ho de nou més tard.\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: no es pot obtenir el bloqueig\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: no es pot obtenir el bloqueig del fitxer de contrasenyes ombra\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: no es pot obrir el fitxer\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: no es pot actualitzar l'entrada\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: no es pot actualitzar l'entrada del fixter de contrasenyes ombra\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: no es pot reescriure el fitxer\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: no es pot reescriure el fitxer ombra\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: no es pot desbloquejar el fitxer\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: no es poden actualitzar els fitxers DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: no es poden actualitzar els fitxers ombra DBM\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Forma d'ús: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: s'ha produït un error en afegir la nova entrada de grup\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: no es pot afegir una entrada nova de grup DBM\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: el nom %s no és únic\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: el GID %u no és únic\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: no es pot obtenir un GID únic\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s no és un nom de grup valid\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: el grup %s no és vàlid\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: «-O» requereix NOM=VALOR\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: no es pot reescriure el fitxer de grup\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: no es pot reescriure el fitxer de grups ombra\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: no es pot bloquejar el fitxer de grup\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: no es pot obrir el fitxer de grup\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: no es pot bloquejar el fitxer de grup ombra\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: no es pot obrir el fitxer de grup ombra\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: el grup %s existeix\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Forma d'ús: groupdel grup\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de grup\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: s'ha produït un error en eliminar l'entrada de grup DBM\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de grup ombra\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: s'ha produït un error en eliminar l'entrada de grup ombra DBM\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: no es pot eliminar el grup primari de l'usuari.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: el grup %s no existeix\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: el grup %s no és un grup NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s és el mestre NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Forma d'ús: groupmod [-g gid [-o]] [-n nom] grup\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: no s'ha trobat %s a «/etc/group»\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: no es pot afegir una nova entrada de grup ombra DBM\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u no és un GID únic\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s no és un nom únic\n"
@@ -921,110 +867,105 @@ msgstr "%s: %s no és un nom únic\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Forma d'ús: %s [-r] [-s] [grup [gombra]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Forma d'ús: %s [-r] [-s] [grup]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "No"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: «-s» i «-r» són incompatibles\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: no es pot bloquejar el fitxer %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: no es pot obrir el fitxer %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "l'entrada del fitxer de grup no és vàlida\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "voleu eliminar la línia «%s»? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "l'entrada de grup està duplicada\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "el nom de grup «%s» no és vàlid\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grup %s: no existeix l'usuari %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "voleu eliminar el membre «%s»? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "l'entrada del fitxer de grup ombra no és vàlida\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "l'entrada de grup ombra està duplicada\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "no hi ha entrades coincidents al fitxer de grup\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "grup ombra %s: no existeix l'usuari administratiu %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "voleu eliminar el membre administratiu «%s»? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grup ombra %s: no existeix l'usuari %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: no es pot actualitzar el fitxer %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: el fitxer s'ha actualitzat; executeu «mkpasswd»\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: el fitxer s'ha actualitzat\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: no hi ha canvis\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: el fitxer s'ha actualitzat\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1040,37 +981,37 @@ msgstr "%s: no es pot obrir el fitxer de grups\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: no es pot bloquejar el fitxer de grups ombra\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: no es pot obrir el fitxer de grups ombra\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: no es pot eliminar el grup ombra %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: no es pot actualitzar l'entrada ombra per a %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: no es pot actualitzar l'entrada per al grup %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: no es pot actualitzar el fitxer de grups ombra\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: no es pot actualitzar el fitxer de grups\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: no es pot eliminar el fitxer de grups ombra\n"
@@ -1090,52 +1031,52 @@ msgstr "Forma d'ús: id\n"
 msgid " groups="
 msgstr " grup="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Usuari           Port     Des de           Últim\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Usuari                  Port     Últim\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**No ha entrat mai**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, fuzzy, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Forma d'ús: %s [-p] [nom]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h ordinador] [-f nom]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r ordinador\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "El temps d'accés no és vàlid\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1144,7 +1085,7 @@ msgstr ""
 "\n"
 "Sistema tancat per a manteniment rutinari\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1153,7 +1094,7 @@ msgstr ""
 "\n"
 "[S'ha evitat la desconnexió -- l'accés de root està permés.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1162,17 +1103,17 @@ msgstr ""
 "\n"
 "L'accés ha caducat després de %d segons.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " a «%.100s» des de «%.200s»"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " a «%.100s»"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1181,38 +1122,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login incorrecte"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Avís: accés reactivat després d'un bloqueig temporal.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Última entrada: %s a %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Última entrada: %.19s a %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " des de %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "S'està iniciant «rad_login»\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1254,17 +1186,17 @@ msgstr "%s: s'ha produït un error en afegir el registre per a "
 msgid "added %d entries, longest was %d\n"
 msgstr "s'han afegit %d entrades, la més llarga era de %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Forma d'ús: %s [-vf] [-p|g|sp|sg] fitxer\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Forma d'ús: %s [-vf] [-p|g|sp] fitxer\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Forma d'ús: %s [-vf] [-p|g] fitxer\n"
@@ -1284,16 +1216,16 @@ msgstr "Forma d'ús: sg grup [[-c] ordre]\n"
 msgid "unknown uid: %u\n"
 msgstr "L'UID és desconegut: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "El gid és desconegut: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Disculpeu.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "hi ha massa grups\n"
@@ -1303,91 +1235,91 @@ msgstr "hi ha massa grups\n"
 msgid "Usage: %s [input]\n"
 msgstr "Forma d'ús: %s [entrada]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: no es pot bloquejar «/etc/passwd».\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: no es poden bloquejar els fitxers, intenteu-ho més tard\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: no es poden obrir els fitxers\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: línia %d: la línia no és vàlida\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: línia %d: no es pot crear el GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: línia %d: no es pot crear el UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: línia %d: no es pot trobar l'usuari %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: línia %d: no es pot actualitzar la contrasenya\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: línia %d: no s'ha pogut crear el directori\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: línia %d: no s'ha pogut canviar el propietari\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: línia %d: no es pot actualitzar l'entrada\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: s'ha produït un error en actualitzar el fitxer\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Forma d'ús: %s [-f|-s] [nom]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x màx] [-n mín] [-w avís] [-i inactiu] nom\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} nom\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Contrasenya antiga: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "La contrasenya és incorrecte per a «%s»\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1397,16 +1329,16 @@ msgstr ""
 "Si us plau feu servir una combinació de lletres majúscules i minúscules i\n"
 "números.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Contrasenya nova:"
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Intenteu-ho de nou.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1415,52 +1347,52 @@ msgstr ""
 "\n"
 "Avís: contrasenya feble (introduïu-la de nou per fer-la servir igualment).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "No coincideixen; intenteu-ho de nou.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "No es pot canviar la contrasenya per a %s.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Disculpeu, la contrasenya per a %s encara no es pot canviar.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: sense memòria\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: No es pot executar %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: el repositori %s no està suportat\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "No podeu canviar l'intèrpret per a %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "S'està canviant la contrasenya per a %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "No s'ha canviat la contrasenya per a %s.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "S'ha canviat la contrasenya.\n"
@@ -1475,49 +1407,49 @@ msgstr "Forma d'ús: %s [-q] [-r] [-s] [contrasenya [ombra]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Forma d'ús: %s [-q] [-r] [-s] [contrasenya]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "l'entrada del fitxer de contrasenyes no és vàlida\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "l'entrada de contrasenya està duplicada\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "el nom d'usuari «%s» no és vàlid\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "usuari %s: no existeix el grup %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "usuari %s: el directori %s no existeix\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "usuari %s: el programa %s no existeix\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "l'entrada del fitxer de contrasenyes ombra no és vàlida\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "entrada de contrasenya ombra duplicada\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "cap entrada del fitxer de contrasenyes coincideix\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "usuari %s: l'últim canvi de contrasenya s'ha produït en el futur\n"
@@ -1537,17 +1469,17 @@ msgstr "%s: no es pot obrir el fitxer de contrasenyes\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: no es pot eliminar l'entrada ombra per a %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: no es pot actualitzar l'entrada de la contrasenya per a %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: no es pot actualitzar el fitxer de contrasenyes ombra\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: no es pot actualitzar el fitxer de contrasenyes\n"
@@ -1557,40 +1489,40 @@ msgstr "%s: no es pot actualitzar el fitxer de contrasenyes\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: no es pot actualitzar l'entrada per a l'usuari %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: no es pot eliminar el fitxer de contrasenyes ombra\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Disculpeu."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: s'ha d'executar des d'una terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: s'ha produït un error %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "L'id és desconegut: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "No esteu autoritzats a usar «su %s»\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Introduïu la vostra pròpia contrasenya)."
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1599,22 +1531,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorat)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "No hi ha intèrpret\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "L'accés de «su» a aquest compte està DENEGAT.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "S'ha evitat l'autenticació de contrasenya.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr ""
@@ -1630,7 +1562,7 @@ msgstr "No hi ha fitxer de contrasenyes\n"
 msgid "No password entry for 'root'\n"
 msgstr "No hi ha entrada de contrasenya per a «root»\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1640,238 +1572,216 @@ msgstr ""
 "Pitjeu «control-d» per a continuar amb l'inici normal de sistema,\n"
 "(o introduïu la contrasenya de «root» per a manteniment del sistema):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "S'està entrant en mode de manteniment del sistema\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: reconstruïu la base de dades de grups\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: reconstruïu la base de dades de grups ombra\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: l'argument numèric «%s» no és vàlid\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: el GID %s és desconegut\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: el grup %s és desconegut\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: no es pot crear un fitxer nou de preferències predeterminades\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: no es pot obrir un fitxer nou de preferències predeterminades\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: renombra: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: el grup «%s» és un grup NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: s'han especificat massa grups (màx de %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Forma d'ús: useradd [-u uid [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                     [-d home] [-s intèrpret] [-c ordre] [-m [-k "
 "plantilla]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                     [-f inactiu] [-e caduca]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                     [-p contrasenya] nom\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "             useradd -D [-g grup] [-b base] [-s intèrpret]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: s'ha produït un error en bloquejar el fitxer de grups\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: s'ha produït un error en obrir el fitxer de grups\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: s'ha produït un error en bloquejar el fitxer de grups ombra\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: s'ha produït un error en obrir el fitxer de grups ombra\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: l'UID %u no és únic\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: no es pot obtenir un UID únic\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: el directori base «%s» no és vàlid\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: el comentari «%s» no és vàlid\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: el directori home «%s» no és vàlid\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: la data «%s» no és vàlida\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: les contrasenyes ombra són requerides per a «-e»\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: les contrasenyes ombra són requerides per a «-f»\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: el camp «%s» no és vàlid\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: l'intèrpret «%s» no és vàlid\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: el nom d'usuari «%s» no és vàlid\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: no es pot reescriure el fitxer de contrasenyes\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: no es pot reescriure el fitxer de contrasenyes ombra\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: no es pot bloquejar el fitxer de contrasenyes\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: no es pot d'obrir el fitxer de contrasenyes\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: no es pot bloquejar el fitxer de contrasenyes ombra\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: no es pot obrir el fitxer de contrasenyes ombra\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: s'ha produït un error en afegir la nova entrada de contrasenya\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-"%s: s'ha produït un error en actualitzar l'entrada de contrasenya DBM\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 "%s: s'ha produït un error en afegir la nova entrada de contrasenya ombra\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-"%s: s'ha produït un error en actualitzar l'entrada de contrasenya ombra DBM\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: no es pot crear el directori %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: no es pot actualitzar l'entrada per a l'usuari %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: l'usuari %s existeix\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1879,209 +1789,172 @@ msgstr ""
 "%s: el grup %s existeix, si voleu afegir aquest usuari a aquest grup, useu «-"
 "g».\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: avís: CREATE_HOME no està suportat, si us plau useu «-m» en el seu "
 "lloc.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Forma d'ús: %s [-r] nom\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: s'ha produït un error en actualitzar l'entrada de grup\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: no es pot actualitzar l'entrada de grup DBM\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: no es pot eliminar l'entrada de grup DBM\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: no es pot obrir el fitxer de grups\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: no es pot obrir el fitxer de grups ombra\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya ombra\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya DBM\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-"%s: s'ha produït un error en eliminar l'entrada de contrasenya ombra DBM\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: l'usuari %s està actualment dins el sistema\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s no és propietat de %s, no s'elimina\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: avís: no es pot eliminar "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: l'usuari %s no existeix\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: l'usuari %s és un usuari NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: no s'elimina el directori %s (eliminaria el home de l'usuari %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: s'ha produït un error en eliminar el directori %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Forma d'ús: %s\t[-u uid [-o]] [-g grup] [-G grup,...]\n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s intèrpret] [-c comentari] [-l nom_nou]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactiu] [-e caduca] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p contrasenya] [-L|-U] nom\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: sense memòria a update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: sense memòria a update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: no s'han especificat senyaladors\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: les contrasenyes ombra són requerides per a «-e» i «-f»\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: l'UID %lu no és únic\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: s'ha produït un error en canviar l'entrada de contrasenya\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: s'ha produït un error en afegir l'entrada de contrasenya DBM\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya DBM\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: s'ha produït un error en eliminar l'entrada de contrasenya ombra\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-"%s: s'ha produït un error en eliminar l'entrada de contrasenya ombra DBM\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: el directori %s ja existeix\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: no es pot crear %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: no es pot fer canviar el propietari a %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: no es pot renombrar el directori %s a %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: avís: %s no és propietat de %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "no s'ha pogut canviar el propietari de la bústia de correu"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "no s'ha pogut renombrar la bústia de correu"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2090,20 +1963,20 @@ msgstr ""
 "\n"
 "%s: no s'ha canviat %s\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "No s'ha pogut bloquejar el fitxer"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "No s'ha pogut fer una còpia de seguretat"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: no es pot restaurar %s: %s (els seus canvis estan a %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index d3bf6e654961726700bc57f5fc55dfccfb59bc21..3a36165974d05ab8a64d3fc563a6869afd38fa70 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index d6f4e38e6195e02013becb45f5eed40f2f57d723..f751d2e8f1c69b67ca0e0cb076c965032d4ab427 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,24 +1,27 @@
 # Czech translation of shadow-utils.
 # Jiří Pavlovský <pavlovsk@ff.cuni.cz>, 1999-2000
+# Miroslav Kuře <kurem@debian.cz>, 2004-2005
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow-utils-20000902\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2000-09-23 19:58+0200\n"
-"Last-Translator: Jiří Pavlovský <pavlovsk@ff.cuni.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 21:17+0200\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
-msgstr "Varování: skupina %s je neznámá\n"
+msgstr "Varování: neznámá skupina %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Varování: příliš mnoho skupin\n"
@@ -46,20 +49,20 @@ msgstr "  Kontaktujte správce systému.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Zvolte nové heslo.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
-msgstr "Platnost vašeho heslo vyprší za %ld dnů.\n"
+msgstr "Platnost vašeho hesla vyprší za %ld dnů.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
-msgstr "Platnost vašeho heslo vyprší zítra.\n"
+msgstr "Platnost vašeho hesla vyprší zítra.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
-msgstr "Platnost vašeho heslo vyprší dnes.\n"
+msgstr "Platnost vašeho hesla vyprší dnes.\n"
 
 #: libmisc/chowntty.c:106
 #, c-format
@@ -71,39 +74,34 @@ msgstr "TTY %s nelze změnit"
 msgid "Environment overflow\n"
 msgstr "Přetečení prostředí\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Nemůžete změnit $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "Počet %2$s od posledního přihlášení: %1$d. Poslední: %3$s na %4$s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "selhání"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "selhání"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d selhání od posledního přihlášení.\n"
+"Poslední: %s na %s.\n"
+msgstr[1] ""
+"%d selhání od posledního přihlášení.\n"
+"Poslední: %s na %s.\n"
+msgstr[2] ""
+"%d selhání od posledního přihlášení.\n"
+"Poslední: %s na %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Příliš mnoho souběžných přihlášení.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Tímto heslem nelze dešifrovat tajný klíč pro %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Tajný klíč pro %s nelze nastavit. Je keyserv démon v provozu?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Máte novou poštu."
@@ -116,7 +114,7 @@ msgstr "Nemáte žádnou poštu."
 msgid "You have mail."
 msgstr "Máte poštu."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Heslo %s je chybné. "
@@ -131,20 +129,20 @@ msgstr "passwd: volání pam_start() selhalo, chyba %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: heslo bylo úspěšně změněno\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Nelze nastavit aktuální adresář na \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Žádný adresář, nastavuji HOME na /"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "%s nelze spustit"
@@ -159,36 +157,32 @@ msgstr "Chybný kořenový adresář \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Nelze nastavit kořenový adresář na \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "volání malloc(%d) selhalo\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Nemohu alokovat dostatek místa pro konfigurační údaje.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "konfigurační chyba - neznámý předmět '%s' (informujte správce systému)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Heslo: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Heslo uživatele %s:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo zapnuto)"
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -197,158 +191,151 @@ msgstr ""
 "Použití: chage [-l] [-m min_dnů] [-M max_dnů] [-W varování]\n"
 "               [-I vypnutí] [-E vypršení] [-d poslední den] uživatel\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 "Zadejte novou hodnotu, nebo stiskněte ENTER pro použití implicitní hodnoty\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimální stáří hesla"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
-msgstr "maximální stáří hesla"
+msgstr "Maximální stáří hesla"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
-msgstr "Poslední změna hesla (YYYY-MM-DD)"
+msgstr "Poslední změna hesla (RRRR-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Varování o vypršení platnosti hesla"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Vypnuté heslo"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
-msgstr "Vypršení platnosti účtu (YYYY-MM-DD)"
+msgstr "Vypršení platnosti účtu (RRRR-MM-DD)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "Poslední změna hesla (YYYY-MM-DD)"
+msgstr "Poslední změna hesla\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
-msgstr "Nikdy\n"
+msgstr "nikdy\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "Platnost hesla vyprší:\t"
+msgstr "Platnost hesla vyprší\t\t\t\t\t: "
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "Vypnuté heslo:\t"
+msgstr "Vypnuté heslo\t\t\t\t\t: "
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Platnost hesla vyprší:\t"
+msgstr "Platnost účtu vyprší\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Minimální počet dnů mezi změnami hesla\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Maximální počet dnů mezi změnami hesla\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "Počet varovných dnů před vypršením platnosti hesla\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: nepoužívejte \"l\" s ostatními příznaky\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: přístup odmítnut\n"
+msgstr "%s: přístup odmítnut.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
-#, fuzzy, c-format
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
+#, c-format
 msgid "%s: PAM authentication failed\n"
-msgstr "%s: chyba při vytváření ověřovací metody\n"
+msgstr "%s: ověření pomocí PAM selhalo\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: soubor s hesly nelze otevřít\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
-msgstr "%s: uživatel %s je neznámý\n"
+msgstr "%s: neznámý uživatel %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: soubor se stínovými hesly nelze zamknout"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: soubor se stínovými hesly nelze otevřít"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Měním informace o uživateli %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: chyba při změně položek\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: soubor s hesly nelze aktualizovat\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: soubor se stínovými hesly nelze aktualizovat\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Chyba při aktualizaci DBM databáze hesel.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: soubor se stínovými hesly nelze přepsat\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: soubor s hesly nelze přepsat\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
-#, fuzzy, c-format
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
+#, c-format
 msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: nelze odemknout soubor\n"
+msgstr "%s: PAM chauthtok selhal\n"
 
 #: src/chfn.c:84
 #, c-format
@@ -366,117 +353,122 @@ msgstr ""
 "Použití: %s [-f jméno] [-r číslo místnosti] [-w telefon do zaměstnání]\n"
 "\t[-h telefon domů]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Celé jméno"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tCelé jméno: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Číslo místnosti"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefon do zaměstnání"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefon domů"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Ostatní"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: vaše uživatelské jméno nelze zjistit.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: uživatele `%s' nelze na NIS klientu změnit.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' je hlavním NIS serverem pro tohoto klienta.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Přístup odmítnut.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Měním informace o uživateli %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
-msgstr "%s: jméno (\"%s\") je chybné\n"
+msgstr "%s: jméno \"%s\" je chybné\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
-msgstr "%s: číslo místnosti (\"%s\") je chybné\n"
+msgstr "%s: číslo místnosti \"%s\" je chybné\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
-msgstr "%s: telefonní číslo do zaměstnání (\"%s\") je chybné\n"
+msgstr "%s: telefonní číslo do zaměstnání \"%s\" je chybné\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
-msgstr "%s: telefonní číslo domů (\"%s\") je chybné\n"
+msgstr "%s: telefonní číslo domů \"%s\" je chybné\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" obsahuje chybné znaky\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: položka je příliš dlouhá\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Nelze změnit ID na root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Nelze zamknout soubor s hesly; zkuste to později.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Soubor s hesly nelze otevřít.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s se v /etc/passwd nenalézá\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Chyba při aktualizaci položky v souboru s hesly.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Nelze provést změny v souboru s hesly.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Soubor s hesly nelze odemknout.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -487,54 +479,61 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"Použití: chpasswd [volby]\n"
+"\n"
+"Volby:\n"
+"  -e, --encrypted\tzadaná hesla jsou zašifrovaná\n"
+"  -h, --help\t\tzobrazí tuto nápovědu a skončí\n"
+"  -m, --md5\t\tpokud zadaná hesla nejsou zašifrovaná,\n"
+"\t\t\tpoužije místo DES algoritmus MD5\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
 msgstr "%s: soubor s hesly nelze zamknout\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: soubor se stínovými hesly nelze zamknout\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: soubor se stínovými hesly nelze otevřít\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: řádek %d je příliš dlouhý\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: řádek %d: chybí nové heslo\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
-msgstr "%s: řádek %d: uživatel %s je neznámý\n"
+msgstr "%s: řádek %d: neznámý uživatel %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: řádek %d: položku v souboru s hesly nelze aktualizovat\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: chyba, změny budou ignorovány\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: chyba při aktualizaci souboru se stínovými hesly\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: chyba při aktualizaci souboru s hesly\n"
@@ -544,41 +543,41 @@ msgstr "%s: chyba při aktualizaci souboru s hesly\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Použití: %s [-s shell] [jméno]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
-msgstr "Implicitní shell"
+msgstr "Přihlašovací shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Nemůžete změnit shell pro %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
-msgstr "Měním implicitní shell pro %s\n"
+msgstr "Měním přihlašovací shell pro %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: chybná položka %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
-msgstr "Shell %s je chybný.\n"
+msgstr "Shell %s je neplatný.\n"
 
 #: src/expiry.c:59
 #, c-format
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Použití: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: VAROVÁNÍ! Musí mít oprávnění superuživatele!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: neznámý uživatel\n"
@@ -592,322 +591,297 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
+"Použití: faillog [volby]\n"
+"\n"
+"Volby:\n"
+"  -a, --all\t\t\tzobrazí záznamy faillogu o všech uživatelích\n"
+"  -h, --help\t\t\tzobrazí tuto nápovědu a skončí\n"
+"  -l, --lock-time SEK\t\tpo neúspěšném přihlášení zamkne účet na SEC sekund\n"
+"  -m, --maximum MAX\t\tnastaví maximální počet chybných přihlášení na MAX\n"
+"  -r, --reset\t\t\tvynuluje počitadlo chybných přihlášení\n"
+"  -t, --time DNŮ\t\tzobrazí záznamy faillogu novější než DNŮ\n"
+"  -u, --user LOGIN\t\tzobrazí záznamy faillogu nebo upraví počitadla\n"
+"\t\t\t\ta limity chybných přihlášení pouze pro uživatele LOGIN\n"
+"\t\t\t\t(s volbami -r, -m nebo -l)\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Jméno      Chyb      Maximum  Poslední\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s on %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Uživatel    Chyb     Maximum Poslední                 Na\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds zbylo]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds zámek]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Neznámý uživatel: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Použití: %s [r|-R] skupina\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a uživatel] skupina\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d uživatel] skupina\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A uživatel,...] [-M uživatel,...] skupina\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M uživatel,...] skupina\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: přepínač -A funguje pouze se stínovými hesly skupin\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Kdo jste?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
-msgstr "skupina %s je neznámá\n"
+msgstr "neznámá skupina %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Přidávám uživatele %s do skupiny %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Odstraňuji uživatele %s ze skupiny %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
-msgstr "%s: člen %s je neznámý\n"
+msgstr "%s: neznámý člen %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Nejedná se o tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Měním heslo skupiny %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nové heslo: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Zadejte opět nové heslo: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
-msgstr "Neshodují se; zkuste to opět"
+msgstr "Neshodují se; zkuste to znovu"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Zkuste to později\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: nelze získat zámek\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: nelze získat zámek pro soubor se stínovými hesly\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: nelze otevřít soubor\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: nelze aktualizovat položku\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: nelze aktualizovat položku souboru se stínovými hesly\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: nelze přepsat soubor\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: nelze přepsat soubor se stínovými hesly\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: nelze odemknout soubor\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: nelze aktualizovat soubory s DBM databázemi\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: nelze aktualizovat soubory s DBM databázemi stínových hesel\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Použití: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: chyba při přidávání položky souboru se skupinami\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: nelze přidat položku do souboru s dbm databází skupin\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: jméno %s není jedinečné\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: uid %u není jedinečné\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: nelze vytvořit jedinečné gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s není platným jménem skupiny\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: chybná skupina %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: přepínač -O vyžaduje argument typu JMÉNO=HODNOTA\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: soubor se skupinami nelze přepsat\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze přepsat\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: soubor se skupinami nelze zamknout\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: soubor se skupinami nelze otevřít\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze zamknout\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze otevřít\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: skupina %s již existuje\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Použití: groupdel skupina\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru se skupinami\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: chyba při odstraňování položky ze souboru s dbm databází skupin\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru se stínovými skupinami\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-"%s: chyba při odstraňování položky ze souboru s dbm databází stínových "
-"skupin\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: primární skupinu uživatele nelze odstranit.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: skupina %s neexistuje\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: skupina %s je NIS skupinou\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s je hlavním NIS serverem\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Použití: groupmod [-g gid [-o]] [-n jméno] skupina\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s se v /etc/group nenalézá\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: nelze přidat položku do souboru s dbm databází stínových skupin\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: gid %u není jedinečné\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: jméno %s není jedinečné\n"
@@ -918,110 +892,105 @@ msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 "Použití: %s [-r] [-s] [soubor se skupinami [soubor se stínovými skupinami]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Usage: %s [-r] [-s] [soubor se skupinami]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Ne"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
-msgstr ""
+msgstr "%s: -s a -r nejsou slučitelné\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: soubor %s nelze zamknout\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: soubor %s nelze otevřít\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "chybná položka v souboru se skupinami\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "smazat řádek `%s'?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "tato položka se v souboru se skupinami vyskytuje vícekrát\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "jméno skupiny `%s' je chybné\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "skupina %s: uživatel %s neexistuje\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "smazat člena `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "chybná položka v souboru se stínovými skupinami\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "duplikovaná položka v souboru se stínovými skupinami\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "v souboru se skupinami neexistuje odpovídající položka\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "stínová skupina %s: administrátor %s neexistuje\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "smazat administrátora `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "stínová skupina %s: uživatel %s neexistuje\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: soubor %s nelze aktualizovat\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: soubory byly aktualizovány; spusťte mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: soubory byly aktualizovány\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: žádné změny nebyly provedeny\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: soubory byly aktualizovány\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1037,37 +1006,37 @@ msgstr "%s: soubor se skupinami nelze otevřít\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze zamknout\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze otevřít\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: položku stínové skupiny %s nelze odstranit\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: položku %s souboru se stínovými hesly nelze aktualizovat\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: položku skupiny %s nelze odstranit\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: soubor se stínovými hesly nelze aktualizovat\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: soubor s hesly nelze aktualizovat\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: soubor se stínovými hesly skupin nelze smazat\n"
@@ -1087,52 +1056,58 @@ msgstr "Použití: id\n"
 msgid " groups="
 msgstr " skupiny="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"Použití: lastlog [volby]\n"
+"\n"
+"Volby:\n"
+"  -u, --login LOGIN\tzobrazí záznamy lastlogu pro uživatele LOGIN\n"
+"  -h, --help\t\tzobrazí tuto nápovědu a skončí\n"
+"  -t, --time DNŮ\tzobrazí záznamy lastlogu novější než DNŮ\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Uživatel         Port     Z                Naposledy\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Uživatel                Port     Naposledy\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nikdy nebyl přihlášen**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Použití: %s [-p] [jméno]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "         %s [-p] [-h počítač] [-f jméno]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "         %s [-p] -r počítač\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Chybný čas přihlášení\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1141,7 +1116,7 @@ msgstr ""
 "\n"
 "Systém byl uzavřen kvůli pravidelné údržbě.\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1150,7 +1125,7 @@ msgstr ""
 "\n"
 "[Odpojení přeskočeno -- uživatel root smí být přihlášen.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1159,17 +1134,17 @@ msgstr ""
 "\n"
 "Vypršel časový limit (%d vteřin) pro přihlášení.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " na `%.100s' z `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " na `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1178,38 +1153,29 @@ msgstr ""
 "\n"
 "Přihlašovací jméno na %s: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "Přihlašovací jméno: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Chybné přihlášení"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Varování: po dočasném zákazu je přihlašování opět povoleno.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Poslední přihlášení: %s na %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Poslední přihlášení: %.19s na %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " z %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Spouštím rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1226,9 +1192,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: soubory s DBM databázemi pro %s nelze otevřít\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: začátek s "
+msgstr "%s: řádek začínající %.16s... je příliš dlouhý\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1236,31 +1202,31 @@ msgid "%s: error parsing line \"%s\"\n"
 msgstr "%s: chyba při zpracování řádku \"%s\"\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "přidávám záznam pro jméno"
+msgstr "přidávám záznam pro jméno %s\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: chyba při zadávání záznamu pro jméno "
+msgstr "%s: chyba při přidávání záznamu pro %s\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
 msgstr "počet přidaných položek: %d; délka největší: %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Použití: %s [-vf] [-p|g|sp|sg] soubor\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Použití: %s [-vf] [-p|g|sp] soubor\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Použití: %s [-vf] [-p|g] soubor\n"
@@ -1278,18 +1244,18 @@ msgstr "Použití: sg skupina [[-c] příkaz]\n"
 #: src/newgrp.c:131
 #, c-format
 msgid "unknown uid: %u\n"
-msgstr "uid %u je neznámé\n"
+msgstr "neznámé uid %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
-msgstr "gid %lu je neznámé\n"
+msgstr "neznámé gid %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Lituji.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "příliš mnoho skupin\n"
@@ -1299,91 +1265,91 @@ msgstr "příliš mnoho skupin\n"
 msgid "Usage: %s [input]\n"
 msgstr "Použití: %s [vstup]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: soubor /etc/passwd nelze zamknout.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: soubory nelze zamknout. Zkuste to opět později.\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: soubory nelze otevřít\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: řádek %d: chybný řádek\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: řádek %d: nelze vytvořit GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: řádek %d: nelze vytvořit UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: řádek %d: uživatele %s nelze nalézt\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: řádek %d: heslo nelze aktualizovat\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: řádek %d: volání mkdir selhalo\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: řádek %d: volání chown selhalo\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: řádek %d: položku nelze aktualizovat\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: chyba při aktualizaci souborů\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Použití: %s [-f|-s] [jméno]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "         %s [-x max] [-n min] [-w varování] [-i vypnutí] jméno\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "         %s {-l|-u|-d|-S|-e} jméno\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Staré heslo: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Chybné heslo pro `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1392,70 +1358,70 @@ msgstr ""
 "Zadejte nové heslo (počet znaků v intervalu %d až %d).\n"
 "Použijte kombinaci velkých a malých písmen s číslicemi.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nové heslo: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Zkuste to znovu.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 "\n"
-"Varování: slabé heslo (pokud jej opravdu chcete použít, zadejte jej znovu).\n"
+"Varování: slabé heslo (chcete-li jej opravdu použít, zadejte jej znovu).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Neshodují se; zkuste to znovu.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
-msgstr "Heslo pro %s nelze změnit.\n"
+msgstr "Heslo uživatele %s nelze změnit.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Lituji, ale heslo pro %s nelze ještě změnit.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: došla paměť\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: %s nelze spustit"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: úložna %s není podporována\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Nesmíte změnit heslo pro %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Nemůžete prohlížet nebo měnit heslo uživatele %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Měním heslo uživatele %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Heslo uživatele %s nebylo změněno.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Heslo bylo změněno.\n"
@@ -1471,49 +1437,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Použití: %s [-q] [-r] [-s] [soubor s hesly]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "chybná položka v souboru s hesly\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "duplikovaná položka v souboru s hesly\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "chybné uživatelské jméno '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "uživatel %s: skupina %u neexistuje\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "uživatel %s: adresář %s neexistuje\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "uživatel %s: program %s neexistuje\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "chybná položka v souboru se stínovými hesly\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "duplikovaná položka v souboru se stínovými hesly\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "chybí položka v souboru s hesly\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "uživatel %s: poslední změna hesla v budoucnosti\n"
@@ -1533,17 +1499,17 @@ msgstr "%s: soubor s hesly nelze otevřít\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: položku souboru s hesly pro uživatele %s nelze odstranit\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: položku souboru s hesly pro uživatele %s nelze aktualizovat\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: soubor se stínovými hesly nelze aktualizovat\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: soubor s hesly nelze aktualizovat\n"
@@ -1553,40 +1519,40 @@ msgstr "%s: soubor s hesly nelze aktualizovat\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: položku pro uživatele %s nelze aktualizovat\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: nemůžete smazat soubor se stínovými hesly\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Lituji."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: musí být spuštěno z terminálu\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: chyba %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
-msgstr "Id %s je neznámé.\n"
+msgstr "Neznámé id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Nejste oprávněn používat su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
-msgstr "(Zadejte vaše heslo.)"
+msgstr "(Zadejte své heslo.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1595,22 +1561,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignoruji)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Žádný shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Z tohoto účtu je přístup k su ZAKÁZÁN.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Ověřování heslem vynecháno.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Pro ověření zadejte VAŠE vlastní heslo.\n"
@@ -1625,7 +1591,7 @@ msgstr "Soubor s hesly neexistuje\n"
 msgid "No password entry for 'root'\n"
 msgstr "V databázi není položka pro uživatele 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1635,439 +1601,386 @@ msgstr ""
 "Stiskněte control-d pro normální spuštění systému,\n"
 "(nebo zadejte heslo uživatele root pro údržbu systému):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Vstupuji do režimu údržby systému\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: vytvořte znovu databázi skupin\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: vytvořte znovu databázi stínových skupin\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: chybný numerický argument `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
-msgstr "%s: gid %s je neznámé\n"
+msgstr "%s: neznámé gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
-msgstr "%s: skupina %s je neznámá\n"
+msgstr "%s: neznámá skupina %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: nemohu vytvořit nový soubor s implicitními hodnotami\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: nemohu vytvořit nový soubor s implicitními hodnotami\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: přejmenovat: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: skupina `%s' je NIS skupinou\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: zadáno příliš mnoho skupin (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Použití: useradd [-u uid [-o]] [-g skupina [-G skupina,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                 [-d domácí adr.] [-s shell] [-c komentář]\n"
 "                 [-m [-k šablona]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                 [-f vypnutí] [-e vypršení]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                 [-p heslo] jméno\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "         useradd -D [-g skupina [-b základní adr.] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: chyba při zamykání souboru se skupinami\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: chyba při otevírání souboru se skupinami\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: chyba při zamykání souboru se stínovými hesly\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: chyba při otevírání souboru se stínovými hesly\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s uid %u není jedinečné\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: nemohu získat jedinečné uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: chybný základní adresář `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: chybný komentář `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: chybný domácí adresář `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: chybné datum `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: přepínač -e vyžaduje stínová hesla\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: přepínač -f vyžaduje stínová hesla\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: chybná položka `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: chybný shell `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: chybné uživatelské jméno `%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: soubor s hesly nelze přepsat\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: soubor se stínovými hesly nelze přepsat\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: soubor s hesly nelze zamknout\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: soubor s hesly nelze otevřít\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: soubor se stínovými hesly nelze zamknout\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: soubor se stínovými hesly nelze otevřít\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: chyba při vytváření nové položky v souboru s hesly\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: chyba při aktualizaci položky dbm databáze hesel\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: chyba při vytváření nové položky v souboru se stínovými hesly\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: chyba při aktualizaci položky dbm databáze stínových hesel\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: adresář %s nelze vytvořit\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
-msgstr ""
+msgstr "Skupina \"mail\" neexistuje, vytvářím soubor s poštou s právy 0600.\n"
 
-#: src/useradd.c:1590
-#, fuzzy, c-format
+#: src/useradd.c:1446
+#, c-format
 msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: položku pro uživatele %s nelze aktualizovat\n"
+msgstr "Nemohu vytvořit soubor s příchozí poštou pro uživatele %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: uživatel %s již existuje\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
+"%s: skupina %s existuje - chcete-li přidat uživatele do této skupiny, "
+"použijte -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: varování: CREATE_HOME není podporováno, použijte přepínač -m\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Použití: %s [-r] jméno\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: položku souboru se skupinami nelze aktualizovat\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: položku dbm databáze skupin nelze aktualizovat\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: položku dbm databáze skupin nelze odstranit\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: soubor se skupinami nelze otevřít\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: soubor se stínovými skupinami nelze otevřít\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru s hesly\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru se stínovými hesly\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: chyba při odstraňování položky z dbm databáze hesel\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: chyba při odstraňování položky z dbm databáze stínových hesel\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: uživatel %s je právě přihlášen\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: vlastníkem %s není %s, nemažu jej\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: varování: nemohu smazat "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: uživatel %s neexistuje\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: uživatel %s je NIS uživatelem\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: adresář %s nebudu mazat (je to domácí adresář uživatele %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: chyba při mazání adresáře %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Použití: %s [-u uid [-o]] [-g skupina [-G skupina,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d domácí adr. [-m]] [-s shell] [-c komentář] [-l nové jméno]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f vypnutí] [-e vypršení] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p heslo] [-L|-U] jméno\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s nedostatek paměti v update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: nedostatek paměti v update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: žádné přepínače\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: přepínače -e a -f vyžadují stínová hesla\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s uid %lu není jedinečné\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: chyba při změně položky v souboru s hesly\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru s hesly\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: chyba při přidávání položky do dbm databáze hesel\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: chyba při odstraňování položky z dbm databáze hesel\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: chyba při odstraňování položky ze souboru se stínovými hesly\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: chyba při odstraňování položky z dbm databáze stínových hesel\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: adresář %s již existuje\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: %s nelze vytvořit\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: volání chown pro %s selhalo\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: adresář %s nelze na %s přejmenovat\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: varování: vlastníkem %s není %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
-msgstr "chyba při změně vlastníka schránky"
+msgstr "chyba při změně vlastníka poštovní schránky"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
-msgstr "chyba při přejmenovávání schránky"
+msgstr "chyba při přejmenovávání poštovní schránky"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2076,20 +1989,20 @@ msgstr ""
 "\n"
 "%s: %s je beze změny\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Soubor nelze zamknout"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Zálohování nelze provést."
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: %s nelze obnovit: %s (změny jsou v %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index e5071607067423eb7de336bcd68fe3fdf6132bf9..2617ad5901e6d97d7c9f87b6cd3e465d97d9e720 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index 76078b70bb666b88b6b3892024662a5e9c125865..710b004bcac5a1f74c461b05d792fcd149bc93a1 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -5,23 +5,24 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-16 11:26+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 10:17+0200\n"
 "Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
 "Language-Team: Danish <dansk@klid.dk>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.9.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Advarsel: ukendt gruppe %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Advarsel: for mange grupper\n"
@@ -49,17 +50,17 @@ msgstr "  Kontakt systemadministratoren.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Vælg en ny adgangskode.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Din adgangskode udløber om %ld dage.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Din adgangskode udløber i morgen.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Din adgangskode udløber i dag.\n"
@@ -74,39 +75,31 @@ msgstr "Kunne ikke ændre tty %s"
 msgid "Environment overflow\n"
 msgstr "Miljøoverløb\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Du kan ikke ændre $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s siden du sidst var logget på. Sidst var %s, %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "fejl"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "fejl"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d fejl siden sidste logind.\n"
+"Sidst var %s, %s.\n"
+msgstr[1] ""
+"%d fejl siden sidste logind.\n"
+"Sidst var %s, %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Logget på for mange gange.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Adgangskode kan ikke dekryptere den hemmelige nøgle for %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Kunne ikke sætte %s's hemmelige nøgle: kører keyserv-dæmonen?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Du har ny post."
@@ -119,7 +112,7 @@ msgstr "Ingen post."
 msgid "You have mail."
 msgstr "Du har post."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Ugyldig adgangskode: %s.  "
@@ -134,20 +127,20 @@ msgstr "passwd: pam_start() mislykkedes, fejl %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: adgangskoden blev opdateret\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Kunne ikke skifte mappe til \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Ingen mappe, logger på med HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Kan ikke udføre %s"
@@ -162,35 +155,31 @@ msgstr "Ugyldig rodmappe \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kan ikke ændre rodmappen til \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) mislykkedes\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Kunne ikke frigøre plads til opsætningsoplysninger.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "opsætningsfejl - ukendt punkt %s (informér administrator)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Adgangskode: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s's adgangskode: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Ekko aktiveret) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -199,154 +188,147 @@ msgstr ""
 "Brug: chage [-l] [-m min_dage] [-M maks_dage] [-W advar]\n"
 "            [-I inaktive] [-E udløb] [-d sidste_dag] bruger\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Angiv ny værdi eller tryk RETUR for standardværdien\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimal adgangskode-alder"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maksimal adgangskode-alder"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Sidste ændring af adgangskode (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Advarsel om udløb af adgangskode"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Adgangskode inaktiv"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Konto-udløbsdato (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Sidste ændring af adgangskode\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "aldrig\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Adgangskode udløber\t\t\t\t\t: "
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Adgangskode inaktiv\t\t\t\t\t: "
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Konto udløber\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Minimalt antal dage mellem ændring af adgangskoden\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Maksimalt antal dage mellem ændring af adgangskoden\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Antal dages forvarsel om adgangskodens udløb\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: medtag ikke \"l\" med andre flag\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: adgang nægtet.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM-autentifikation mislykkedes\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: kan ikke åbne adgangskodefil\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: ukendt bruger %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: kan ikke låse skyggeadgangskodefil"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: kan ikke åbne skyggeadgangskodefil"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Ændrer forældelsesoplysninger for %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: fejl ved ændring af felter\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: kan ikke opdatere adgangskodefil\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: kan ikke opdatere skyggeadgangskodefil\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Fejl under opdatering af DBM-adgangskodelinjen.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: kan ikke genskrive skyggeadgangskodefilen\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: kan ikke genskrive adgangskodefilen\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok fejlede\n"
@@ -366,117 +348,122 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "Brug: %s [-f fulde_navn] [-r rum] [-w arbedstelefon] [-h hjemmetelefon]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Fulde navn"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tFulde navn: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Rum-nummer"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Arbejdstelefon"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Hjemmetelefon"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Andet"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kan ikke afgøre dit brugernavn.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: kan ikke ændre brugeren`%s' på NIS-klienten.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' er NIS-masteren for denne klient.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Adgang nægtet.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Ændrer brugeroplysninger for %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: ugyldigt navn: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: ugyldigt rum-nummer: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: ugyldig arbejdstelefon: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: ugyldig hjemmetelefon: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" indeholder ugyldige tegn\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: felter for lange\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Kan ikke ændre ID til root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Kan ikke låse adgangskodefilen; forsøg igen senere.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Kan ikke åbne adgangskodefilen.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s ikke fundet i /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Fejl under opdatering af adgangskodelinje.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Kan ikke skrive ændringerne til adgangskodefilen.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Kan ikke låse adgangskodefilen op.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -500,48 +487,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: kan ikke låse adgangskodefil\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: Kan ikke låse skyggefilen\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: Kan ikke åbne skyggefilen\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linje %d: linjen er for lang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linje %d: mangler ny adgangskode\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linje %d: ukendt bruger %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linje %d: kan ikke opdatere adgangskodelinje\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: fejl opdaget, ændringerne blev ignoreret\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: fejl under opdatering af skyggefil\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: fejl under opdatering af adgangskodefil\n"
@@ -551,26 +538,26 @@ msgstr "%s: fejl under opdatering af adgangskodefil\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Brug: %s [-s skal] [navn]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Login-skal"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Du kan ikke ændre skal for %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Ændrer login-skallen for %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Ugyldig linje: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s er en ugyldig skal.\n"
@@ -580,12 +567,12 @@ msgstr "%s er en ugyldig skal.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Brug: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: ADVARSEL! Skal være set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: ukendt bruger\n"
@@ -599,8 +586,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -613,318 +601,283 @@ msgstr ""
 "  -l, --lock-time SEK\t\tlås konto i SEK sekunder efter mislykket logind\n"
 "  -m, -- maximum MAKS\t\tsæt det maksimale antal mislykkede logind til MAKS\n"
 "  -r, --reset\t\t\tnulstil optællingen af mislykkede logind\n"
+"  -r, --time DAGE\t\tvis fejllog-optegnelser, der er nyere end DAGE\n"
 "  -u, --user LOGIND\t\tvis fejllog-optegnelser eller vedligehold kun "
 "fejltællere\n"
 "\t\t\t\tog grænser (hvis den bruges sammen med tilvalgene -r, -m eller -l)\n"
 "\t\t\t\tfor brugeren med LOGIND\n"
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Brugernavn Fejl      Maksimum Seneste\n"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Logind      Fejl     Maksimum Seneste                 Tid\n"
 
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s på %s"
-
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds tilbage]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lås]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Ukendt bruger: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Brug: %s [-r|-R] gruppe\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "      %s [-a bruger] gruppe\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "      %s [-d bruger] gruppe\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "      %s [-A bruger,...] [-M bruger,...] gruppe\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "      %s [-M bruger,...] gruppe\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: der kræves skyggeadgangskoder for -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Hvem er du?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "ukendt gruppe: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Tilføjer brugeren %s til gruppen %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Fjerner brugeren %s fra gruppen %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: ukendt medlem %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Ikke en tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Ændrer adgangskoden for gruppen %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Ny adgangskode: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Gentag ny adgangskode: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "De er ikke ens. Prøv igen"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Prøv igen senere\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: Kan ikke opnå lås\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: Kan ikke opnå skyggelås\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: kan ikke åbne fil\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: kan ikke opdatere linje\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: kan ikke opdatere skyggelinje\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: kan ikke genskrive fil\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: kan ikke genskrive skyggefil\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: kan ikke låse fil op\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: kan ikke opdatere DBM-filer\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: kan ikke opdatere DBM-skyggefiler\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Brug: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: fejl under tilføjelse af gruppelinje\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: kan ikke tilføje ny dbm-gruppelinje\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: navnet %s er ikke unikt\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u er ikke unikt\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: kan ikke få unik gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s er ikke et gyldigt gruppenavn\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: ugyldig gruppe %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O kræver NAVN=VÆRDI\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: kan ikke genskrive gruppefil\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: kan ikke genskrive skyggegruppefil\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: kan ikke låse gruppefil\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: kan ikke åbne gruppefil\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: kan ikke låse skyggegruppefil\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: kan ikke åbne skyggegruppefil\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: gruppen %s eksisterer\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Brug: groupdel gruppe\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: fejl under fjernelse af gruppelinje\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: fejl under fjernelse af dbm-gruppelinje\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: fejl under fjernelse af skyggegruppelinje\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: fejl under fjernelse af dbm-skyggegruppelinje\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: kan ikke fjerne brugerens primære gruppe.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: gruppen %s eksisterer ikke\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: gruppen %s er en NIS-gruppe\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s er NIS-masteren\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Brug: groupmod [-g gid [-o]] [-n navn] gruppe\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s blev ikke fundet i /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: kan ikke tilføje ny dbm-skyggegruppelinje\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u er ikke en unik gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s er ikke et unikt navn\n"
@@ -934,110 +887,105 @@ msgstr "%s: %s er ikke et unikt navn\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Brug: %s [-r] [-s] [gruppe [gskygge]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Brug %s [-r] [-s] [gruppe]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nej"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s og -r er ikke kompatible\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: kan ikke låse filen %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: kan ikke åbne filen %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "ugyldig gruppefils-linje\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "slet linjen '%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "gruppelinjen er en dublet\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "ugyldigt gruppenavn '%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "gruppe %s: ingen bruger %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "slet medlemmet`%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "ugyldig skyggegruppefils-linje\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "skyggegruppelinjen er en dublet\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "ingen tilsvarende gruppefilslinje\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "skyggegruppen %s: ingen administrator-bruger %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "slet administrator-medlemmet '%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "skyggegruppen %s: ingen bruger %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: kan ikke opdatere filen %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: filerne er blevet opdateret; kør mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: filerne er blevet opdateret\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: ingen ændringer\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: filerne er blevet opdateret\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1053,37 +1001,37 @@ msgstr "%s: kan ikke åbne gruppefilen\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: kan ikke låse skyggegruppefilen\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: kan ikke åbne skyggegruppefilen\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: kan ikke fjerne skyggegruppen %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: kan ikke opdatere skygge-linjen for %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: kan ikke opdatere linjen for gruppen %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: kan ikke opdatere skyggegruppefilen\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: kan ikke opdatere gruppefilen\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: kan ikke slette skyggegruppefilen\n"
@@ -1103,13 +1051,13 @@ msgstr "Brug: id\n"
 msgid " groups="
 msgstr " grupper="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1121,41 +1069,41 @@ msgstr ""
 "  -h, --help\t\tdvis denne hjælpebesked og afslut\n"
 "  -t, --time DAGE\tvis kun lastlog-optegnelser, der er nyere end DAGE\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Brugernavn       Port     Fra              Seneste\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Brugernavn              Port     Seneste\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Har aldrig logget på**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Brug: %s [-p] [navn]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "      %s [-p] [-h vært] [-f navn]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "      %s [-p] -r vært\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Ugyldig login-tid\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1164,7 +1112,7 @@ msgstr ""
 "\n"
 "Systemet er lukket for rutinemæssig vedligehold\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1173,7 +1121,7 @@ msgstr ""
 "\n"
 "[Afbrød ikke forbindelsen -- root-login er tilladt.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1182,17 +1130,17 @@ msgstr ""
 "\n"
 "Login udløb efter %d sekunder.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " på `%.100s' fra `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " på `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1201,38 +1149,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Forkert login"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Advarsel: login genetableret efter midlertidig udelukkelse.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Sidst logget på: %s på %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Sidst logget på: %.19s på %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " fra %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Starter rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1249,9 +1188,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: kan ikke åbne DBM-filer for %s\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: begyndelsen med "
+msgstr "%s: linjen, der starter med %.16s... er for lang\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1273,17 +1212,17 @@ msgstr "%s: fejl under tilføjelse af post for %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "tilføjede %d poster, den længste var %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Brug: %s [-vf] [-p|g|sp|sg] fil\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Brug: %s [-vf] [-p|g|sp] fil\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Brug: %s [-vf] [-p|g] fil\n"
@@ -1303,16 +1242,16 @@ msgstr "Brug: sg gruppe [[-c] kommando]\n"
 msgid "unknown uid: %u\n"
 msgstr "ukendt uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "ukendt gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Beklager.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "for mange grupper\n"
@@ -1322,91 +1261,91 @@ msgstr "for mange grupper\n"
 msgid "Usage: %s [input]\n"
 msgstr "Brug: %s [inddata]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: kan ikke låse /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: kan ikke låse filer. Prøv igen senere\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: kan ikke åbne filer\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linje %d: ugyldig linje\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linje %d: kan ikke oprette GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linje %d: kan ikke oprette UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linje %d: kan ikke finde brugeren %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linje %d: kan ikke opdatere adgangskode\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linje %d: mkdir fejlede\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linje %d: chown fejlede\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linje %d: kan ikke opdatere posten\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: fejl under opdatering af filerne\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Brug: %s [-f|-s] [navn]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "      %s [-x maks] [-n min] [-w advar] [-i inact] navn\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "      %s {-l|-u|-d|-S|-e} navn\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Gammel adgangskode: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Ugyldig adgangskode for `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1415,16 +1354,16 @@ msgstr ""
 "Angiv ny adgangskode (mindst %d, højst %d tegn)\n"
 "Brug en kombination af små og store bogstaver samt tal.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Ny adgangskode: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Prøv igen.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1433,52 +1372,52 @@ msgstr ""
 "\n"
 "Advarsel: svag adgangskode (skriv den igen for at bruge det alligevel).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "De er ikke ens; prøv igen.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Adgangskoden for %s kan ikke ændres.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Beklager, adgangskoden for %s kan endnu ikke ændres.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: hukommelse opbrugt\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kan ikke udføre %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: samlingen %s understøttes ikke\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Du kan ikke ændre adgangskoden for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Du har ikke lov til at se adgangskodeoplysninger for %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Ændrer adgangskode for %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Adgangskoden for %s er uændret.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Adgangskode ændret.\n"
@@ -1493,49 +1432,49 @@ msgstr "Brug: %s [-q] [-r] [-s] [adgangskode [skygge]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Brug: %s [-q] [-r] [-s] [adgangskode]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "ugyldig linje i adgangskodefil\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "adgangskodelinjen er en dublet\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "ugyldigt brugernavn'%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "bruger %s: ingen gruppe %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "bruger %s: mappen %s eksisterer ikke\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "bruger %s: programmet %s eksisterer ikke\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "ugyldig linje i skyggeadgangskodefil\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "skyggeadgangskodelinjen er en dublet\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "fandt ingen tilsvarende linje i adgangskodefilen\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "bruger %s: seneste ændring af adgangskoden skete i fremtiden\n"
@@ -1555,17 +1494,17 @@ msgstr "%s: kan ikke åbne adgangskodefil\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: kan ikke fjerne skyggelinjen for %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: kan ikke opdatere adgangskodelinjen for  %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: kan ikke opdatere skyggefilen\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: kan ikke opdatere adgangskodefilen\n"
@@ -1575,40 +1514,40 @@ msgstr "%s: kan ikke opdatere adgangskodefilen\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: kan ikke opdatere linje for brugeren %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: kan ikke slette skyggeadgangskodefilen\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Beklager."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: skal køres fra en terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: fejl %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Ukendt id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Du er ikke autoriseret til at 'su %s'\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Angiv din adgangskode.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1617,22 +1556,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignoreret)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Ingen skal\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Adgang til at udføre su til den konto er NÆGTET.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Gik uden om adgangskode-autentifikation.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Angiv din EGEN adgangskode som autentifikation.\n"
@@ -1647,7 +1586,7 @@ msgstr "Ingen adgangskodefil\n"
 msgid "No password entry for 'root'\n"
 msgstr "Ingen adgangskodelinje for 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1657,236 +1596,216 @@ msgstr ""
 "Tryk control-d for at fortsætte den normale opstart,\n"
 "(eller angiv root-adgangskoden for systemvedligehold):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Går i systemvedligeholdelses-tilstand\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: genopbygger gruppe-databasen\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: genopbygger skyggegruppe-databasen\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: ugyldigt numerisk parameter`%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: ukendt gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: ukendt gruppe %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: kan ikke oprette ny standardværdi-fil\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: kan ikke åbne ny standardværdi-fil\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: omdøb: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: gruppen`%s' er en NIS-gruppe.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: der er angivet for mange grupper (maks %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Brug: useradd [-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "              [-d hjemmemappe] [-s skal] [-c kommentar] [-m [-k skabelon]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "              [-f inaktiv] [-e udløb ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "              [-p adgangskode] navn\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "      useradd -D [-g gruppe] [-b grundmappe] [-s skal]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: fejl under låsning af gruppefil\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: fejl under åbning af gruppefil\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: fejl under låsning af skyggegruppefil\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: fejl under åbning af skyggegruppefil\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u er ikke unik\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: kan ikke få unik uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: ugyldig grundmappe '%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: ugyldig kommentar '%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: ugyldig hjemmemappe '%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: ugyldig dato '%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: der kræves skyggeadgangskoder for -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: der kræves skyggeadgangskoder for -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: ugyldigt felt ''%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: ugyldig skal '%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: ugyldigt brugernavn '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: kan ikke genskrive adgangskodefilen\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: kan ikke genskrive skyggeadgangskodefilen\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: kunne ikke låse adgangskodefilen\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: kunne ikke åbne adgangskodefilen\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: kunne ikke låse skyggeadgangskodefilen\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: kunne ikke åbne skyggeadgangskodefilen\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: fejl under tilføjelse af ny adgangskodelinje\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: fejl under opdatering af dbm-adgangskodelinje\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: fejl under tilføjelse af ny skyggeadgangskode-linje\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: fejl under opdatering af af skyggeadgangskode-linje\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: kan ikke oprette mappen %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Der er ingen gruppe med navnet \"mail\", opretter postkø med "
 "filrettighederne 0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Kan ikke oprette postkø for brugeren %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: brugeren %s eksisterer\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1894,206 +1813,171 @@ msgstr ""
 "%s: gruppen %s eksisterer - brug -g hvis du vil tilføje denne bruger til den "
 "gruppe.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: advarsel: CREATE_HOME understøttes ikke, brug i stedet -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Brug: %s [-r] navn\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: fejl under opdatering af gruppelinje\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: kan ikke opdatere dbm-gruppelinje\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: kan ikke fjerne dbm-gruppelinje\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: kan ikke åbne gruppefilen\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: kan ikke åbne skyggegruppefilen\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: fejl under sletning af adgangskodelinje\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: fejl under sletning af skyggeadgangskodelinje\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: fejl under sletning af dbm-adgangskodelinje\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: fejl under sletning af dbm-skyggeadgangskodelinje\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: brugeren %s er logget på\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s ejes ikke af %s, fjerner ikke\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: advarsel: kan ikke fjerne "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: brugeren %s eksisterer ikke\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: brugeren %s er en NIS-bruger\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: fjerner ikke mappen %s (det ville fjerne hjemmemappen for brugeren %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: fejl under fjernelse af mappen %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Brug: %s\t[-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d hjemmemappe [-m]] [-s skal] [-c kommentar] [-l nyt_navn]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inaktiv] [-e udløb ] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p adgangskode] [-L|-U] navn\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: løbet tør for hukommelse i update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: løbet tør for hukommelse i update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: ingen flag angivet\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: skyggeadgangskoder kræves for e og -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu er ikke unik\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: fejl under ændring af adgangskodelinje\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: fejl under fjernelse af adgangskodelinje\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: fejl under tilføjelse af dbm-adgangskodelinje\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: fejl under fjernelse af dbm-adgangskodelinje\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: fejl under fjernelse af skyggeadgangskodelinje\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: fejl under fjernelse af dbm-skyggeadgangskodelinje\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: mappen %s eksisterer\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: kan ikke oprette %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: kan ikke chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: kan ikke omdøbe mappen %s til %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: advarsel: %s ejes ikke af %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "kunne ikke ændre postkassens ejer"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "kunne ikke omdøbe postkasse"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2102,20 +1986,20 @@ msgstr ""
 "\n"
 "%s: %s er uændret\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "kunne ikke låse filen"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "kunne ikke lave sikkerhedskopi"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: kunne ikke genskabe %s: %s (dine ændringer er i %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 7bb7131f7fe230a33aaf0f6e5b7995c0a0c5e398..e8614a7ca9d5fcd49acd4bf9b07cd5d56b416a08 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 4d8530b671dbccc2b7ab5183e6a555c229eb4743..7170289b62a884637ebb8075cf367d5cacf3b972 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,20 +7,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 19990709\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2002-03-11 12:02-0100\n"
 "Last-Translator: Frank Schmid <frank@cs-schmid.de>\n"
 "Language-Team: Frank Schmid <frank@cs-schmid.de>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Warnung: Gruppe %s ist unbekannt\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Warnung: zu viele Gruppen\n"
@@ -48,17 +49,17 @@ msgstr "  Verständigen Sie den Systemadministrator.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Wählen Sie ein neues Kennwort.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Ihr Kennwort läuft in %ld Tagen ab.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Ihr Kennwort läuft morgen ab.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Ihr Kennwort läuft heute ab.\n"
@@ -73,39 +74,27 @@ msgstr "tty %s kann nicht geändert werden"
 msgid "Environment overflow\n"
 msgstr "Umgebungsüberlauf\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Sie können $%s nicht ändern\n"
 
-#: libmisc/failure.c:230
-#, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s seit letzter Verbindung. Die letzte war am %s auf %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "Fehlanmeldungen"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "Fehlanmeldung"
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s seit letzter Verbindung. Die letzte war am %s auf %s.\n"
+msgstr[1] "%d %s seit letzter Verbindung. Die letzte war am %s auf %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Zu viele Verbindungen.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Kennwort entschlüsselt den Schlüssel für %s nicht.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Kann den Schlüssel von %s nicht setzen: läuft der keyserv-Dienst ?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Sie haben neue Post."
@@ -118,7 +107,7 @@ msgstr "Keine Post vorhanden."
 msgid "You have mail."
 msgstr "Sie haben Post."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Schlechtes Kennwort: %s.  "
@@ -133,20 +122,20 @@ msgstr "passwd: pam_start() fehlgeschlagen, Fehler %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Kann nicht in Verzeichnis \"%s\" wechseln\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Kein Verzeichnis, Anmeldung mit HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Kann %s nicht ausführen"
@@ -161,36 +150,32 @@ msgstr "Ungültiges Basis-Verzeichnis \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kann Basisverzeichnis nicht nach \"%s\" ändern\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) fehlgeschlagen\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Kann keinen Speicherplatz für Konfigurationsinformation reservieren.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "Konfigurationsfehler - Element '%s' unbekannt (Administrator verständigen)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Kennwort: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Kennwort von %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo an) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -199,154 +184,147 @@ msgstr ""
 "Syntax: chage [-l] [-m min_tage] [-M max_tage] [-W warnung]\n"
 "              [-I inaktiv] [-E ablauf] [-d letzter_tag] Benutzer\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Geben Sie einen neuen Wert an oder ENTER für den Standardwert\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimales Kennwortalter"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maximales Kennwortalter"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Letzte Kennwortänderung (JJJJ-MM-TT)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Warnung falls Kennwort abläuft"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Kennwort inaktiv"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Ablaufdatum des Accounts (JJJJ-MM-TT)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Letzte Kennwortänderung (JJJJ-MM-TT)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Nie\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Kennwort läuft ab :\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Kennwort inaktiv:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Account läuft ab:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: benutzen Sie nicht \"l\" mit anderen Optionen\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: Zugriff verweigert\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, fuzzy, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM-Authentifizierung fehlgeschlagen\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: Kann Kennwortdatei nicht öffnen\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: Benutzer %s unbekannt\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: Kann Shadow-Datei nicht sperren"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: Kann Shadow-Datei nicht öffnen"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Ändere die Kennwortalterung für %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: Fehler beim ändern der Felder\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: Kann Kennwortdatei nicht aktualisieren\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: Kann Shadow-Datei nicht aktualisieren\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Fehler beim aktualisieren des DBM-Kennworteintrags.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: Kann die Shadow-Datei nicht neu erstellen\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: Kann die Kennwortdatei nicht neu erstellen\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, fuzzy, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok fehlgeschlagen\n"
@@ -365,118 +343,123 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Syntax: %s [-f name] [-r raum] [-w tel_gesch] [-h tel_privat]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Name"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tName: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Raum"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefon geschäftlich"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefon privat"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Sonstiges"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kann Ihren Benutzernamen nicht feststellen.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: Kann den Benutzer `%s' nicht auf dem NIS-Client ändern.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' ist der NIS-Master für diesen Client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Zugriff verweigert\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Ändere Benutzerinformationen für %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: Name ungültig: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: Raumnummer ungültig: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: Telefon (geschäftlich) ungültig: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: Telefon (privat) ungültig: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" enthält ungültige Zeichen\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: Feld zu lang\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Kann ID nicht zu root ändern.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "Kann die Kennwortdatei nicht sperren; versuchen Sie es später nocheinmal.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Kann die Kennwortdatei nicht öffnen.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s nicht in /etc/passwd gefunden\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Fehler beim aktualisieren des Kennworteintrags.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Kann Änderungen in der Kennwortdatei nicht schreiben.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Kann die Kennwortdatei nicht entsperren.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -493,48 +476,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: kann Kennwortdatei nicht sperren\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: Kann die Shadow-Datei nicht sperren\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: Kann die Shadow-Datei nicht öffnen\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: Zeile %d: Zeile zu lang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: Zeile %d: Neues Kennwort fehlt\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: Zeile %d: Benutzer %s unbekannt\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: Zeile %d: Kann Kennworteintrag nicht aktualisieren\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: Fehler entdeckt, Änderungen werden verworfen\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: Fehler beim aktualisieren der Shadow-Datei\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: Fehler beim Aktualisieren der Kennwortdatei\n"
@@ -544,26 +527,26 @@ msgstr "%s: Fehler beim Aktualisieren der Kennwortdatei\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Syntax: %s [-s shell] [Name]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Login-Shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Sie dürfen die Shell für %s nicht ändern.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Ändere die Login-Shell für %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Ungültiger Eintrag: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s ist eine ungültige Shell.\n"
@@ -573,12 +556,12 @@ msgstr "%s ist eine ungültige Shell.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Syntax: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: WARNUNG!  Muss set-UID root sein\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: Unbekannter Benutzer\n"
@@ -592,320 +575,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Benutzer   Fehler    Maximum  Letzter\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s an %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds übrig]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds Sperre]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Benutzer %s unbekannt\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Syntax: %s [-r|-R] Gruppe\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a Benutzer] Gruppe\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d Benutzer] Gruppe\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A Benutzer,...] [-M Benutzer,...] Gruppe\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M Benutzer,...] Gruppe\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: Shadow-Gruppen-Kennwörter für -A benötigt\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Wer sind Sie?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "Unbekannte Gruppe: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Füge Benutzer %s zu Gruppe %s hinzu\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Entferne Benutzer %s aus der Gruppe %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: Mitglied %s unbekannt\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Kein tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Ändere Kennwort für die Gruppe %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Neues Kennwort: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Kennwort wiederholen: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Keine Übereinstimmung; versuchen Sie es nocheinmal"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Versuchen Sie es später nocheinmal\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: Kann Sperre nicht lesen\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: Kann Sperre nicht aus Shadow-Datei lesen\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: Kann Datei nicht öffnen\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: Eintrag kann nicht aktualisiert werden\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: Shadow-Eintrag kann nicht aktualisiert werden\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: Datei kann nicht neu erstellt werden\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: Shadow-Datei kann nicht neu erstellt werden\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: Datei kann nicht entsperrt werden\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: DBM-Dateien können nicht aktualisiert werden\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: DBM-Shadow-Dateien können nicht aktualisiert werden\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Syntax: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: Fehler beim Hinzufügen eines neuen Gruppeneintrags\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: Kann keinen neuen DBM-Gruppen-Eintrag hinzufügen\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: Name %s ist nicht eindeutig\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: GID %u ist nicht eindeutig\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: Kann keine eindeutige GID feststellen\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s ist kein gültiger Gruppenname\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: Ungültige Gruppe %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O benötigt NAME=WERT\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: Kann Gruppendatei nicht neu erstellen\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht neu erstellen\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: Kann Gruppendatei nicht sperren\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: Kann Gruppendatei nicht öffnen\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht sperren\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht öffnen\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: Gruppe %s bereits vorhanden\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Syntax: groupdel Gruppe\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: Fehler beim Entfernen des Gruppeneintrags\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: Fehler beim Entfernen des DBM-Gruppeneintrags\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: Fehler beim Entfernen des Shadow-Gruppeneintrags\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: Fehler beim Entfernen des DBM-Shadow-Gruppeneintrags\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: Kann die primäre Gruppe des Benutzers nicht entfernen.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: Gruppe %s existiert nicht\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: Gruppe %s ist eine NIS-Gruppe\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s ist der NIS-Master\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Syntax: groupmod [-g gid [-o]] [-n Name] Gruppe\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s nicht in /etc/group gefunden\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: Kann DBM-Shadow-Gruppeneintrag nicht hinzufügen\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u ist keine eindeutige GID\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s ist kein eindeutiger Name\n"
@@ -915,110 +863,105 @@ msgstr "%s: %s ist kein eindeutiger Name\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Syntax: %s [-r] [-s] [Gruppe [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Syntax: %s [-r] [-s] [Gruppe]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nein"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: Kann Datei %s nicht sperren\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: Kann Datei %s nicht öffnen\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "Ungültiger Eintrag in Gruppendatei\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "Zeile `%s' löschen? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "Doppelter Gruppeneintrag\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "Gruppenname `%s' ungültig\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "Gruppe %s: Kein Benutzer %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "Mitglied `%s' löschen? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "Ungültiger Shadow-Gruppeneintrag\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "Doppelter Shadow-Gruppeneintrag\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "Kein passender Gruppeneintrag\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "Shadow-Gruppe %s: Benutzer %s ist kein Administrator\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "Administratives Mitglied `%s' löschen?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "Shadow-Gruppe %s: kein Benutzer %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: Kann Datei %s nicht aktualisieren\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: Die Dateien wurden aktualisiert; starten Sie mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: Die Dateien wurden aktualisiert\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: keine Änderungen\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: Die Dateien wurden aktualisiert\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1034,37 +977,37 @@ msgstr "%s: Kann Gruppendatei nicht öffnen\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht sperren\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht öffnen\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: Kann Shadow-Gruppe %s nicht entfernen\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: Kann Shadow-Eintrag für %s nicht aktualisieren\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: Kann Gruppeneintrag %s nicht aktualisieren\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht aktualisieren\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: Kann Gruppendatei nicht aktualisieren\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht löschen\n"
@@ -1084,52 +1027,52 @@ msgstr "Syntax: id\n"
 msgid " groups="
 msgstr " Gruppen="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Benutzer         Port     Von              Letzter\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Benutzer                Port     Letzter\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nie angemeldet **"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Syntax: %s [-p] [Name]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "        %s [-p] [-h Host] [-f Name]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "        %s [-p] -r Host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Ungültige Anmeldezeit\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1138,7 +1081,7 @@ msgstr ""
 "\n"
 "System wegen Wartungsarbeiten geschlossen\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1147,7 +1090,7 @@ msgstr ""
 "\n"
 "[Trennung abgebrochen -- root-Login erlaubt.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1156,17 +1099,17 @@ msgstr ""
 "\n"
 "Login: Timeout nach %d Sekunden.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " an `%.100s' von `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " an `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1175,38 +1118,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login fehlerhaft"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Warnung: Login reaktiviert nach temporärer Sperre.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Letzte Verbindung: %s an %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Letzte Verbindung: %.19s an %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " von %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Starte rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1247,17 +1181,17 @@ msgstr "%s: Fehler beim Hinzufügen von "
 msgid "added %d entries, longest was %d\n"
 msgstr "%d Einträge hinzugefügt, der längste war %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Syntax: %s [-vf] [-p|g|sp|sg] Datei\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Syntax: %s [-vf] [-p|g|sp] Datei\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Syntax: %s [-vf] [-p|g] Datei\n"
@@ -1277,16 +1211,16 @@ msgstr "Syntax: sg Gruppe [[-c] Befehl]\n"
 msgid "unknown uid: %u\n"
 msgstr "Unbekannte UID: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "Unbekannte GID: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Entschuldigung.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "zu viele Gruppen\n"
@@ -1296,91 +1230,91 @@ msgstr "zu viele Gruppen\n"
 msgid "Usage: %s [input]\n"
 msgstr "Syntax: %s [Eingabe]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: Kann /etc/passwd nicht sperren.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: Kann Dateien nicht sperren, versuchen Sie es später nocheinmal\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: Kann Dateien nicht öffnen\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: Zeile %d: Ungültige Zeile\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: Zeile %d: Kann GID nicht erstellen\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: Zeile %d: Kann UID nicht erstellen\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: Zeile %d: Kann Benutzer %s nicht finden\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: Zeile %d: Kann Kennwort nicht aktualisieren\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: Zeile %d: mkdir fehlgeschlagen\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: Zeile %d: chown fehlgeschlagen\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: Zeile %d: Kann Eintrag nicht aktualisieren\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: Fehler beim Aktualisieren von Dateien\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Syntax: %s [-f|-s] [Name]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "        %s [-x max] [-n min] [-w Warnung] [-i Inaktiv] Name\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "        %s {-l|-u|-d|-S|-e} Name\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Altes Kennwort: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Falsches Kennwort für `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1390,16 +1324,16 @@ msgstr ""
 "Bitte benutzen Sie eine Kombination von Groß-/Kleinbuchstaben und\n"
 "Ziffern.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Neues Kennwort: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Versuchen Sie es nocheinmal...\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1409,52 +1343,52 @@ msgstr ""
 "Warnung: Schlechtes Kennwort (Geben Sie es nocheinmal ein, um\n"
 "es trotzdem zu verwenden).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Sie sind nicht identisch; versuchen Sie es nocheinmal...\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Das Kennwort für %s kann nicht geändert werden.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Das Kennwort für %s kan z.Zt. nicht geändert werden.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: Zu wenig Speicher\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kann %s nicht ausführen"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: Speicher %s nicht unterstützt\n"
 
-#: src/passwd.c:914
-#, c-format
-msgid "You may not change the password for %s.\n"
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Sie dürfen das Kennwort für %s nicht ändern.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Ändere Kennwort für %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Das Kennwort für %s wurde nicht geändert.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Kennwort geändert.\n"
@@ -1469,49 +1403,49 @@ msgstr "Syntax: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Syntax: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "Ungültiger Eintrag in Kennwortdatei\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "Doppelter Kennworteintrag\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "Ungültiger Benutzername '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "Benutzer %s: Keine Gruppe %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "Benutzer %s: Verzeichnis %s nicht vorhanden\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "Benutzer %s: Programm %s nicht vorhanden\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "Ungültiger Shadow-Kennworteintrag\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "Doppelter Shadow-Kennworteintrag\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "Kein passender Kennworteintrag gefunden\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "Benutzer %s: Letzte Kennwortänderung liegt in der Zukunft\n"
@@ -1531,17 +1465,17 @@ msgstr "%s: Kann Kennwortdatei nicht öffnen\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: Kann Shadow-Eintrag für %s nicht löschen\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: Kann Kennworteintrag für %s nicht aktualisieren\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: Kann Shadow-Datei nicht aktualisieren\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: Kann Kennwortdatei nicht aktualisieren\n"
@@ -1551,42 +1485,42 @@ msgstr "%s: Kann Kennwortdatei nicht aktualisieren\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: Kann Eintrag für Benutzer %s nicht aktualisieren\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: Kann Shadow-Datei nicht löschen\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Entschuldigung."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: Muss von einem Terminal gestartet werden\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: Fehler %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Unbekannte ID: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, fuzzy, c-format
 msgid "You are not authorized to su %s\n"
 msgstr ""
 "Sie dürfen su %s nicht\n"
 " "
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Geben Sie Ihr eigenes Kennwort an.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1595,22 +1529,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignoriert)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Keine Shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Zugriff auf su zu diesem Account VERWEIGERT.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Kennwort-Authentifizierung umgangen.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Bitte geben Sie Ihr EIGENES Kennwort als Authentifizierung an.\n"
@@ -1625,7 +1559,7 @@ msgstr "Keine Kennwortdatei\n"
 msgid "No password entry for 'root'\n"
 msgstr "Kein Kennworteintrag für 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1635,234 +1569,214 @@ msgstr ""
 "Geben Sie Strg-D ein, um normal zu starten\n"
 "(oder geben Sie das root-Kennwort ein zur Systemwartung): "
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Starte im Systemwartungs-Modus\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: Baue die Gruppendatenbank neu auf\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: Baue die Shadow-Gruppendatenbank neu auf\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: Ungültiges nummerisches Argument `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: GID %s unbekannt\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: Gruppe %s unbekannt\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: Kann keine neue Datei mit Standardwerten erstellen\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: Kann die neue Datei mit Standardwerten nicht öffnen\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: Umbenennen: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: Die Gruppe `%s' ist eine NIS-Gruppe.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: Zu viele Gruppen angegeben (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Syntax: useradd [-u uid [-o]] [-g Gruppe] [-G Gruppe,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                [-d home] [-s Shell] [-c Kommentar] [-m [-k Vorlage]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                [-f inaktiv] [-e Ablauf]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                [-p Kennwort] Name\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "        useradd -D [-g Gruppe] [-b Basis] [-s Shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: Kann Gruppendatei nicht sperren\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: Kann Gruppendatei nicht öffnen\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht sperren\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht öffnen\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: UID %u ist nicht eindeutig\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: Kann keine eindeutige UID finden\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: Ungültiges Basisverzeichnis `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: Kommentar `%s' ungültig\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: Homeverzeichnis `%s' ungültig\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: Datum `%s' ungültig\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: Shadow-Kennwörter für -e benötigt\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: Shadow-Kennwörter für -f benötigt\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: Feld `%s' ungültig\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: Shell `%s' ist ungültig\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: Benutzername `%s' ungültig\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: Kann Kennwortdatei nicht neu erstellen\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: Kann Shadow-Kennwortdatei nicht neu erstellen\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: Kann Kennwortdatei nicht sperren\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: Kann Kennwortdatei nicht öffnen\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: Kann Shadow-Kennwortdatei nicht sperren\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: Kann Shadow-Kennwortdatei nicht öffnen\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: Fehler beim Hinzufügen eines neuen Kennworteintrags\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: Fehler beim Aktualisieren des DBM-Kennworteintrags\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: Fehler beim Hinzufügen des neuen Shadow-Kennworteintrags\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: Fehler beim Aktualisieren des Shadow-DBM-Kennworteintrags\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: Kann Verzeichnis %s nicht erstellen\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: Kann Eintrag für Benutzer %s nicht aktualisieren\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: Benutzer %s vorhanden\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1870,208 +1784,173 @@ msgstr ""
 "%s: Gruppe %s vorhanden - Wenn Sie den Benutzer zur Gruppe\n"
 "hinzufügen wollen, benutzen Sie -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: Warnung: CREATE_HOME nicht unterstützt, verwenden Sie stattdessen -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Syntax: %s [-r] Name\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: Fehler beim Aktualisieren des Gruppeneintrags\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: Kann DBM-Gruppeneintrag nicht aktualisieren\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: Kann DBM-Gruppeneintrag nicht entfernen\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: Kann Gruppendatei nicht öffnen\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: Kann Shadow-Gruppendatei nicht öffnen\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: Fehler beim Löschen des Kennworteintrags\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: Fehler beim Löschen des Shadow-Kennworteintrags\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: Fehler beim Löschen des DBM-Kennworteintrags\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: Fehler beim Löschen des Shadow-DBM-Kennworteintrags\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: Benutzer %s ist z.Zt. angemeldet\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s nicht im Besitz von %s, Löschen abgebrochen\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: Warnung: Kann nicht löschen "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: Benutzer %s nicht vorhanden\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: Benutzer %s ist ein NIS-Benutzer\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: Verzeichnis %s wird nicht gelöscht (würde das Homeverzeichnis des\n"
 "Benutzers %s löschen\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: Fehler beim Löschen des Verzeichnisses %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Syntax: %s\t[-u uid [-o]] [-g Gruppe] [-G Gruppe,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d Home [-m]] [-s Shell] [-c Kommentar] [-l Neuer_Name]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inaktiv] [-e Ablauf] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p Kennwort] [-L|-U] Name\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: Zu wenig Speicher in update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: Zu wenig Speicher in update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: Keine Optionen angegeben\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: Shadow-Kennwörter für -e und -f benötigt\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: UID %lu ist nicht eindeutig\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: Fehler beim Ändern des Kennworteintrags\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: Fehler beim Löschen des Kennworteintrags\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: Fehler beim Hinzufügen des DBM-Kennworteintrags\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: Fehler beim Löschen des DBM-Kennworteintrags\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: Fehler beim Löschen des Shadow-Kennworteintrags\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: Fehler beim Entfernen des Shadow-DBM-Kennworteintrags\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: Verzeichnis %s vorhanden\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: Kann %s nicht erstellen\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: Kann den Besitzer von %s nicht ändern\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: Kann das Verzeichnis %s nicht nach %s umbenennen\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: Warnung: %s nicht im Besitz von %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "Fehler beim Ändern des Postfach-Besitzers"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "Fehler beim Umbenennen des Postfachs"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2080,22 +1959,22 @@ msgstr ""
 "\n"
 "%s: %s wurde nicht geändert\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Datei konnte nicht gesperrt werden"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Sicherung konnte nicht erstellt werden"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 "%s: Wiederherstellung von %s fehlgeschlagen: %s\n"
 "(Ihre Änderungen befinden sich in %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 842a8cb9613dea90b137a1cc499d3b01d1729096..f349e12d6a847bdd31147bebce5e7b332077ae5d 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index dd7aad0fc5630d20c50f083521836ccc74165370..6cac7e503878e0d4cea7010fbc1114c5599eb893 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -6,20 +6,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Shadow 980726\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 1998-12-28 20:35:31+0100\n"
 "Last-Translator: Nikos Mavroyanopoulos <nmav@i-net.paiko.gr>\n"
 "Language-Team: Hellenic <el@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Προειδοποίηση: άγνωστη ομάδα %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Προειδοποίηση: Πολλές ομάδες\n"
@@ -47,17 +48,17 @@ msgstr "  Επικοινωνήστε με τον διαχειριστή του 
 msgid "  Choose a new password.\n"
 msgstr "   Επιλέξτε ένα νέο συνθηματικό.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Το συνθηματικό σας θα λήξει σε %ld μέρες.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Το συνθηματικό σας θα λήξει αύριο.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Το συνθηματικό σας θα λήξει σήμερα.\n"
@@ -72,41 +73,27 @@ msgstr "Αδυναμία αλλαγής tty %s"
 msgid "Environment overflow\n"
 msgstr "Υπερχείλιση περιβάλλοντος\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Δεν μπορείτε να αλλάξετε το $%s\n"
 
-#: libmisc/failure.c:230
-#, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s από την τελευταία είσοδο. Η τελευταία ήταν στις %s στο %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "αποτυχίες"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "αποτυχία"
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s από την τελευταία είσοδο. Η τελευταία ήταν στις %s στο %s.\n"
+msgstr[1] "%d %s από την τελευταία είσοδο. Η τελευταία ήταν στις %s στο %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Πολλές είσοδοι στο σύστημα.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Το συνθηματικό δεν αποκωδικοποιεί το μυστικό κλειδί για το(ν) %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Δεν είναι δυνατόν να τεθεί το μυστικό κλειδί του %s: Εκτελείται ο\n"
-"διακομιστής κλειδιών;\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Έχετε νέα γράμματα."
@@ -119,7 +106,7 @@ msgstr "Κανένα γράμμα."
 msgid "You have mail."
 msgstr "Έχετε γράμματα."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Κακό συνθηματικό: %s.  "
@@ -134,20 +121,20 @@ msgstr "συνθηματικό: pam_start() απέτυχε, σφάλμα %d\n"
 msgid "passwd: %s\n"
 msgstr "συνθηματικό: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Αδυναμία αλλαγής καταλόγου στον \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Χωρίς κατάλογο, εισαγωγή με ΜΗΤΡΙΚΟ_ΚΑΤΑΛΟΓΟ=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Αδυναμία εκτέλεσης %s"
@@ -162,37 +149,33 @@ msgstr "Μη έγκυρος πρωταρχικός κατάλογος \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Αδυναμία αλλαγής του πρωταρχικού καταλόγου σε \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "Η κλήση malloc(%d) απέτυχε\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Αδυναμία δέσμευσης χώρου για πληροφορίες διαμόρφωσης.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "σφάλμα διαμόρφωσης - άγνωστο αντικείμενο '%s' (ειδοποιείστε τον "
 "διαχειριστή)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Συνθηματικό: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Του %s το Συνθηματικό: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -201,155 +184,147 @@ msgstr ""
 "Χρήση: chage [-l] [-m ελαχ_μέρες] [-M μεγ_μέρες] [-W προειδ.]\n"
 "             [-I ανενεργό] [-E λήξη] [-d τελευταία_μέρα] χρήστης\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Εισάγετε την νέα τιμή, ή πιέστε ENTER για την προκαθορισμένη\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Μικρότερη διάρκεια συνθηματικού"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Μέγιστη διάρκεια συνθηματικού"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Τελευταία αλλαγή συνθηματικού (ΧΧΧΧ-ΜΜ-ΗΗ)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Προειδοποίηση λήξης συνθηματικού"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Ανενεργό συνθηματικό"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Ημερομηνία Λήξης Λογαριασμού (ΧΧΧΧ-ΜΜ-ΗΗ)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Τελευταία αλλαγή συνθηματικού (ΧΧΧΧ-ΜΜ-ΗΗ)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Ποτέ\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Το συνθηματικό λήγει:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Ανενεργό συνθηματικό:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Το συνθηματικό λήγει:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: Να μην συμπεριλαμβάνετε το \"l\" με τις άλλες ενδείξεις\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: άδεια απορρίφθηκε\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, fuzzy, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: Σφάλμα κατά την προσθήκη μεθόδου εξακρίβωσης\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: αδυναμία ανοίγματος του αρχείου συνθηματικών\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: άγνωστος χρήστης %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, fuzzy, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, fuzzy, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: αδυναμία ανοίγματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Αλλαγή πληροφοριών χρόνου για τον %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: Σφάλμα κατά την αλλαγή πεδίων\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: αδυναμία ανανέωσης αρχείου συνθηματικών\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: αδυναμία ανανέωσης του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr ""
-"Σφάλμα κατά την ανανέωση της καταχώρησης στο dbm αρχείο συνθηματικών.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: αδυναμία επανεγγραφής αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: αδυναμία επανεγγραφής αρχείου συνθηματικών\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, fuzzy, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: αδυναμία ξεκλειδώματος αρχείου\n"
@@ -370,117 +345,122 @@ msgstr ""
 "Χρήση: %s [-f πλήρες_όνομα] [-r αριθμ_δωματίου] [-w τηλ_δωματίου]\n"
 "[-h τηλ_οικίας]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Πλήρες όνομα"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tΠλήρες Όνομα: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Αριθμός δωματίου"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Τηλέφωνο Εργασίας"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Τηλέφωνο Οικίας"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Αλλο"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Δεν είναι δυνατόν να καθοριστεί το όνομα χρήστη σας.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: αδυναμία αλλαγής χρήστη `%s' στον NIS εξυπηρετούμενο.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' είναι ο κύριος διακομιστής NIS γι'αυτόν τον εξυπηρετούμενο.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: άδεια απορρίφθηκε\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Αλλαγή πληροφοριών χρήστη για τον %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: Μη έγκυρο όνομα: `%s'\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: Μη έγκυρος αριθμός δωματίου: `%s'\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: Μη έγκυρο τηλέφωνο εργασίας: `%s'\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: Μη έγκυρο τηλέφωνο οικίας: `%s'\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" περιέχει μη έγκυρους χαρακτήρες\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: Πολύ μακριά πεδία\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Αδυναμία αλλαγής ταυτότητας χρήστη σε root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Αδυναμία κλειδώματος του αρχείου συνθηματικών. Δοκιμάστε αργότερα.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Αδυναμία ανοίγματος του αρχείου συνθηματικών.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: Ο %s δεν βρέθηκε στο /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Σφάλμα κατά την ανανέωση καταχώρησης στο αρχείο συνθηματικών.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Αδυναμία εισαγωγής των αλλαγών στο αρχείο συνθηματικών.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Αδυναμία ξεκλειδώματος του αρχείου συνθηματικών\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -497,49 +477,49 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου συνθηματικών\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: αδυναμία ανοίγματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: γραμμή %d: πολύ μεγάλη γραμμή\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: γραμμή %d: έλλειψη νέου συνθηματικού\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: γραμμή %d: άγνωστος χρήστης %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: γραμμή %d: αδυναμία ανανέωσης καταχώρησης συνθηματικού\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: Ανιχνέυτηκε σφάλμα, οι αλλαγές αγνοήθηκαν\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr ""
 "%s: Σφάλμα κατά την ανανέωση καταχωρήσεων στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: Σφάλμα κατά την ανανέωση καταχωρήσεων στο αρχείο συνθηματικών\n"
@@ -549,26 +529,26 @@ msgstr "%s: Σφάλμα κατά την ανανέωση καταχωρήσεω
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Χρήση: %s [-s φλοιός] [όνομα]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Κέλυφος Εισόδου"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Δεν μπορείτε να αλλάξετε το φλοιό για το(ν) %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Αλλάγή του φλοιού για τον %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Μη έγκυρη καταχώρηση: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s δεν είναι έγκυρος φλοιός.\n"
@@ -578,13 +558,13 @@ msgstr "%s δεν είναι έγκυρος φλοιός.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Χρήση: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr ""
 "%s: ΠΡΟΣΟΧΗ!  Πρέπει να έχει τεθεί το bit παραχώρησης ταυτότητας root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: άγνωστος χρήστης\n"
@@ -598,326 +578,288 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Όνομα_Χρήστη Αποτυχίες Μέγιστο Τελευταία\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s στο %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds απέμειναν]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds κλείδωμα]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Αγνωστος χρήστης: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Χρήση: %s [-r|-R] ομάδα\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a χρήστης] ομάδα\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d χρήστης] ομάδα\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A χρήστης,...] [-M χρήστης,...] ομάδα\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M χρήστης,...] ομάδα\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: σκιώδη συνθηματικά ομάδων απαιτούνται για το -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Ποιος είσαι;\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "άγνωστη ομάδα: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Προσθήκη του χρήστη %s στην ομάδα %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Διαγράφη του χρήστη %s από την ομάδα %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: άγνωστο μέλος %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Δεν είναι tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Αλλαγή του συνθήματος για την ομάδα %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Νέο Συνθηματικό: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Επανεισάγετε το νέο συνθηματικό: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Δεν ταιριάζουν. Δοκιμάστε ξανά"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Ξαναδοκιμάστε αργότερα\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: Αδυναμία δημιουργίας κλειδώματος\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr ""
 "%s: Αδυναμία δημιουργίας κλειδώματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: αδυναμία ανοίγματος του αρχείου\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: αδυναμία επανεγγραφής αρχείου\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: αδυναμία επανεγγραφής αρχείου σκιωδών συνθηματικών\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: αδυναμία ξεκλειδώματος αρχείου\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: αδυναμία ανανέωσης των DBM αρχείων\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: αδυναμία ανανέωσης των DBM αρχείων σκιωδών συνθηματικών\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Χρήση: groupadd [-g gid [-o]] [-f] ομάδα\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: Σφάλμα κατά την προσθήκη νέας καταχώρησης στο αρχείο ομάδων\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: αδυναμία προσθήκης νέας dbm καταχώρησης στο αρχείο ομάδων\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: Το όνομα %s δεν είναι μοναδικό\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: Το uid %u δεν είναι μοναδικό\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: αδυναμία εύρεσης μοναδικού gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: Το %s δεν είναι έγκυρο όνομα ομάδας\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: Μη έγκυρη ομάδα `%s'\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O απαιτεί ΌΝΟΜΑ=ΤΙΜΗ\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: αδυναμία επανεγγραφής του αρχείου ομάδων\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: αδυναμία επανεγγραφής του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: Αδυναμία κλειδώματος του αρχείου ομάδων\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: Αδυναμία ανοίγματος του αρχείου ομάδων\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: Αδυναμία κλειδώματος του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: Αδυναμία ανοίγματος του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: Η ομάδα %s υπάρχει\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Χρήση: groupdel ομάδα\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: Σφάλμα κατά την διαγραφή καταχώρησης ομάδας\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: Σφάλμα κατά την διαγραφή καταχώρησης στο dbm αρχείο ομάδων\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr ""
 "%s: Σφάλμα κατά την αφαίρεση καταχώρησης στο αρχείο σκιωδών συνθηματικών "
 "ομάδων\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την αφαίρεση καταχώρησης στο αρχείο σκιωδών συνθηματικών\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: αδυναμία αφαίρεσης της πρωταρχικής ομάδας του χρήστη.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: Η ομάδα %s δεν υπάρχει\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: Η ομάδα %s είναι NIS ομάδα\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: Ο %s είναι ο κύριος διακομιστής NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Χρήση: groupmod [-g gid [-o]] [-n όνομα] ομάδα\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, fuzzy, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: Ο %s δεν βρέθηκε στο /etc/passwd\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-"%s: αδυναμία προσθήκης νέας dbm καταχώρησης στο αρχείο σκιωδών συνθηματικών "
-"ομάδων\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, fuzzy, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: Το %ld δεν είναι μοναδικό gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: Το %s δεν είναι μοναδικό όνομα\n"
@@ -927,110 +869,105 @@ msgstr "%s: Το %s δεν είναι μοναδικό όνομα\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Χρήση: %s [-r] [-s] [group [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Χρήση: %s [-r] [-s] [group]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Οχι"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: αδυναμία ανοίγματος αρχείου %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "Μη έγκυρη καταχώρηση στο αρχείο ομάδων\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "διαγραφή γραμμής `%s'; "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "αντιγραφή καταχώρησης στο αρχείο ομάδων\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "Μη έγκυρο όνομα ομάδας `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "ομάδα %s: δεν υπάρχει χρήστης %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "διαγραφή μέλους `%s'; "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "Μη έγκυρη καταχώρηση στο αρχείο σκιωδών συνθηματικών ομάδων\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "αντιγραφή καταχώρησης στο αρχείο σκιωδών συνθηματικών ομάδων\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "Δεν βρέθηκε καταχώρηση στο αρχείο ομάδων που να ταιριάζει\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "σκιώδης ομάδα %s: Δεν υπάρχει διαχειριστής χρήστης %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "διαγραφή διαχειριστικού μέλους `%s'; "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "σκιώδης ομάδα %s: δεν υπάρχει χρήστης %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: αδυναμία ανανέωσης αρχείου %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: τα αρχεία ανανεώθηκαν. Εκτελέστε mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: τα αρχεία ανανεώθηκαν\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: καμιά αλλαγή\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: τα αρχεία ανανεώθηκαν\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1046,41 +983,41 @@ msgstr "%s: αδυναμία ανοίγματος του αρχείου ομάδ
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: αδυναμία ανοίγματος του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr ""
 "%s: αδυναμία αφαίρεσης  της ομάδας %s, από το αρχείο σκιωδών συνθηματικών\n"
 "ομάδων\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr ""
 "%s: αδυναμία ανανέωσης καταχώρησης στο αρχείο σκιωδών συνθηματικών για τον %"
 "s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης για την ομάδα %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: αδυναμία ανανέωσης του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: αδυναμία ανανέωσης για το αρχείο ομάδων\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr ""
@@ -1101,52 +1038,52 @@ msgstr "Χρήση: id\n"
 msgid " groups="
 msgstr " ομάδες="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Όνομα_Χρήστη     Θύρα     Από              Τελευταία\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Όνομα_Χρήστη            Θύρα     Τελευταία\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Καμιά είσοδος στο σύστημα**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Χρήση: %s [-p] [όνομα]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h σύστημα] [-f όνομα]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r σύστημα\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Εσφαλμένη ώρα εισόδου\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1155,7 +1092,7 @@ msgstr ""
 "\n"
 "Το σύστημα έκλεισε για συντήρηση ρουτίνας\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1164,7 +1101,7 @@ msgstr ""
 "\n"
 "[Παράκαμψη αποσύνδεσης -- Η είσοδος του root επετράπη.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1173,17 +1110,17 @@ msgstr ""
 "\n"
 "Η διαδικασία εισόδου τερματίστηκε μετά από %d δευτερόλεπτα.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " στο `%.100s' από `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " στο `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1192,39 +1129,30 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Διαδικασία εισόδου απέτυχε"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 "Προειδοποίηση: Η είσοδος επανενεργοποιήθηκε μετά από προσωρινό αποκλεισμό.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Τελευταία είσοδος: %s στο %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Τελευταία είσοδος: %.19s στο %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " από %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Έναρξη rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1267,17 +1195,17 @@ msgstr "%s: Σφάλμα κατά την προσθήκη καταχώρησης
 msgid "added %d entries, longest was %d\n"
 msgstr "προστέθηκαν %d καταχωρήσεις, η μεγαλύτερη ήταν %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Χρήση: %s [-vf] [-p|g|sp|sg] αρχείο\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Χρήση: %s [-vf] [-p|g|sp] αρχείο\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Χρήση: %s [-vf] [-p|g] αρχείο\n"
@@ -1297,16 +1225,16 @@ msgstr "Χρήση: sg ομάδα [[-c] εντολή]\n"
 msgid "unknown uid: %u\n"
 msgstr "άγνωστο uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "άγνωστο gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Λυπάμαι.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "πάρα πολλές ομάδες\n"
@@ -1316,91 +1244,91 @@ msgstr "πάρα πολλές ομάδες\n"
 msgid "Usage: %s [input]\n"
 msgstr "Χρήση: %s [είσοδος]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: αδυναμία κλειδώματος του /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: αδυναμία κλειδώματος αρχείων, ξαναδοκιμάστε αργότερα\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: αδυναμία ανοίγματος των αρχείων\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: γραμμή %d: μη έγκυρη γραμμή\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: γραμμή %d: αδυναμία δημιουργίας GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: γραμμή %d: αδυναμία δημιουργίας UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: γραμμή %d: αδυναμία εύρεσης χρήστη %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: γραμμή %d: αδυναμία ανανέωση συνθηματικού\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: γραμμή %d: αποτυχία δημιουργίας καταλόγου(mkdir)\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: γραμμή %d: αποτυχία αλλαγής ιδιοκτήτη(chown)\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: γραμμή %d: αδυναμία ανανέωσης καταχώρησης\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: Σφάλμα κατά την ενημέρωση αρχείων\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Χρήση: %s [-f|-s] [όνομα]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x μεγ.] [-n ελάχ.] [-w προειδ.] [-i ανενεργό] όνομα\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} όνομα\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Παλιό Συνθηματικό: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Εσφαλμένο συνθηματικό για τον `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1410,16 +1338,16 @@ msgstr ""
 "Παρακαλώ χρησιμοποιήστε ένα συνδυασμό από κεφαλαία και μικρά γράμματα\n"
 "καθώς και αριθμούς.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Νέο Συνθηματικό: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Ξαναδοκιμάστε.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1428,52 +1356,52 @@ msgstr ""
 "\n"
 "Προσοχή: αδύναμο συνθηματικό (εισάγετέ το πάλι για να το χρησιμοποιήσετε).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Δεν ταιριάζουν. Δοκιμάστε ξανά.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Το συνθηματικό για τον %s δεν μπορεί να αλλάξει.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Συγνώμη, το συνθηματικό για τον %s δεν μπορεί να αλλάξει ακόμη.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: δεν υπάρχει ελεύθερη μνήμη\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Αδυναμία εκτέλεσης του %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: η αποθήκη %s δεν υποστηρίζεται\n"
 
-#: src/passwd.c:914
-#, c-format
-msgid "You may not change the password for %s.\n"
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Δεν μπορείτε να αλλάξετε το συνθηματικό για το(ν) %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Αλλαγή συνθηματικού για τον %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Το συνθηματικό για τον %s δεν άλλαξε.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Το συνθηματικό άλλαξε.\n"
@@ -1488,49 +1416,49 @@ msgstr "Χρήση: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Χρήση: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "Μη έγκυρη καταχώρηση στο αρχείο συνθηματικών\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "αντιγραφή καταχώρησης στο αρχείο συνθηματικών\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "Μη έγκυρο όνομα χρήστη '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "χρήστης %s: καμιά ομάδα %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "χρήστης %s: ο κατάλογος %s δεν υπάρχει\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "χρήστης %s: το πρόγραμμα %s δεν υπάρχει\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "Μη έγκυρη καταχώρηση στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "αντιγραφή καταχώρησης στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "Δεν βρέθηκε καταχώρηση στο αρχείο συνθηματικών που να ταιρίαζει\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "χρήστης %s: τελευταία αλλαγή συνθηματικού στο μέλλον\n"
@@ -1552,17 +1480,17 @@ msgstr ""
 "%s: αδυναμία ανανέωσης καταχώρησης στο αρχείο σκιωδών συνθηματικών για τον %"
 "s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης συνθηματικού για τον %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: αδυναμία ανανέωσης αρχείου συνθηματικών\n"
@@ -1572,40 +1500,40 @@ msgstr "%s: αδυναμία ανανέωσης αρχείου συνθηματ
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης για τον χρήστη %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: Δεν είναι δυνατόν να διαγραφεί το αρχείο σκιωδών συνθηματικών\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Λυπάμαι."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: πρέπει να εκτελεστεί από τερματικό\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: σφάλμα %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Αγνωστη ταυτότητα: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Δεν έχετε άδεια για su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Εισάγετε το δικό σας συνθηματικό.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1614,22 +1542,22 @@ msgstr ""
 "%s: %s\n"
 "(Αγνοήθηκε)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Δεν υπάρχει φλοιός\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Πρόσβαση στη su σε αυτόν τον λογαριασμό ΑΡΝΗΘΗΚΕ.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Παράκαμψη εξακρίβωσης με συνθηματικό.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Παρακαλώ εισάγετε το ΔΙΚΟ σας συνθηματικό για εξακρίβωση.\n"
@@ -1644,7 +1572,7 @@ msgstr "Δεν υπάρχει αρχείο συνθηματικών\n"
 msgid "No password entry for 'root'\n"
 msgstr "Δεν υπάρχει καταχώρηση συνθηματικού για τον 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1654,457 +1582,393 @@ msgstr ""
 "Πληκτρολογήστε control-d για να συνεχίσετε με την κανονική έναρξη,\n"
 "(ή δώστε το συνθηματικό του root για συντήρηση του συστήματος):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Έναρξη Κατάστασης Συντήρησης Συστήματος\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: επανακτίστε την βάση δεδομένων ομάδων\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: επανακτίστε την βάση δεδομένων των σκιωδών συνθηματικών ομάδων\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: Μη έγκυρη αριθμητική παράμετρος `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: άγνωστο gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: άγνωστη ομάδα %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: αδυναμία δημιουργίας νέου αρχείου προκαθορισμένων ρυθμίσεων\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, fuzzy, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: αδυναμία δημιουργίας νέου αρχείου προκαθορισμένων ρυθμίσεων\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: μετονομασία: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: Η ομάδα `%s' είναι NIS ομάδα.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: Προσδιορίστηκαν υπερβολικές ομάδες (μεγ. %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Χρήση: useradd [-u uid [-o]] [-g ομάδα] [-G ομάδα,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "               [-d μητρικός_κατάλογος] [-s φλοιός] [-c σχόλιο]\n"
 "               [-m [-k κανόνας]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "               [-f ανενεργό] [-e λήξη]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "               [-p συνθηματικό] όνομα\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       useradd -D [-g ομάδα] [-b βάση] [-s φλοιός]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: Σφάλμα κατά το κλείδωμα του αρχείου ομάδων\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: Σφάλμα κατά το άνοιγμα του αρχείου ομάδων\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: Σφάλμα κατά το κλείδωμα του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: Σφάλμα κατά το άνοιγμα του αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: Το uid %u δεν είναι μοναδικό\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: αδυναμία ευρεσης μοναδικού uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: Μη έγκυρος κατάλογος βάσης `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: Μη έγκυρο σχόλιο `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: Μη έγκυρος μητρικός κατάλογος χρήστη `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: Μη έγκυρη ημερομηνία `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: σκιώδη συνθηματικά απαιτούνται για το -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: σκιώδη συνθηματικά απαιτούνται για -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: Μη έγκυρο πεδίο `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: Μη έγκυρος φλοιός `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: Μη έγκυρο όνομα χρήστη `%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: αδυναμία επανεγγραφής του αρχείου συνθηματικών\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: αδυναμία επανεγγραφής του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: Αδυναμία κλειδώματος του αρχείου συνθηματικών\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: Αδυναμία ανοίγματος του αρχείου συνθηματικών\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: αδυναμία κλειδώματος του αρχείου σκιωδών συνθηματικών\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: αδυναμία ανοίγματος αρχείου σκιωδών συνθηματικών\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 "%s: Σφάλμα κατά την προσθήκη νέας καταχώρησης στο αρχείο συνθηματικών\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την ανανέωση καταχωρήσεων στο dbm αρχείο συνθηματικών\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 "%s: Σφάλμα κατά την προσθήκη νέας καταχώρησης στο αρχείο σκιωδών "
 "συνθηματικών\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την ανανέωση καταχωρήσεων στο dbm αρχείο σκιωδών "
-"συνθηματικών\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: αδυναμία δημιουργίας καταλόγου %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: αδυναμία ανανέωσης καταχώρησης για τον χρήστη %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: Ο χρήστης %s υπάρχει\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Χρήση: %s [-r] όνομα\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: Σφάλμα κατά την ανανέωση καταχωρήσης ομάδας\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: αδυναμία ανανέωσης της dbm καταχώρησης στο αρχείο ομάδων\n"
-
-#: src/userdel.c:214
-#, fuzzy, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: αδυναμία ανανέωσης της dbm καταχώρησης στο αρχείο ομάδων\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: αδυναμία ανοίγματος αρχείου ομάδων\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: αδυναμία ανοίγματος αρχείου σκιωδών συνθηματικών ομάδων\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: Σφάλμα κατά την διαγραφή καταχώρησης στο αρχείο συνθηματικών\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 "%s: Σφάλμα κατά την διαγραφή καταχώρησης στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: Σφάλμα κατά την διαγραφή καταχώρησης στο dbm αρχείο συνθηματικών\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την διαγραφή καταχώρησης στο dbm αρχείο σκιωδών "
-"συνθηματικών\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: Ο χρήστης %s βρίσκεται στο σύστημα\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: Το %s δεν ανήκει στον %s, δεν αφαιρείται\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: προειδοποίηση: αδυναμία διαγραφής "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: Ο χρήστης %s δεν υπάρχει\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: Ο χρήστης %s είναι NIS χρήστης\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: Δεν διαγράφεται ο κατάλογος %s (θα αφαιρούσε τον μητρικό κατάλογο του "
 "χρήστη %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: Σφάλμα κατά την διαγραφή του καταλόγου %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Χρήση: %s\t[-u uid [-o]] [-g ομάδα] [-G ομάδα,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr ""
 "\t\t[-d μητρικός_κατάλογος [-m]] [-s φλοιός] [-c σχόλιο]\n"
 "\t\t[-l νέο_όνομα]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f ανενεργό] [-e λήξη] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p συνθηματικό] [-L|-U] όνομα\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: δεν υπάρχει ελεύθερη μνήμη στο update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s:  στο update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: Δεν δόθηκαν ενδείξεις\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: σκιώδη συνθηματικά απαιτούνται για το -e και -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: Το uid %lu δεν είναι μοναδικό\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: Σφάλμα κατά την αλλαγή καταχώρησης συνθηματικού\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: Σφάλμα κατά την αφαίρεση καταχώρησης στο αρχείο συνθηματικών\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την προσθήκη νέας καταχώρησης στο dbm αρχείο συνθηματικών\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την αφαίρεση καταχώρησης από το dbm αρχείο συνθηματικών\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 "%s: Σφάλμα κατά την αφαίρεση καταχώρησης στο αρχείο σκιωδών συνθηματικών\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-"%s: Σφάλμα κατά την αφαίρεση καταχώρησης στο dbm αρχείο σκιωδών "
-"συνθηματικών\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: ο κατάλογος %s υπάρχει\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: αδυναμία δημιουργίας του %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: Αδυναμία αλλαγής ιδιοκτήτη(chown) του %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: αδυναμία μετονομασίας του καταλόγου %s σε %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: προειδοποίηση: Το %s δεν ανήκει στον %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "αποτυχία αλλαγής του ιδιοκτήτη του γραμματοκιβωτίου"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "αποτυχία μετονομασίας γραμματοκιβωτίου"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2113,21 +1977,21 @@ msgstr ""
 "\n"
 "%s: Το %s δεν άλλαξε\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 #, fuzzy
 msgid "Couldn't lock file"
 msgstr "αδυναμία ξεκλειδώματος αρχείου\n"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr ""
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: αδυναμία επαναφοράς %s: %s (οι αλλαγές είναι στο %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 2db49a533b6b4a3bf5ac0a1baf21d4a23c7d1b20..e7026316655e6bd3394e06309450925e2925db86 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 0f7e39636e18faeaa07b2c54a8a4c98ba16e785c..0b83b056b0f241bf8cf867cb0bcf75dd43d55034 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -4,22 +4,23 @@
 # Reviewed by Ricardo Mones <ricardo.mones@hispalinux.es>, 2004.
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-16 11:37+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-18 23:39+0200\n"
 "Last-Translator:  Rubén Porras Campo <nahoo@inicia.es>\n"
 "Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Aviso: grupo %s desconocido\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Aviso: demasiados grupos\n"
@@ -47,17 +48,17 @@ msgstr "  Contacte con el administrador.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Elija una contraseña nueva.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Su contraseña caducará en %ld días.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Su contraseña caducará mañana.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Su contraseña caducará hoy.\n"
@@ -72,41 +73,31 @@ msgstr "Incapaz de cambiar tty %s"
 msgid "Environment overflow\n"
 msgstr "Desbordamiento de entorno\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "No debe cambiar $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s desde la última entrada. La última fue %s en %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "fallos"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "fallo"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d fallo desde la última entrada.\n"
+"La última fue %s en %s.\n"
+msgstr[1] ""
+"%d fallos desde la última entrada.\n"
+"La última fue %s en %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Demasiados accesos.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "La contraseña no descifra la llave secreta para %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"No pude establecer la clave secreta de %s: ¿está ejecutándose el demonio "
-"keyserv?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Tiene correo nuevo."
@@ -119,7 +110,7 @@ msgstr "Sin correo."
 msgid "You have mail."
 msgstr "Tiene correo."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Contraseña mala: %s.  "
@@ -134,20 +125,20 @@ msgstr "passwd: falló pam_start(), error %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: contraseña actualizada correctamente\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Incapaz de cambiar el directorio a \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Sin directorio, entrando con HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "No puedo ejecutar %s"
@@ -162,37 +153,33 @@ msgstr "Directorio raíz \"%s\" inválido\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "No puedo cambiar el directorio raíz a \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "falló malloc(%d)\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "No pude reservar espacio para la información de configuración.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "error de configuración - elemento '%s' desconocido (notifíquelo al "
 "administrador)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Contraseña: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Contraseña de %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Eco activado) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -201,155 +188,148 @@ msgstr ""
 "Modo de uso: chage [-l] [-m mín_días] [-M máx_días] [-W aviso]\n"
 "                   [-I inactivo] [-E caducidad] [-d último_día] usuario\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Introduzca el nuevo valor, o presione ENTER para el predeterminado\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Duración mínima de la contraseña"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Duración máxima de la contraseña"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Último cambio de contraseña (AAAA-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Aviso de caducidad de la contraseña"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Contraseña inactiva"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Fecha de caducidad de la cuenta (AAAA-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Último cambio de contraseña\t\t\t\t\t:"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "nunca\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "La contraseña caduca\t\t\t\t\t: "
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Contraseña inactiva\t\t\t\t\t: "
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "La cuenta caduca\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Número de días mínimo entre cambio de contraseña\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Número de días máximo entre cambio de contraseñas\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Número de días de aviso antes de que expire la contraseña\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: no incluya \"l\" con otras banderas\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: permiso denegado.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: Autenticación PAM fallida\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: no puedo abrir el fichero de contraseñas\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: usuario desconocido %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: no puedo bloquear el fichero de contraseñas ocultas (shadow)"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: no puedo abrir el fichero de contraseñas ocultas (shadow)"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Cambiando la información de la edad para %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: error cambiando los campos\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: no puedo actualizar el fichero de contraseñas\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: no puedo actualizar el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Error actualizando la entrada de contraseña DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr ""
 "%s: no se puede reescribir el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: no se puede reescribir el fichero de contraseñas\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok falló\n"
@@ -370,117 +350,122 @@ msgstr ""
 "Modo de uso: %s [-f nombre_completo] [-r num_habitación] [-w telf_trabajo]\n"
 "\t[-h telf_casa]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nombre completo"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNombre completo: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Número de habitación"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Teléfono del trabajo"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Teléfono de casa"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Otro"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: no puedo determinar su nombre de usuario.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: no puedo cambiar el usuario `%s' en el cliente NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' es el maestro NIS para este cliente.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Permiso denegado.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Cambiando la información de usuario para %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nombre inválido: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: nombre de habitación inválido: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: teléfono del trabajo inválido: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: teléfono de casa inválido: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" contiene caracteres ilegales\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: campos demasiado largos\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "No se puede cambiar el ID al del superusuario.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "No se puede bloquear el fichero de contraseñas, inténtelo más tarde.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "No se puede abrir el fichero de contraseñas.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: no se encontró %s en /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Error actualizando la entrada de la contraseña.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "No se pueden remitir los cambios del fichero de contraseñas.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "No se puede desbloquear el fichero de contraseñas.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -504,48 +489,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: no puedo bloquear el fichero de contraseñas\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: no se puede bloquear el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: no se puede abrir el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: línea %d: línea demasiado larga\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: línea %d: falta la nueva contraseña\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: línea %d: usuario desconocido %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: línea %d: no se puede actualizar la entrada de la contraseña\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: error detectado, cambios ignorados\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: error actualizando el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: error actualizando el fichero de contraseñas\n"
@@ -555,26 +540,26 @@ msgstr "%s: error actualizando el fichero de contraseñas\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Modo de uso: %s [-s shell] [nombre]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Shell de acceso"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "No debe cambiar la shell para %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Cambiando la shell de acceso para %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: entrada inválida: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s no es una shell válida.\n"
@@ -584,12 +569,12 @@ msgstr "%s no es una shell válida.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Modo de uso: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: ¡AVISO! ¡Debe ser set-UID de superusuario!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: usuario desconocido\n"
@@ -603,8 +588,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -620,320 +606,286 @@ msgstr ""
 "  -m, --maximum MAX\t\testablece el número máximo de accesos fallidos\n"
 "                                a MAX\n"
 "  -r, --reset\t\t\treinicia los contadores de accesos fallidos\n"
+"  -t, --time ND                 muestra los registros de faillog para los "
+"últimos\n"
+"                                ND días\n"
 "  -u, --user USUARIO\t\tmuestra el registro de faillog o mantiene los\n"
 "                                contadores de fallos y los límites (si se "
 "usan\n"
 "                                las opciones -r, -m o -l) para el usuario\n"
 "                                USUARIO\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Usuario    Fallos    Máximo   Último\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s en %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Usuario     Fallos Máximo Último                   Activo\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr "[faltan %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr "[bloqueados %lds]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Usuario desconocido: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Modo de uso: %s [-r|-R] grupo\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a usuario] grupo\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d usuario] grupo\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A usuario,...] [-M usuario,...] grupo\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M usuario,...] grupo\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: se requieren contraseñas de grupo ocultas (shadow) para -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "¿Quién es?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "grupo desconocido: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Añadiendo al usuario %s al grupo %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Eliminando al usuario %s del grupo %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: miembro desconocido %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: No es una tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Cambiando la contraseña para el grupo %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nueva contraseña: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Reintroduzca la nueva contraseña: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "No concuerdan, pruebe otra vez"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Pruebe otra vez más tarde\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: no se puede obtener el bloqueo\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: no se puede obtener el bloqueo de shadow\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: no se puede abrir el fichero\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: no se puede actualizar la entrada\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: no se puede actualizar la entrada oculta (shadow)\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: no se puede reescribir el fichero\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: no se puede reescribir el fichero oculto (shadow)\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: no se puede desbloquear el fichero\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: no se pueden actualizar los ficheros DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: no se pueden actualizar los ficheros DBM ocultos (shadow)\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Modo de uso: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: error añadiendo entrada nueva de grupo\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: no se puede añadir entrada nueva de grupo dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: el nombre %s no es único\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: el gid %u no es único\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: no se puede obtener un gid único\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s no es un nombre de grupo válido\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: grupo %s inválido\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O requiere NOMBRE=VALOR\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: no se puede reescribir el fichero grupos\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: no se puede reescribir el fichero de grupos oculto (shadow)\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: incapaz de bloquear el fichero de grupos\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: incapaz de abrir el fichero de grupos\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: incapaz de bloquear el fichero de grupos oculto (shadow)\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: incapaz de abrir el fichero de grupos oculto (shadow)\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: el grupo %s existe\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Modo de uso: groupdel grupo\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: error eliminando la entrada del grupo\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: error eliminando la entrada del grupo dbm\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: error eliminando entrada del grupo oculto (shadow)\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: error eliminando la entrada del grupo dbm oculto (shadow)\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: no se puede eliminar el grupo primario del usuario.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: el grupo %s no existe\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: el grupo %s es un grupo NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s es el maestro NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Modo de uso: groupmod [-g gid [-o]] [-n nombre] grupo\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: no se encontró %s en /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-"%s: no se puede añadir la entrada del grupo dbm oculto (shadow) nuevo\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u no es un gid único\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s no es un nombre único\n"
@@ -943,110 +895,105 @@ msgstr "%s: %s no es un nombre único\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Modo de uso: %s [-r] [-s] [grupo [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Modo de uso: %s [-r] [-s] [grupo]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "No"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s y -r son incompatibles\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: no se puede bloquear el fichero %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: no se puede abrir el fichero %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "entrada del fichero de grupos inválida\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "¿eliminar la línea `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "entrada de grupo duplicada\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nombre de grupo `%s' inválido\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupo %s: no existe el usuario %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "¿eliminar miembro `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "entrada del fichero de grupos oculto (shadow) inválida\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "entrada del fichero de grupos oculto (shadow) duplicada\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "no hay entradas coincidentes en el fichero de grupos\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "grupo oculto (shadow) %s: no existe el usuario administrativo %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "¿eliminar miembro administrativo `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grupo oculto (shadow) %s: no existe el usuario %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: no se puede actualizar el fichero %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: los ficheros se han actualizado, ejecute mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: los ficheros se han actualizado\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: sin cambios\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: los ficheros se han actualizado\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1062,37 +1009,37 @@ msgstr "%s: no se puede abrir el fichero de grupos\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: no se puede bloquear el fichero de grupos oculto (shadow)\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: no se puede abrir el fichero de grupos oculto (shadow)\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: no se puede eliminar el grupo oculto (shadow) %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: no se puede actualizar la entrada oculta (shadow) para %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: no se puede actualizar la entrada para el grupo %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: no se puede actualizar el fichero de grupos oculto (shadow)\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: no se puede actualizar el fichero de grupo\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: no se puede eliminar el fichero de grupos oculto (shadow)\n"
@@ -1112,13 +1059,13 @@ msgstr "Modo de uso: id\n"
 msgid " groups="
 msgstr "grupos="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1131,41 +1078,41 @@ msgstr ""
 "  -t, --time DÍAS\tmuestra sólo los registros lastlog más recientes\n"
 "                        que DÍAS\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Nombre           Puerto   De               Último\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Nombre                  Puerto   Último\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nunca ha entrado**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Modo de uso: %s [-p] [nombre]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h puesto] [-f nombre]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r puesto\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Tiempo de acceso inválido\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1174,7 +1121,7 @@ msgstr ""
 "\n"
 "Sistema cerrado para mantenimiento rutinario\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1183,7 +1130,7 @@ msgstr ""
 "\n"
 "[Desconexión evitada -- acceso del superusuario permitido.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1192,17 +1139,17 @@ msgstr ""
 "\n"
 "El acceso caducó después de %d segundos.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " en `%.100s' desde `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " en `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1211,38 +1158,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login incorrecto"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Aviso: acceso reestablecido después de un lockout temporal.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Última entrada: %s en %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Última entrada: %.19s en %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " desde %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Empezando rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1260,9 +1198,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: no se pueden abrir los ficheros DBM para %s\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: el comienzo con "
+msgstr "%s: la línea que comienza con %.16s... es demasiado larga\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1284,17 +1222,17 @@ msgstr "%s: error añadiendo un registro para %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "%d entradas añadidas, la más larga fue %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Modo de uso: %s [-vf] [-p|g|sp|sg] fichero\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Modo de uso: %s [-vf] [-p|g|sp] fichero\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Modo de uso: %s [-vf] [-p|g] fichero\n"
@@ -1314,16 +1252,16 @@ msgstr "Modo de uso: sg grupo [[-c] orden]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid desconocido: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid desconocido: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Disculpe.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "demasiados grupos\n"
@@ -1333,93 +1271,93 @@ msgstr "demasiados grupos\n"
 msgid "Usage: %s [input]\n"
 msgstr "Modo de uso: %s [entrada]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: no se puede bloquear /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: no se pueden bloquear los ficheros, pruebe de nuevo más tarde\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: no se pueden abrir los ficheros\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: línea %d: línea inválida\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: línea %d: no se puede crear GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: línea %d: no se puede crear UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: línea %d: no se puede encontrar el usuario %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: línea %d: no se puede actualizar la contraseña\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: línea %d: falló mkdir\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 "%s: línea %d: falló chown\n"
 "\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: línea %d: no se puede actualizar la entrada\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: error actualizando los ficheros\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Modo de uso: %s [-f|-s] [nombre]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "             %s [-x máx] [-n mín] [-w aviso] [-i inact] nombre\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "             %s {-l|-u|-d|-S|-e} nombre\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Contraseña antigua: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Contraseña incorrecta para `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1428,16 +1366,16 @@ msgstr ""
 "Introduzca la nueva contraseña (mínimo de %d caracteres, máximo de %d)\n"
 "Por favor, use una combinación de letras mayúsculas, minúsculas y números.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nueva contraseña: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Vuelva a intentarlo.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1446,52 +1384,52 @@ msgstr ""
 "\n"
 "Aviso: contraseña débil (introdúzcala otra vez para usarla de todos modos).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "No concuerdan, pruebe de nuevo.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "No puede cambiarse la contraseña para %s.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Disculpe, aún no puede cambiarse la contraseña para %s.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: sin memoria\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: no se puede ejecutar %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: repositorio %s no soportado\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "No debe cambiar la contraseña para %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: No debe ver o cambiar la información de la contraseña para %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Cambiando la contraseña para %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "La contraseña para %s no se ha modificado.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Contraseña cambiada.\n"
@@ -1506,49 +1444,49 @@ msgstr "Modo de uso: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Modo de uso: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "entrada del fichero de contraseñas inválida\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "entrada de contraseña duplicada\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "nombre de usuario '%s' inválido\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "usuario %s: no existe el grupo %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "usuario %s: el directorio %s no existe\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "usuario %s: el programa %s no existe\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "entrada de contraseña oculta (shadow) inválida\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "entrada de contraseña oculta (shadow) duplicada\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "ninguna entrada del fichero de contraseñas concuerda\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1569,17 +1507,17 @@ msgstr "%s: no se puede abrir el fichero passwd\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: no se puede eliminar la entrada oculta (shadow) para %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: no se puede actualizar la entrada de la contraseña para %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: no se puede actualizar el fichero oculto (shadow)\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: no se puede actualizar el fichero passwd\n"
@@ -1589,40 +1527,40 @@ msgstr "%s: no se puede actualizar el fichero passwd\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: no se puede actualizar la entrada para el usuario %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: no se puede eliminar el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Disculpe."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: debe ejecutarse desde un terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: error %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id desconocido: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "No está autorizado a usar su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Introduzca su propia contraseña)."
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1631,22 +1569,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorado)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Sin shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Acceso a \"su\" a esa cuenta DENEGADO.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Evitada autenticación de contraseña.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Por favor, introduzca su PROPIA contraseña como autenticación.\n"
@@ -1661,7 +1599,7 @@ msgstr "No hay fichero de contraseñas\n"
 msgid "No password entry for 'root'\n"
 msgstr "No hay entrada de contraseña para 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1671,448 +1609,393 @@ msgstr ""
 "Teclee control-d para continuar con un arranque normal del sistema,\n"
 "(o introduzca la contraseña del superusuario para mantenimiento del sistema):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Entrando en el Modo de Mantenimiento del Sistema\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: reconstruya la base de datos de los grupos\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: reconstruya la base de datos de los grupos ocultos (shadow)\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: argumento numérico inválido `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: gid %s desconocido\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: grupo %s desconocido\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 "%s: no se puede crear un nuevo fichero de preferencias predeterminadas\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 "%s: no se puede abrir un nuevo fichero de preferencias predeterminadas\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: renombra: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: el grupo `%s' es un grupo NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: demasiados grupos especificados (máx de %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Modo de uso: useradd [-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                     [-d home] [-s shell] [-c comentario] [-m [-k "
 "plantilla]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                     [-f inactivo] [-e caduca]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                     [-p contraseña] nombre\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "             useradd -D [-g grupo] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: error bloqueando el fichero de grupos\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: error abriendo el fichero de grupos\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: error bloqueando el fichero de grupos oculto (shadow)\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: error abriendo el fichero de grupos oculto (shadow)\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: el uid %u no es único\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: no se puede obtener un uid único\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: directorio base `%s' inválido\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: comentario `%s' inválido\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: directorio home `%s' inválido\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: fecha `%s' inválida\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: se requiere contraseñas ocultas (shadow) para -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: se requiere contraseñas ocultas (shadow) para -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: campo `%s' inválido\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: shell `%s' inválida\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: nombre de usuario `%s' inválido\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: no se puede reescribir el fichero de contraseñas\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 "%s: no se puede reescribir el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: incapaz de bloquear el fichero de contraseñas\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: incapaz de abrir el fichero de contraseñas\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: no se puede bloquear el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: no se puede abrir el fichero de contraseñas ocultas (shadow)\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: error añadiendo entrada de contraseña nueva\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: error actualizando entrada dbm de contraseña\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: error añadiendo entrada de contraseña oculta (shadow) nueva\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: error actualizando la entrada dbm de contraseña oculta (shadow)\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: no se puede crear el directorio %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "No existe ningún grupo llamado \"mail\", creando la cola de correo con modo "
 "0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "No se puede crear la cola de correo para el usuario %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: el usuario %s existe\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 "%s: el grupo %s existe - si quiere añadir este usuario a ese grupo, use -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: aviso: CREATE_HOME no está soportado, por favor, use -m en su lugar.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Modo de uso: %s [-r] nombre\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: error actualizando la entrada del grupo\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: no se puede actualizar la entrada del grupo dbm\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: no se puede eliminar la entrada del grupo dbm\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: no se puede abrir el fichero de grupos\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: no se puede abrir el fichero de grupos oculto (shadow)\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: error eliminando la entrada de contraseña\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: error eliminando la entrada de contraseña oculta (shadow)\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: error eliminando la entrada dbm de contraseña\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: error eliminando la entrada dbm de contraseña oculta (shadow)\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: el usuario %s está actualmente dentro del sistema\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s no pertenece a %s, no se elimina\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: aviso: no se puede eliminar "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: el usuario %s no existe\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: el usuario %s es un usuario NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: no se elimina el directorio %s (eliminaría el directorio home del "
 "usuario %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: error eliminando el directorio %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Modo de uso: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s shell] [-c comentario] [-l nuevo_nombre]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactivo] [-e caduca] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p contraseña] [-L|-U] nombre\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: sin memoria en update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: sin memoria en update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: no se ha dado ninguna opción\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: se necesitan contraseñas ocultas (shadow) para -e y -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: el uid %lu no es único\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: error cambiando la entrada de la contraseña\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: error eliminando la entrada de la contraseña\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: error añadiendo la entrada dbm de la contraseña\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: error eliminando la entrada dbm de la contraseña\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: error eliminando entrada de contraseña oculta (shadow)\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: error eliminando la entrada dbm de contraseña oculta (shadow)\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: el directorio %s existe\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: no se puede crear %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: no se puede chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: no se puede renombrar el directorio %s a %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: aviso: %s no pertenece a %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "falló el cambio de propietario del buzón de correo"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "falló el cambio de nombre del buzón de correo"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2121,20 +2004,20 @@ msgstr ""
 "\n"
 "%s: %s no se cambia\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "No se puede bloquear el fichero"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "No se puede realizar una copia de seguridad"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: no se puede restaurar %s: %s (sus cambios están en %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 84263c7d809b4e94871358ffd663c36f982d0a8e..34a45f7e31a1c23b4d831eef6dcca9873ea449c9 100644 (file)
Binary files a/po/eu.gmo and b/po/eu.gmo differ
index c3a3acb50e1337a792a115f8526abd2356d0c45f..5c7062625363bdced0b12888d1ead9fa3b08d5d4 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
+# translation of shadow_eu.po to Basque
+# translation of shadow_eu.po to
 # translation of shadow_perrier_eu_po.po to Euskara
 # translation of shadow_po.po to Euskara
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 # Piarres Beobide EgaC1a <pi@beobide.net>, 2004.
-# Piarres Beobide Egaña <pi@beobide.net>, 2004.
+# Piarres Beobide Egaña <pi@beobide.net>, 2004, 2005.
+# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2005.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow_po\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2004-06-21 01:18+0200\n"
-"Last-Translator: Piarres Beobide Egaña <pi@beobide.net>\n"
-"Language-Team: Euskara <librezale@librezale.org>\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 21:28+0200\n"
+"Last-Translator: Iaki Larraaga Murgoitio <dooteo@euskalgnu.org>\n"
+"Language-Team:  <itzulpena@euskalgnu.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: KBabel 1.9.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
-msgstr "Kontuz: talde ezezaguna %s \n"
+msgstr "Abisua: %s talde ezezaguna\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
-msgstr "Kontuz: talde gehiegi\n"
+msgstr "Abisua: talde gehiegi\n"
 
 #: libmisc/age.c:72
 #, c-format
 msgid "Your password has expired."
-msgstr "Zure pasahitza iraungirik dago."
+msgstr "Pasahitza iraungi egin da."
 
 #: libmisc/age.c:75
 #, c-format
 msgid "Your password is inactive."
-msgstr "Zure pasahitza ezgaiturik dago."
+msgstr "Pasahitza ez-aktibo dago."
 
 #: libmisc/age.c:78
 #, c-format
 msgid "Your login has expired."
-msgstr "Zure Erabiltzaile izena iraungirik dago."
+msgstr "Erabiltzaile-izena iraungi egin da."
 
 #: libmisc/age.c:90
 msgid "  Contact the system administrator.\n"
-msgstr "  Sistema kudeatzailearekin harremanetan jarri.\n"
+msgstr "  Jarri harremanetan sistema-administratzailearekin.\n"
 
 #: libmisc/age.c:93
 msgid "  Choose a new password.\n"
 msgstr "  Aukeratu pasahitz berria.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
-msgstr "Zure pasahitza %ld egun barru iraungiko da\n"
+msgstr "Pasahitza %ld egun barru iraungi egingo da.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
-msgstr "Zure pasahitza bihar iraungiko da.\n"
+msgstr "Pasahitza bihar iraungi egingo da.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
-msgstr "Zure pasahitza gaur iraungiko da.\n"
+msgstr "Pasahitza gaur iraungi egingo da.\n"
 
 #: libmisc/chowntty.c:106
 #, c-format
 msgid "Unable to change tty %s"
-msgstr "Ezin da tty%s aldatu"
+msgstr "Ezin da %s tty aldatu"
 
 #: libmisc/env.c:155
 #, c-format
 msgid "Environment overflow\n"
-msgstr "Ingurune gainezkatzea\n"
+msgstr "Inguruneak gainezka egin du\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
-msgstr "Zuk ez zenuke $%s aldatu beharko\n"
-
-#: libmisc/failure.c:230
-#, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "huts %d azken saio hasiertaik.  Azkena %s %s-n izan zen.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
-
-#: libmisc/limits.c:396
-#, c-format
-msgid "Too many logins.\n"
-msgstr "Sarrera saio gehiegi.\n"
+msgstr "Ez zenuke $%s aldatu beharko\n"
 
-#: libmisc/login_desrpc.c:59
+#: libmisc/failure.c:229
 #, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Password ez da %s-ren gako sekretua desenkriptatzeko gai.\n"
-
-#: libmisc/login_desrpc.c:66
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"Hutsegite %d azken saio-hasiertaik.\n"
+"Azkena %s izan zen %s(e)n.\n"
+msgstr[1] ""
+"%d hutsegite azken saio-hasiertaik.\n"
+"Azkena %s izan zen %s(e)n.\n"
+
+#: libmisc/limits.c:397
 #, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Ezin da %s-n gako sekretua ezarri: keyserv deabrua abiarazirik al dago?\n"
+msgid "Too many logins.\n"
+msgstr "Gehiegizko saio-hasierak.\n"
 
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
-msgstr "ePosta berria duzu."
+msgstr "Mezu berria duzu."
 
 #: libmisc/mail.c:72
 msgid "No mail."
-msgstr "ePostarik gabe."
+msgstr "Mezurik ez."
 
 #: libmisc/mail.c:74
 msgid "You have mail."
-msgstr "ePosta duzu."
+msgstr "Mezua duzu."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
-msgstr "Okerreko pasahitza: %s.  "
+msgstr "Pasahitz okerra: %s.  "
 
 #: libmisc/pam_pass.c:38
 #, c-format
@@ -135,25 +129,25 @@ msgstr "passwd: pam_start() huts egin du, errorea: %d\n"
 #: libmisc/pam_pass.c:44
 #, c-format
 msgid "passwd: %s\n"
-msgstr "pasahitza:%s\n"
+msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: pasahitza ongi eguneratu da\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Ezin da \"%s\"-ra aldatu\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
-msgstr "Ez da karpeta aurkitzen ; HOME=/ erabiliaz saioa hasten"
+msgstr "Direktoriorik ez dago, HOME=/ erabiliz saioa hasiko da"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
-msgstr "Ezin da %s abiarazi"
+msgstr "Ezin izan da %s exekutatu"
 
 #: libmisc/sub.c:55
 #, c-format
@@ -165,194 +159,186 @@ msgstr "Baliogabeko erro direktorioa \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Ezin da erro direktorioa  \"%s\"-ra aldatu.\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) huts egin du\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
-msgstr "Ezin da konfigurazio informazioa gordetzeko tokirik blokeatu.\n"
+msgstr "Ezin izan da lekua esleitu, konfigurazioaren informaziorako.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
-msgstr "konfigurazio errorea - %s item ezezaguna (abisatu kudeatzailea)\n"
+msgstr ""
+"konfigurazio errorea - %s item ezezaguna (eman honen  berri "
+"administratzaileari)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Pasahitza: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
-msgstr "%s -ren Pasahitza: "
-
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Oihartzuna gaiturik)"
+msgstr "%s (r)en pasahitza: "
 
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "             [-I inactive] [-E expire] [-d last_day] user\n"
 msgstr ""
 "Erabilera: chage [-l] [-m gutxi_egun] [-M gehi_egun] [-W abisua]\n"
-"                 [-I ezgaitua] [-E irauli] [-d azken_egun] erabiltzailea\n"
+"                 [-I ez-aktiboa] [-E iraungi] [-d azken_eguna] "
+"erabiltzailea\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
-msgstr "Idatzi balio berria, edo ENTER sakatu lehentsirako\n"
+msgstr "Idatzi balio berria, edo sakatu 'Sartu' tekla lehentsirako\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
-msgstr "Gutxiengo Pasahitz luzapena"
+msgstr "Pasahitzaren gutxiengo iraupena"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
-msgstr "Gehienezko Pasahitz Luzapena"
+msgstr "Pasahitzaren gehienezko iraupena"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
-msgstr "Azke pasahitz Aldaketa (UUUU-HH-EE)"
+msgstr "Azken pasahitz-aldaketa (UUUU-HH-EE)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
-msgstr "Pasahitz Iraungitze Abisua"
+msgstr "Pasahitza iraungitzearen abisua"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
-msgstr "Pasahitza ezgaiturik"
+msgstr "Pasahitza ez-aktiboa"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
-msgstr "Kontu Iraungitze Data (UUUU-HH-EE)"
+msgstr "Kontuaren iraungitze data (UUUU-HH-EE)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "Azke pasahitz Aldaketa (UUUU-HH-EE)"
+msgstr "Azken pasahitz-aldaketa\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
-msgstr "Inoiz\n"
+msgstr "Inoiz ere ez\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "Pasahitza Iraungitze data:\t"
+msgstr "Pasahitza iraungitzeko data\t\t\t\t\t:"
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "Pasahitza ezgaitze data\t"
+msgstr "Pasahitza ez-aktiboa jarriko da\t\t\t\t\t: "
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Kontua Iraungitze data :"
+msgstr "Kontua iraungitzeko data\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Gutxiengo egunak, pasahitza aldatzeko\t\t: %ld\n"
 
-#: src/chage.c:298
-#, fuzzy, c-format
+#: src/chage.c:292
+#, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr "Saiakera kopuru muga gainditurik (%d)\n"
+msgstr "Gehienezko egunak, pasahitza aldatzeko\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "Abisuen egun kopurua, pasahitza iraungi aurretik\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: ez erabili \"l\" beste bandera batzuekin\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: baimena ukaturik\n"
+msgstr "%s: baimena ukatuta.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
-msgstr "%s: PAM egiaztatzeak huts egin du\n"
+msgstr "%s: PAM autentifikazioak huts egin du\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
-msgstr "%s: ezin da pasahitz fitxategia ireki\n"
+msgstr "%s: ezin da pasahitzen fitxategia ireki\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: %s erabiltzaile ezezaguna\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia blokeatu"
+msgstr "%s: ezin da itzalpeko (shadow) pasahitz-fitxategia blokeatu"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia ireki"
+msgstr "%s: ezin da itzalpeko (shadow) pasahitz-fitxategia ireki"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
-msgstr "%s-ren data informazioa aldatzen\n"
+msgstr "%s(r)en data-informazioa aldatzen\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
-msgstr "%s:errorea eremuak aldatzean\n"
+msgstr "%s: errorea eremuak aldatzean\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
-msgstr "%s: ezin da pasahitz fitxategia eguneratu\n"
+msgstr "%s: ezin da pasahitzen fitxategia eguneratu\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia eguneratu\n"
-
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Errorea DBM pasahitz erregistroa eguneratzerakoan.\n"
+msgstr "%s: ezin da itzalpeko (shadow) pasahitz-fitxategia eguneratu\n"
 
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
-msgstr "%s:ezin da itzalpeko pasahitz fitxategi berridatzi\n"
+msgstr "%s:ezin da itzalpeko pasahitz-fitxategia berridatzi\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
-msgstr "%s: ezin da pasahitz fitxategia berridatzi\n"
+msgstr "%s: ezin da pasahitzen fitxategia berridatzi\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: PAM chauthtok errorea\n"
+msgstr "%s: PAM chauthtok-ek huts egin du\n"
 
 #: src/chfn.c:84
 #, c-format
@@ -361,124 +347,129 @@ msgid ""
 "\t[-h home_ph] [-o other] [user]\n"
 msgstr ""
 "Erabilera: %s [-f izen_osoa] [-r gela_zenb] [-w lan_tlf]\n"
-"\t[-h etxe_tlf] [-o beste] [erabiltzailea]\n"
+"\t[-h etxe_tlf] [-o bestelakoa] [erabiltzaile-izena]\n"
 
 #: src/chfn.c:89
 #, c-format
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Erabilera: %s [-f izen_osoa] [-r gela_zb] [-w lan_tlf] [-h etxe_tlf]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
-msgstr "Izen Osoa"
+msgstr "Izen osoa"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
-msgstr "\tIzen Osoa: %s\n"
+msgstr "\tIzen osoa: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
-msgstr "Gela Zenbakia"
+msgstr "Gela zenbakia"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Laneko telefonoa"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
-msgstr "Etxeko Telefonoa"
+msgstr "Etxeko telefonoa"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
-msgstr "Besteak"
+msgstr "Bestelakoa"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
-msgstr "%s: Ezin da zure erabiltzaile izena atzeman.\n"
+msgstr "%s: Ezin da erabiltzaile-izena zehaztu.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
-msgstr "%s: ezin da NIS bezero batetako %s erabiltzailea aldatu.\n"
+msgstr "%s: ezin da NIS bezeroko %s erabiltzailea aldatu.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: %s da bezero honen NIS nagusia.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: baimena ukatuta.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
-msgstr "%s-ren erabiltzaile informazioa aldatzen\n"
+msgstr "%s(r)en erabiltzaile informazioa aldatzen\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: izen baliogabea: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: gela zenbaki baliogabea:\"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: laneko tlf baliogabea:\"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: etxeko tlf baliogabea:\"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
-msgstr "%s:\"%s\"-k ezlegezko karaktereak ditu\n"
+msgstr "%s:\"%s\"(e)k karaktere baliogabeak ditu\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
-msgstr "%s: eremu luzeegiak\n"
+msgstr "%s: eremu luzegiak\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
-msgstr "Ezin da ID-a root-era aldatu.\n"
+msgstr "Ezin izan da IDa root-era aldatu.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
-msgstr "Ezin da pasahitz fitxategia blokeatu; geroago berriz saiatu.\n"
+msgstr "Ezin izan da pasahitzen fitxategia blokeatu; saiatu geroago.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
-msgstr "Ezin da pasahitz fitxategia ireki.\n"
+msgstr "Ezin izan da pasahitzen fitxategia ireki.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
-msgstr "%s: %s ez da /etc/paswd-en aurkitu\n"
+msgstr "%s: %s ez da '/etc/paswd'-en aurkitu\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
-msgstr "Errorea pasahitz erregistroa eguneratzerakoan.\n"
+msgstr "Errorea pasahitzen sarrera eguneratzean.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
-msgstr "Ezin dira pasahitz fitxategi aldaketak grabatu.\n"
+msgstr "Ezin izan da pasahitzen fitxategiko aldaketak bidali.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
-msgstr "Ezin da pasahitz fitxategia desblokeatu.\n"
+msgstr "Ezin izan da pasahitzen fitxategia desblokeatu.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -489,83 +480,90 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"Erabilera: chpasswd [aukerak]\n"
+"\n"
+"Aukerak:\n"
+"  -e, .- encrypted\temandako pasahitzak enkripatzen dira\n"
+"  -h, --help\t\tlaguntzako mezu hau erakustsi eta irten egiten da\n"
+"  -m, --md5\t\terabili MD5 enkriptatze mota (DES-en ordez), \n"
+"\t\t\tpasahitzak enkriptatuta ez daudenean\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
-msgstr "%s: ezin da pasahitz fitxategia blokeatu\n"
+msgstr "%s: ezin da pasahitzen fitxategia blokeatu\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
-msgstr "%s: ezin da shadow fitxategia blokeatu\n"
+msgstr "%s: ezin da 'shadow' fitxategia blokeatu\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
-msgstr "%s ezin da shadow fitxategia ireki\n"
+msgstr "%s ezin da 'shadow' fitxategia ireki\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
-msgstr "%s: %d lerroa: lerro luzeegia\n"
+msgstr "%s: %d. lerroa: lerro luzegia\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
-msgstr "%s: %d lerroa: pasahitz berria falta da\n"
+msgstr "%s: %d. lerroa: pasahitz berria falta da\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
-msgstr "%s: %d lerroa: %s erabitzaile ezezaguna\n"
+msgstr "%s: %d. lerroa: %s erabitzaile ezezaguna\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
-msgstr "%s: %d lerroa: ezin da pasahitz sarerra eguneratu\n"
+msgstr "%s: %d. lerroa: ezin da pasahitzaren sarerra eguneratu\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
-msgstr "%s:errorea atzemanda, aldaketak alde batetara utzi dira\n"
+msgstr "%s:errorea atzeman da, aldaketak alde batera utzi dira\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
-msgstr "%s: errorea itzalpeko pasahitz fitxategia eguneratzerakoan\n"
+msgstr "%s: errorea 'shadow' fitxategia eguneratzean\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
-msgstr "%s: errorea pasahitz fitxategia eguneratzerakoan\n"
+msgstr "%s: errorea pasahitzen fitxategia eguneratzean\n"
 
 #: src/chsh.c:76
 #, c-format
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Erabilera: %s [-s shell] [izena]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
-msgstr "Saio Shell-a"
+msgstr "Saio-hasierako shell-a"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
-msgstr "Ez zenuke %s-ren shell-a aldatu behar.\n"
+msgstr "Ez zenuke %s(r)en shell-a aldatu behar.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
-msgstr "%s-ren saio shell-a aldatzen\n"
+msgstr "%s(r)en saio-hasierko shell-a aldatzen\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
-msgstr "%s: baliogabeko erregistroa: %s\n"
+msgstr "%s: baliogabeko sarrera: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s shell baliogabea da.\n"
@@ -575,15 +573,15 @@ msgstr "%s shell baliogabea da.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Erabilera: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
-msgstr "%s: KONTUZ!  root UID-a ezarririk izan behar du\n"
+msgstr "%s: ABISUA!  root-aren set-UID izan behar du\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
-msgstr "%s:erabiltzaile ezezaguna\n"
+msgstr "%s: erabiltzaile ezezaguna\n"
 
 #: src/faillog.c:59
 #, c-format
@@ -594,320 +592,302 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
-
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Erabiltzaile Izena   Akatsak  Gehinez   Azkena\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s %s-n"
-
-#: src/faillog.c:107
+"Erabilea: faillog [aukerak]\n"
+"\n"
+"Aukerak:\n"
+"  -a, --all\t\t\terabiltzaile guztien faillog-en erregistroak bistaratzen "
+"ditu\n"
+"  -h, --help\t\t\tlaguntzako mezu hau bistaratu eta irten egiten da\n"
+"  -l, --lock-time SEG\t\tsaio-hasieran hutsegin ondoren kontua zenbat "
+"segundotan blokeatuta egongo den\n"
+"  -m, --maximum GEH\t\tsaio-hasierako GEHiengo hutsegite kopurua ezartzeko\n"
+"  -r, --reset\t\t\tsaio-hasierako hutsegiteen kontatzailea \n"
+"\t\t\t\tberrezartzeko\n"
+"  -t, --time EGUNAK\t\tEGUNAK baino berriagoak diren faillog-en erregistroak "
+"bistaratzeko\n"
+"  -u, --user SAIOA\t\tfaillog-en erregistroak bistaratzeko edo \n"
+"\t\t\t\thutsegiteen kontatzailea eta ERABILTZAILEA\n"
+"\t\t\t\tizeneko erabiltzailearen(-r, -m edo -l aukerekin \n"
+"\t\t\t\terabiltzen bada) mantentzeko.\n"
+
+#: src/faillog.c:87
+#, c-format
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Saio-hasiera    Hutsegiteak Gehienezkoa Azkena     Aktiboa\n"
+
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
-msgstr " [%lds faltan]"
+msgstr " [%lds falta]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
-msgstr " [%lds blok]"
+msgstr " [%lds blokeatuta]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Erabiltzaile ezezaguna: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Erabilera: %s [-r|-R] taldea\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "           %s [-a erabiltzailea] taldea\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "           %s [-d erabiltzailea] taldea\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "           %s [-A erab,...] [-M erab,...] taldea\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "           %s [-M erab,...] taldea\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
-msgstr "%s: -A erabiltzeko itzalpeko talde pasahitza beharrezkoa\n"
+msgstr "%s: -A erabiltzeko itzalpeko talde-pasahitza eskatzen da\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Zer moduz zaude?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "talde ezezaguna: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
-msgstr "%s erabiltzailea %s taldera gehitzen\n"
+msgstr "%s erabiltzailea %s taldean gehitzen\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
-msgstr "%s erabiltzailea %s taldetik ezabatzen\n"
+msgstr "%s erabiltzailea %s taldetik kentzen\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
-msgstr "%s: %s partaide ezezaguna\n"
+msgstr "%s: %s kide ezezaguna\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: ez da tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "%s taldearen pasahitza aldatzen\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Pasahitz berria: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
-msgstr "Pasahitz berria berretsi:"
+msgstr "Berretsi pasahitz berria:"
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
-msgstr "Ez dira berdinak, berriz saiatu"
+msgstr "Ez dira berdinak, saiatu berriro"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
-msgstr "%s: Beranduago berriz saiatu \n"
+msgstr "%s: Saiatu geroago\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: ezin da blokeatu\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
-msgstr "%s: ezin da shadow blokeatu\n"
+msgstr "%s: ezin da 'shadow' blokeatu\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: ezin da fitxategia ireki\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
-msgstr "%s: ezin da erregistroa eguneratu\n"
+msgstr "%s: ezin da sarrera eguneratu\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
-msgstr "%s: ezin da shadow erregistroa eguneratu\n"
+msgstr "%s: ezin da 'shadow'-eko sarrera eguneratu\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: ezin da fitxategia berridatzi\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
-msgstr "%s: ezin da itzalpeko fitxategia berridatzi\n"
+msgstr "%s: ezin da 'shadow' fitxategia berridatzi\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: ezin da fitxategia desblokeatu\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: ezin dira DBM fitxategiak eguneratu\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: ezin dira itzalpeko DBM fitxategiak eguneratu\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Erabilera: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
-msgstr "%s: errorea talde erregistro berria gehitzerakoan\n"
+msgstr "%s: errorea talde sarrera berria gehitzean\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: ezin da dbm talde erregistro berria gehitu\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: %s izena ez da bakarra\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: %u gid-a ez da bakarra\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: ezin da gid bakarra lortu\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
-msgstr "%s: %s ez da baliozko talde izena\n"
+msgstr "%s: %s ez da baliozko talde-izena\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: %s talde baliogabea\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
-msgstr "%s: -O-k NAME=BALIOA beharrezko du\n"
+msgstr "%s: -O-k NAME=BALIOA eskatzen du\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
-msgstr "%s: ezin da talde fitxategia berridatzi\n"
+msgstr "%s: ezin da 'group' fitxategia berridatzi\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia berridatzi\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia berridatzi\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
-msgstr "%s: ezin da talde fitxategia blokeatu\n"
+msgstr "%s: ezin da talde-fitxategia blokeatu\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
-msgstr "%s: ezin da talde fitxategia ireki\n"
+msgstr "%s: ezin da talde-fitxategia ireki\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia blokeatu\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia blokeatu\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia ireki\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia ireki\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: %s taldea badago\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Erabilera: groupdel taldea\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
-msgstr "%s: errorea talde erregistroa ezabatzerakoan\n"
-
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: errorea talde dbm erregistroa ezabatzerakoan\n"
+msgstr "%s: errorea taldearen sarrera ezabatzean\n"
 
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
-msgstr "%s: errorea itzalpeko talde erregistroa ezabatzerakoan\n"
+msgstr "%s: errorea itzalpeko taldearen sarrera ezabatzean\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: errorea itzalpeko talde dbm erregistroa ezabatzerakoan\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s ezin da erabiltzailearen talde nagusia ezabatu\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: %s taldea ez da existitzen\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: %s taldea NIS talde bat da\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s NIS nagusia da\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Erabilera: groupmod [-g gid [-o]] [-n izena] taldea\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s ez da aurkitu /etc/group-en\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: ezin da dbm itzalpeko talde erregistroa gehitu\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u ez da gid bakarra\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s ez da izen bakarra\n"
@@ -917,159 +897,154 @@ msgstr "%s: %s ez da izen bakarra\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Erabilera: %s [-r] [-s] [taldea [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Erabilera: %s [-r] [-s] [taldea]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Ez"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s eta -r ezin dira batera erabili\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: ezin da %s fitxategia blokeatu\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: ezin da %s fitxategia ireki\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
-msgstr "baliogabeko talde fitxategi erregistroa\n"
+msgstr "baliogabeko talde-fitxategiko sarrera\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "%s lerroa ezabatu?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
-msgstr "bikoiztu talde erregistroa\n"
+msgstr "bikoiztu taldearen sarrera\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
-msgstr "`%s' baliogabeko talde izena\n"
+msgstr "`%s' baliogabeko talde-izena\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "%s taldea: %s erabiltzailea ez dago\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
-msgstr "`%s' partaidea ezbatu?"
+msgstr "`%s' kidea ezabatu?"
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
-msgstr "Baliogabeko itzalpeko talde fitxategi erregistroa\n"
+msgstr "Baliogabeko itzalpeko talde-fitxategiko sarrera\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
-msgstr "bikoiztutako itzalpeko talde erregistroa\n"
+msgstr "bikoiztutako itzalpeko taldearen sarrera\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
-msgstr "ez da parekatzeko talde fitxategi erregistrorik aurkitu\n"
+msgstr "ez dago bat datorren sarrerarik talde-fitxategian\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
-msgstr "%s itzalpeko taldea: ez dago %s erabiltzaile kudeatzailea\n"
+msgstr "%s itzalpeko taldea: ez dago %s erabiltzaile administratzailea\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
-msgstr "`%s' Kudeatzaile partaidea ezabatu?"
+msgstr "`%s' kide administratzailea kendu?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "%s itzalpeko taldea: %s erabiltzailea ez dago\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: ezin da %s fitxategia eguneratu\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: fitxategiak eguneratu egin dira: mkpasswd abiarazi\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: fitxategiak eguneratu dira\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: aldaketarik gabe\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: fitxategiak eguneratuak izan dira\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
-msgstr "%s: ezin da talde fitxategia blokeatu\n"
+msgstr "%s: ezin da talde-fitxategia blokeatu\n"
 
 #: src/grpconv.c:65 src/grpunconv.c:61
 #, c-format
 msgid "%s: can't open group file\n"
-msgstr "%s: ezin da talde fitxategia ireki\n"
+msgstr "%s: ezin da talde-fitxategia ireki\n"
 
 #: src/grpconv.c:70 src/grpunconv.c:66
 #, c-format
 msgid "%s: can't lock shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia blokeatu\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia blokeatu\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia ireki\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia ireki\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
-msgstr "%s: ezin da %s itzalpeko taldea ezabatu\n"
+msgstr "%s: ezin da itzalpeko %s taldea ezabatu\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
-msgstr "%s: ezin da %s-ren itzalpeko erregistroa eguneratu\n"
+msgstr "%s: ezin da %s-ren itzalpeko sarrera eguneratu\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
-msgstr "%s: ezin da %s taldearen erregistroa eguneratu\n"
+msgstr "%s: ezin da %s taldearen sarrera eguneratu\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia eguneratu\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia eguneratu\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
-msgstr "%s: ezin da talde fitxategia eguneratu\n"
+msgstr "%s: ezin da talde-fitxategia eguneratu\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia ezabatu\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia ezabatu\n"
 
 #: src/id.c:53
 #, c-format
@@ -1086,134 +1061,134 @@ msgstr "Erabilera: id\n"
 msgid " groups="
 msgstr " taldeak="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"Erabilera: lastlog [aukerak]\n"
+"\n"
+"Aukerak:\n"
+"  -u, --login IZENA\tIZENA duen erabiltzailearen lastlog erregistroa \n"
+"\t\t\t\tbistaratzen du\n"
+"  -h, --help\t\tlaguntzako mezu hau bistaratu eta irten egiten da\n"
+"  -t, --time EGUNAK\tEGUNAK baino berriagoak diren erregistroak \n"
+"\t\t\t\tbakarrik bistaratzen ditu\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
-msgstr "Erabiltzaile izena        Ataka      Nork           Azkenez\n"
+msgstr "Erabiltzaile-izena        Ataka      Nondik           Azkena\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
-msgstr "Erabiltzaile izena           Ataka          Azkenez\n"
+msgstr "Erabiltzaile-izena           Ataka          Azkena\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
-msgstr "**Inoiz  saioa hasi gabe**"
+msgstr "**Inoiz ez du saiorik hasi**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Erabilera: %s [-p] [izena]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
-msgstr "           %s [-p] [-h host] [-f izena]\n"
+msgstr "           %s [-p] [-h ostalaria] [-f izena]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
-msgstr "           %s [-p] -r host\n"
+msgstr "           %s [-p] -r ostalaria\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
-msgstr "Baliogabeko saio hasiera data\n"
+msgstr "Baliogabeko saio-hasieraren denbora\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
 "System closed for routine maintenance\n"
 msgstr ""
 "\n"
-"Sistema aldiriko mantenuagatik itxirik\n"
+"Sistema aldiko mantenuagatik itxita\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 "\n"
-"[Deskonexioa saltaturik -- root saio hastea onarturik.]\n"
+"[Deskonexioa saltatuta -- root-ek saio-hastea baimenduta.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 "\n"
-"Saio hasiera denboraz kanpo %d segundu eta gero.\n"
+"Saio-hasiera denboraz kanpo %d segundo igarotakoan.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
-msgstr "`%.100s'-tik `%.200s'-ra"
+msgstr "`%.100s'(e)tik `%.200s'(e)ra"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
-msgstr "`%.100s'-n"
+msgstr "`%.100s'(e)n"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 "\n"
-"%s login: "
-
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
+"%s izena: "
 
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
-msgstr "Saio hasera okerra"
+msgstr "Izen okerra"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
-"Kontuz: saio abiaraztea birgaitu egingo da blokeo aldi baten ondoren.\n"
+"Abisua: saio-hasiera berriru gaitu egingo da aldi bateko blokeoaren "
+"ondoren.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
-msgstr "Azken saio hasiera: %s %s-ean"
+msgstr "Azken saio-hasiera: %s %s(e)n"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
-msgstr "Azken saio hasiera: %.19s  %s-ean"
+msgstr "Azken saio-hasiera: %.19s  %s(e)n"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
-msgstr "%.*s-tik"
-
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "rad_login abiarazten\n"
+msgstr "%.*s(e)tik"
 
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
-msgstr "%s: Ez dago DBM databaserik sisteman - ez da ekintzarik egingo\n"
+msgstr "%s: ez dago DBM datubaserik sisteman - ez da ekintzarik egingo\n"
 
 #: src/mkpasswd.c:231 src/mkpasswd.c:236
 #, c-format
@@ -1223,44 +1198,44 @@ msgstr "%s: ezin da %s fitxategia berridatzi\n"
 #: src/mkpasswd.c:251
 #, c-format
 msgid "%s: cannot open DBM files for %s\n"
-msgstr "%s: ezin dira %s-ren DBM fitxategiak ireki\n"
+msgstr "%s: ezin dira %s(r)en DBM fitxategiak ireki\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: hasiera"
+msgstr "%s: '%.16s...' katearekin hasten den lerroa luzegia da\n"
 
 #: src/mkpasswd.c:313
 #, c-format
 msgid "%s: error parsing line \"%s\"\n"
-msgstr "%s errorea \"%s\" lerroa arakatzerakoan\n"
+msgstr "%s: errorea \"%s\" lerroa analizatzean\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "izenaren erregistroa gehitzen"
+msgstr "%s izenaren erregistroa gehitzen\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: errorea honentzat erregistroa gehitzean:"
+msgstr "%s: errorea %s(r)en erregistroa gehitzean\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
-msgstr "%d erregistro gehiturik; luzeena %d da\n"
+msgstr "%d erregistro gehitu dira; luzeena %d da\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Erabilera: %s [-vf] [-p|g|sp|sg] fitxategia\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Erabilera: %s [-vf] [-p|g|sp] fitxategia\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Erabilera: %s [-vf] [-p|g] fitxategia\n"
@@ -1278,18 +1253,18 @@ msgstr "Erabilera: sg taldea [[-c] komandoa]\n"
 #: src/newgrp.c:131
 #, c-format
 msgid "unknown uid: %u\n"
-msgstr "%u uid ezezaguna\n"
+msgstr "uid ezezaguna: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid ezezaguna: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Barkatu.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "talde gehiegi\n"
@@ -1299,166 +1274,166 @@ msgstr "talde gehiegi\n"
 msgid "Usage: %s [input]\n"
 msgstr "Erabilera: %s [sarrera]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
-msgstr "%s: ezin da /etc/passwd blokeatu.\n"
+msgstr "%s: ezin da '/etc/passwd' blokeatu.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
-msgstr "%s: ezin dira fitxategiak blokeatu, saiatu berriz geroago\n"
+msgstr "%s: ezin dira fitxategiak blokeatu, saiatu geroago\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: ezin dira fitxategiak ireki\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: %d lerroa: lerro baliogabea\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: %d lerroa: ezin da GID-a sortu\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: %d lerroa: ezin da UID-a sortu\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: %d lerroa: ezin da %s erabiltzailea aurkitu\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: %d lerroa: ezin da pasahitza eguneratu\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
-msgstr "%s: %d lerroa: mkdir-ek huts\n"
+msgstr "%s: %d lerroa: mkdir-ek huts egin du\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
-msgstr "%s: %d lerroa: chown-ek huts\n"
+msgstr "%s: %d lerroa: chown-ek huts egin du\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
-msgstr "%s: %d lerroa: ezin da erregistroa eguneratu\n"
+msgstr "%s: %d lerroa: ezin da sarrera eguneratu\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: errorea fitxategiak eguneratzean\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Erabilera: %s [-f|-s] [izena]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
-msgstr "           %s [-x geh] [-n gutx] [-w abisu] [-i ezgaitu] izena\n"
+msgstr "           %s [-x geh] [-n gutx] [-w abisu] [-i ez-aktib] izena\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "           %s {-l|-u|-d|-S|-e} izena\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Pasahitz zaharra: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
-msgstr "`%s'-rentzat psahitz okerra\n"
+msgstr "`%s'(r)en pasahitz okerra\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
-"Sar pasahitz berria (gutxienez %d, gehienez %d karaktere)\n"
-"Mesedez erabili maiuskula/minuskula eta zenbaki konbinazio bat.\n"
+"Sartu pasahitz berria (gutxienez %d eta gehienez %d karaktere)\n"
+"Erabili maiuskulen, minuskulen eta zenbakien arteko konbinazioa.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Pasahitz berria: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Saiatu berriro.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 "\n"
-"Oharra: pasahitz ahula (sar ezazu berriz hala ere erabiltzeko).\n"
+"Oharra: pasahitza ahula da (sartu berriro erabiltzen jarraitzeko).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Ez dira berdinak, saiatu berriro.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
-msgstr "%s-ren pasahitzak ezin dira aldatu.\n"
+msgstr "%s(r)en pasahitzak ezin dira aldatu.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
-msgstr "Barkatu; %s-ren pasahitzak ezin dira aldatu oraindik.\n"
+msgstr "Barkatu; %s(r)en pasahitzak ezin dira aldatu oraindik.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
-msgstr "%s: memoriaz kanpo\n"
+msgstr "%s: memoriarik ez\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
-msgstr "%s: Ezin da %s abiarazi"
+msgstr "%s: Ezin da %s exekutatu"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
-msgstr "%s: %s repositorioa ez da onartzen\n"
+msgstr "%s: %s biltegia ez da onartzen\n"
 
-#: src/passwd.c:914
-#, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Ez zenuke %s-ren shell-a aldatu behar.\n"
+#: src/passwd.c:884
+#, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Ez zenuke %s(r)en shell-a aldatu behar.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
-msgstr "%s-ren pasahitza aldatzen\n"
+msgstr "%s(r)en pasahitza aldatzen\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
-msgstr "%s-ren pasahitza aldatu gabe dago\n"
+msgstr "%s(r)en pasahitza aldatu gabe dago.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
-msgstr "Pasahitza aldaturik.\n"
+msgstr "Pasahitza aldatuta.\n"
 
 #: src/pwck.c:87
 #, c-format
@@ -1470,606 +1445,548 @@ msgstr "Erabilera: %s [-q] [-r] [-s] [pasahitza [itzalpekoa]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Erabilera: %s [-q] [-r] [-s] [pasahitza]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
-msgstr "Baliogabeko pasahitz fitxategi erregistroa\n"
+msgstr "Baliogabeko pasahitzen fitxategiko sarrera\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
-msgstr "pasahitz erregistro bikoiztua\n"
+msgstr "bikoiztutako pasahitz sarrera\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
-msgstr "%s erabiltzaile izen baliogabea\n"
+msgstr "%s erabiltzaile-izen baliogabea\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "%s erabiltzailea: ez da %u taldea\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
-msgstr "%s erabiltzailea: ez da %s karpeta esistitzen\n"
+msgstr "%s erabiltzailea: %s direktorioa ez da existitzen\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
-msgstr "%s erabiltzailea: ez da %s programa esistitzen\n"
+msgstr "%s erabiltzailea: %s programa ez da existitzen\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
-msgstr "baliogabeko itzalpeko pasahitz fitxategi erregistroa\n"
+msgstr "baliogabeko itzalpeko pasahitz-fitxategiko sarrera\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
-msgstr "bikoiztutako itzalpeko pasahitz fitxategi erregistroa\n"
+msgstr "bikoiztutako itzalpeko pasahitz-fitxategiko sarrera\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
-msgstr "ez dago pareko pasahitz fitxategi erregistrorik\n"
+msgstr "ez dago bat datorren sarrerarik pasahitz-fitxategian\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
-msgstr "%s erabiltzailea: azken pasahitz aldaketa etorkizunean\n"
+msgstr "%s erabiltzailea: pasahitza etorkizunean aldatu zen azken aldiz\n"
 
 #: src/pwconv.c:85 src/pwunconv.c:79
 #, c-format
 msgid "%s: can't lock passwd file\n"
-msgstr "%s: ezin da pasahitz fitxategia blokeatu\n"
+msgstr "%s: ezin da pasahitz-fitxategia blokeatu\n"
 
 #: src/pwconv.c:90 src/pwunconv.c:84
 #, c-format
 msgid "%s: can't open passwd file\n"
-msgstr "%s: ezin da pasahitz fitxategia ireki\n"
+msgstr "%s: ezin da pasahitz-fitxategia ireki\n"
 
 #: src/pwconv.c:118
 #, c-format
 msgid "%s: can't remove shadow entry for %s\n"
-msgstr "%s: ezin da %s-ren itzalpeko erregistroa ezabatu\n"
+msgstr "%s: ezin da %s(r)en itzalpeko sarrera kendu\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
-msgstr "%s: ezin da %s-ren pasahitz erregistroa eguneratu\n"
+msgstr "%s: ezin da %s(r)en pasahitzaren sarrera eguneratu\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
-msgstr "%s: ezin da shadow fitxategia eguneratu\n"
+msgstr "%s: ezin da 'shadow' fitxategia eguneratu\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
-msgstr "%s: ezin da passwd fitxategia eguneratu\n"
+msgstr "%s: ezin da 'passwd' fitxategia eguneratu\n"
 
 #: src/pwunconv.c:124
 #, c-format
 msgid "%s: can't update entry for user %s\n"
-msgstr "%s: %s erabiltzailearen erregistroa eguneratu\n"
+msgstr "%s: ezin da %s erabiltzailearen sarrera eguneratu\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia ezabatu\n"
+msgstr "%s: ezin da itzalpeko pasahitz-fitxategia ezabatu\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Barkatu."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
-msgstr "%s: terminal batetatik abiarazi behar da\n"
+msgstr "%s: terminal batetik exekutatu behar da\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
-msgstr "%s: pam_start: errorea %d\n"
+msgstr "%s: pam_start: %d errorea\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
-msgstr "id ezezaguna: %s\n"
+msgstr "ID ezezaguna: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
-msgstr "Ez duzu su %s egiteko baimenik\n"
+msgstr "Ez duzu 'su %s' exekutatzeko baimenik\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
-msgstr "(sar zure jabetza pasahitza.)"
+msgstr "(sartu zure pasahitza.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
 "(Ignored)\n"
 msgstr ""
 "%s: %s\n"
-"(Bazterturik)\n"
+"(Ez ikusi egin zaio)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Ez dago shell-a\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
-msgstr "kontu honetzako su erabilera UKATUA.\n"
+msgstr "kontu honentzako 'su' sarbidea UKATUTA.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
-msgstr "Pasahitz egiaztapena saltaturik.\n"
+msgstr "Pasahitz autentifikazioa saltatuta.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
-msgstr "Mesedez sar ezazu zure Jabetza pasahitza egiaztapen bezala.\n"
+msgstr "Sartu zure pasahitz PROPIOA autentifikazio gisa\n"
 
 #: src/sulogin.c:118
 #, c-format
 msgid "No password file\n"
-msgstr "Ez dago pasahitz fitxategirik\n"
+msgstr "Ez dago pasahitz-fitxategirik\n"
 
 #: src/sulogin.c:160
 #, c-format
 msgid "No password entry for 'root'\n"
-msgstr "Ez dago root pasahitzik\n"
+msgstr "Ez dago 'root'-en pasahitzik\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 "\n"
-"Jo kontrol+d abiarazte arrunta erabiltzeko,\n"
-"(edo sar root pasahitza sistema mantenurako):"
+"Sakatu Kontrol+d teklak hasiera arrunta erabiltzeko,\n"
+"(edo idatzi root-en pasahitza sistemaren mantentze-lanetarako):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
-msgstr "Sistema Mantenu Modura sartzen\n"
+msgstr "Sistemaren mantentze-lanetako moduan sartzen\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s:talde databasea berrairikitzen\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s:itzalpeko talde databasea berrairikitzen\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
-msgstr "%s:baliogabeko zenbakizko %s argumentoa\n"
+msgstr "%s:baliogabeko zenbakizko '%s' argumentoa\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: %s gid ezezaguna \n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: %s talde ezezaguna\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: ezin da lehenespen fitxategi berria sortu\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: ezin da lehenespen fitxategi berria ireki\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: berrizendatu: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: taldea `%s' NIS talde bat da.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
-msgstr "%s: talde gehiegi ezarri dira (geh. %d).\n"
+msgstr "%s: talde gehiegi zehaztu dira (geh. %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Erabilera: useradd [-u uid [-o]] [-g taldea] [-G taldea,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
-"                   [-d etxea] [-s shell] [-c iruzkina] [-m [-k "
-"txantilloia]]\n"
+"                   [-d etxea] [-s shell] [-c iruzkina] [-m [-k txantiloia]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
-msgstr "              [-f ezgaiturik] [-e zaharkiturik]\n"
+msgstr "              [-f ez-aktiboa] [-e iraungitu]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
-msgstr "              [-p pasahitz] izena\n"
+msgstr "              [-p pasahitza] izena\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "           useradd -D [-g taldea] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
-msgstr "%s: errorea talde fitxategia blokeatzerakoan\n"
+msgstr "%s: errorea talde-fitxategia blokeatzean\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
-msgstr "%s: errorea talde fitxategia irekitzerakoan\n"
+msgstr "%s: errorea talde-fitxategia irekitzean\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
-msgstr "%s: errorea itzalpeko talde fitxategia blokeatzerakoan\n"
+msgstr "%s: errorea itzalpeko talde-fitxategia blokeatzean\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
-msgstr "%s: erroea itzalpeko talde fitxategia irekitzerakoan\n"
+msgstr "%s: errorea itzalpeko talde-fitxategia irekitzean\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s:%u uid-a ez da bakarra\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: ezin da uid bakar bat eskuratu\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
-msgstr "%s: `%s' base karpeta baliogabea\n"
+msgstr "%s: oinarrizko '%s' direktorio baliogabea\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: `%s' iruzkin baliogabea\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
-msgstr "%s: `%s' etxe karpeta baliogabea\n"
+msgstr "%s: `%s' etxe-direktorio baliogabea\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: `%s' data baliogabea\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
-msgstr "%s: -e-rentzat itzalpeko pasahitza beharrezkoa\n"
+msgstr "%s: -e itzalpeko pasahitza eskatzen du\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
-msgstr "%s: -f-rentzat itzalpeko pasahitza beharrezkoa\n"
+msgstr "%s: -f itzalpeko pasahitza eskatzen du\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: `%s' eremu baliogabea\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
-msgstr "%s: shell baliogabea `%s'\n"
+msgstr "%s: '%s' shell baliogabea\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
-msgstr "%s: '%s' erabiltzaile izen baliogabea\n"
+msgstr "%s: '%s' erabiltzaile-izen baliogabea\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
-msgstr "%s: ezin da pasahitz fitxategia berridatzi\n"
+msgstr "%s: ezin da pasahitz-fitxategia berridatzi\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia berridatzi\n"
+msgstr "%s: ezin da itzalpeko pasahitz-fitxategia berridatzi\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
-msgstr "%s: ezin da pasahitz fitxategia blokeatu\n"
+msgstr "%s: ezin da pasahitz-fitxategia blokeatu\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
-msgstr "%s: ezin da pasahitz fitxategia ireki\n"
+msgstr "%s: ezin da pasahitz-fitxategia ireki\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia blokeatu\n"
+msgstr "%s: ezin da itzalpeko pasahitz-fitxategia blokeatu\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
-msgstr "%s: ezin da itzalpeko pasahitz fitxategia ireki\n"
+msgstr "%s: ezin da itzalpeko pasahitz-fitxategia ireki\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
-msgstr "%s: errorea pasahitz erregistro berria gehitzerakoan\n"
-
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: errorea pasahitz dbm erregistroa eguneratzerakoan\n"
+msgstr "%s: errorea pasahitzaren sarrera berria gehitzean\n"
 
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
-msgstr "%s: errorea itzalpeko pasahitz erregistro berria gehitzerakoan\n"
+msgstr "%s: errorea itzalpeko pasahitzaren sarrera berria gehitzean\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: errorea itzalpeko pasahitz dbm erregistroa eguneratzean\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
-msgstr "%s: ezin da %s karpeta sortu\n"
+msgstr "%s: ezin da %s direktorioa sortu\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
-msgstr ""
+msgstr "Ez dago \"mail\" izeneko talderik, posta ilara sortzen (0600 moduan)\n"
 
-#: src/useradd.c:1590
-#, fuzzy, c-format
+#: src/useradd.c:1446
+#, c-format
 msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: %s erabiltzailearen erregistroa eguneratu\n"
+msgstr "Ezin da %s erabiltzailearen posta ilara sortu.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: %s erabiltzailea badago dagoeneko\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
-"%s: %s taldea badago - erabiltzaile hau talde honetara gehitu nahi naduzu "
-"erabili -g\n"
+"%s: %s taldea badago - erabiltzaile hau talde honetan gehiteko erabili '-g'\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
-msgstr ""
-"%s: kontuz: CREATE_HOME ez da onartzen, mesedez erabili -m aldagaiaz.\n"
+msgstr "%s: abisua: CREATE_HOME ez da onartzen, erabili '-m' aukera.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Erabilera: %s [-r] izena\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
-msgstr "%s: erroea talde erregistroa eguneratzerakoan\n"
-
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s:ezin da dbm talde erregistroa eguneratu\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: ezin da dbm talde erregistroa ezabatu\n"
+msgstr "%s: errorea taldearen sarrera eguneratzean\n"
 
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
-msgstr "%s: ezin da talde fitxategia ireki\n"
+msgstr "%s: ezin da talde-fitxategia ireki\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
-msgstr "%s: ezin da itzalpeko talde fitxategia ireki\n"
+msgstr "%s: ezin da itzalpeko talde-fitxategia ireki\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
-msgstr "%s: errorea pasahitza erregistroa ezabatzerakoan\n"
+msgstr "%s: errorea pasahitzaren sarrera ezabatzean\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
-msgstr "%s: errorea itzalpeko pasahitz erregistroa ezabatzerakoan\n"
-
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: errorea pasahitz dbm erregistroa ezabatzean\n"
+msgstr "%s: errorea itzalpeko pasahitzaren sarrera ezabatzean\n"
 
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: errorea itzalpeko pasahitz dbm erregistroa ezabatzerakoan\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
-msgstr "%s: %s erabiltzaileak saioa hasirik du\n"
+msgstr "%s: une honetan %s erabiltzaileak saioan sartuta dago\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
-msgstr "%s: %s ez dago %s-n jabetzan. ez da ezabatuko\n"
+msgstr "%s: %s ez dago %s(r)en jabetzan. ez da ezabatuko\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
-msgstr "%s:kontuz: ezin da ezabatu "
+msgstr "%s: abisua: ezin da ezabatu "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
-msgstr "%s: %s erabiltzailea ez da aurkitzen\n"
+msgstr "%s: %s erabiltzailea ez da existitzen\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s:  %s erabiltzailea NIS erabiltzaile bat da\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
-msgstr "%s: ez da %s karpeta ezabatuko (%s-ren etxea ezabatu beharko zen)\n"
+msgstr "%s: ez da %s direktorioa ezabatuko (%s(r)en etxea ezabatuko luke)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
-msgstr "%s: errorea %s karpeta ezabatzerakoan\n"
+msgstr "%s: errorea %s direktorioa ezabatzean\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Erabilera: %s\t[-u uid [-o]] [-g taldea] [-G taldea,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d etxea [-m]] [-s shell] [-c iruzkina] [-l izen_berria]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
-msgstr "[-f ezgaiturik] [-e zaharkiturik] "
+msgstr "[-f ez-aktiboa] [-e iraungitu] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
-msgstr "[-p pasahitz] [-L|-U] izena\n"
+msgstr "[-p pasahitza] [-L|-U] izena\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
-msgstr "%s: memoriaz kanpo update_group-en\n"
+msgstr "%s: memoriarik ez 'update_group'en\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
-msgstr "%s: memoriaz kanpo update_gshadow-en\n"
+msgstr "%s: memoriarik ez 'update_gshadow'-en\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: ez da banderarik eman\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
-msgstr "%s:  -e eta -f-rekin itzalpeko pasahitzak beharrezkoak\n"
+msgstr "%s:  -e eta -f aukerek itzalpeko pasahitzak eskatzen dute\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
-msgstr "%s:  %lu uid-a ez da bakarra\n"
+msgstr "%s:  %lu ez da uid bakarra\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
-msgstr "%s: erroea pasahitz erregistroa aldatzerakoan\n"
+msgstr "%s: errorea pasahitzaren sarrera aldatzean\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
-msgstr "%s: erroea pasahitz erregistroa ezabatzerakoan\n"
+msgstr "%s: errorea pasahitzaren sarrera ezabatzean\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: errorea pasahitz dbm sarrrera gehitzerakoan\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: errorea pasahitz dbm sarrrera ezabatzerakoan\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
-msgstr "%s: errorea itzalpeko pasahitz erregistroa ezabatzerakoan\n"
-
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: errorea itzalpeko pasahitz dbm erregistroa ezabatzerakoan\n"
+msgstr "%s: errorea itzalpeko pasahitzaren sarrera ezabatzean\n"
 
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
-msgstr "%s: %s karpeta badago\n"
+msgstr "%s: %s direktorioa badago\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: ezin da %s sortu\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s:ezin da %s jabez aldatu\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
-msgstr "%s: ezin da %s direktorioa %s-ra berrizendatu\n"
+msgstr "%s: ezin da %s direktorioa %s gisa izenez aldatu\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
-msgstr "%s: kontuz: %s ez dago %s-jabegoan\n"
+msgstr "%s: abisua: %s ez dago %s(r)en jabegoan\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
-msgstr "huts postakutxa jabez aldatzerakoan"
+msgstr "huts egin du postontzia jabez aldatzean"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
-msgstr "huts postakutxa berrizendatzerakoan"
+msgstr "huts egin du postontzia izenez aldatzean"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2078,20 +1995,20 @@ msgstr ""
 "\n"
 "%s: %s ez da aldatu\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Ezin da fitxategia blokeatu"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
-msgstr "Ezin da babeskopia egin"
+msgstr "Ezin izan da babeskopiarik egin"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
-msgstr "%s: ezin da %s leheneratu: %s (zure aldaketak %s-n daude)\n"
+msgstr "%s: ezin da %s leheneratu: %s (zure aldaketak %s(e)n daude)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index b56de2d0ee863555cd872bc82c0f563369390b26..e5866b6236096d383ea1f41721095408bf529327 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index c0b3efa23caaae74e34af13ec53bcdf215fbc89a..042bc136209666b442e983eca28cb66ec511ebd5 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -4,22 +4,23 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-19 13:11+0200\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 09:23+0300\n"
 "Last-Translator: Tommi Vainikainen <thv+debian@iki.fi>\n"
 "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Varoitus: tuntematon ryhmä %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Varoitus: liian monta ryhmää\n"
@@ -47,17 +48,17 @@ msgstr "  Ota yhteys järjestelmän ylläpitoon.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Valitse uusi salasana.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Salasanasi vanhenee %ld päivässä.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Salasanasi vanhenee huomenna.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Salasanasi vanhenee tänään.\n"
@@ -72,42 +73,31 @@ msgstr "Päätettä %s ei voi vaihtaa"
 msgid "Environment overflow\n"
 msgstr "Ympäristön ylivuoto\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Et voi muuttaa muuttujaa $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s sitten viime kirjautumisen.  Viimeisin oli %s päätteellä %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "epäonnistunutta yritystä"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "epäonnistunut yritys"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"Edellisen kirjautumisen jälkeen %d epäonnistunut yritystä.\n"
+"Viimeisin oli %s päätteellä %s.\n"
+msgstr[1] ""
+"Edellisen kirjautumisen jälkeen %d epäonnistunutta yritystä.\n"
+"Viimeisin oli %s päätteellä %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Liian monta sisäänkirjautumista.\n"
 
-# %s liittyy johonkin RPC-netnameen, mikäs olisi parempi kun en tiedä
-# RPC:stä juuri mitään?
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Salasanalla ei voida avata salaista avainta kohteelle %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Kohteen %s salaista avainta ei voi asettaa: onko keyserv-palvelu päällä?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Sinulle on uutta postia."
@@ -120,7 +110,7 @@ msgstr "Ei postia."
 msgid "You have mail."
 msgstr "Sinulle on postia."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Huono salasana: %s.  "
@@ -135,20 +125,20 @@ msgstr "passwd: pam_start() epäonnistui, virhe %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: salasanan päivitys onnistui\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Ei voi vaihtaa hakemistoon \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Ei hakemistoa, sisäänkirjaudutaan siten, että HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Ei voi suorittaa %s"
@@ -163,35 +153,31 @@ msgstr "Virheellinen juurihakemisto \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Ei voi vaihtaa juurihakemistoksi \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) epäonnistui\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Asetustiedoille ei voi varata tilaa.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "asetusvirhe - tuntematon kohta \"%s\" (kerro ylläpidolle)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Salasana: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Käyttäjän %s salasana: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Kaiku päällä) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -200,154 +186,147 @@ msgstr ""
 "Käyttö: chage [-l] [-m väh_päivää] [-M kork_päivää] [-W varoitus]\n"
 "              [-I poiskäytöstä] [-E vanhenee] [-d viim_päivä] käyttäjä\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Syötä uusi arvo tai paina ENTER jättääksesi oletuksen\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Salasanan ikä vähintään"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Salasanan ikä korkeintaan"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Viimeisin salasanan vaihto (VVVV-KK-PP)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Salasanan vanhenemisvaroitus"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Salasana pois käytöstä"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Tunnuksen vanhenemispäiväys (VVVV-KK-PP)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Edellinen salasanan vaihto\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "ei koskaan\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Salasana vanhenee\t\t\t\t\t: "
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Salasana pois käytöstä\t\t\t\t\t:"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Tunnus vanhenee\t\t\t\t\t:"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Salasanan vaihtamisten välillä vähintään päiviä\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Salasanan vaihtamisten välillä korkeintaan päiviä\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Montako päivää varoitetaan ennen salasanan vanhenemista\t\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: älä sisällytä \"l\" muiden lippujen kanssa\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: Lupa evätty.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM-todennus epäonnistui\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: salasanatiedostoa ei voi avata\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: Tuntematon käyttäjä %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: varjosalasanatiedostoa ei voi lukita"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: varjosalasanatiedostoa ei voi avata"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Muutetaan käyttäjän %s vanhenemistietoja\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: virhe muutettaessa kenttiä\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: salasanatiedostoa ei voi päivittää\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi päivittää\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Virhe päivitettäessä DBM-salasanatietuetta.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: salasanatiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM-chauthtok epäonnistui\n"
@@ -366,117 +345,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Käyttö: %s [-f koko_nimi] [-r huonenro] [-w työpuh] [-h kotipuh]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Koko nimi"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tKoko nimi: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Huonenumero"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Työpuhelin"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Kotipuhelin"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Muu"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Käyttäjätunnusta ei voi selvittää.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: ei voi vaihtaa käyttäjää \"%s\" NIS-asiakkaalla.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: \"%s\" on NIS-palvelin tälle asiakkaalle.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Lupa evätty.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Muutetaan käyttäjän %s tietoja\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: virheellinen nimi: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: virheellinen huonenumero: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: virheellinen työpuhelin: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: virheellinen kotipuhelin: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" sisältää ei-sallittuja merkkejä\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: kentät liian pitkiä\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Ei voi vaihtaa tunnusta pääkäyttäjäksi.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
-msgstr "Salasanatiedostoa ei voi lukita.  Yritä myöhemmin uudelleen.\n"
+msgstr "Salasanatiedostoa ei voi lukita. Yritä myöhemmin uudelleen.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Salasanatiedostoa ei voi avata.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: Käyttäjää %s ei löydy tiedostosta /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Virhe päivitettäessä salasanatietuetta.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Salasanatiedoston muutoksia ei voi tallentaa.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Salasanatiedoston lukitusta ei voi avata.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -500,48 +484,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: salasanatiedostoa ei voi lukita\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: varjotiedostoa ei voi lukita\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: varjotiedostoa ei voi avata\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: rivi %d: rivi on liian pitkä\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: rivi %d: uusi salasana puuttuu\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: rivi %d: tuntematon käyttäjä %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: rivi %d: salasanatietuetta ei voi päivittää\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: virhe havaittu, muutokset ohitetaan\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: virhe päivitettäessä varjotiedostoa\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: virhe päivitettäessä salasanatiedostoa\n"
@@ -551,26 +535,26 @@ msgstr "%s: virhe päivitettäessä salasanatiedostoa\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Käyttö: %s [-s kuori] [nimi]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Sisäänkirjautumiskuori"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Et voi muuttaa käyttäjän %s kuorta.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Muutetaan käyttäjän %s sisäänkirjautumiskuorta\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Virheellinen tietue: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s on virheellinen kuori.\n"
@@ -580,12 +564,12 @@ msgstr "%s on virheellinen kuori.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Käyttö: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: VAROITUS!  Oikeuksina täytyy olla aseta-UID pääkäyttäjäksi!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: tuntematon käyttäjä\n"
@@ -599,8 +583,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -616,317 +601,282 @@ msgstr ""
 "  -m, --maximum MAX             Aseta sallittujen kirjautumisyritysten\n"
 "                                laskureiksi MAX\n"
 "  -r, --reset                   Nollaa kirjautumisyrityslaskurit\n"
+"  -t, --time PÄIVIÄ             Näytä PÄIVIÄ uudemmat faillog-tietueet\n"
 "  -u, --user TUNNUS             Näytä faillog-tietue käyttäjälle TUNNUS tai\n"
 "                                muuta kirjautumisyrityslaskureita (kun\n"
 "                                käytetään -r, -m tai -l -valitsimilla)\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Käyttäjä   Yritystä  Maksimi  Viimeisin\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s päätteellä %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Tunnus      Epäonn.  Enint.  Edellinen                Päätteellä\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds jäljellä]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lukittu]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Tuntematon käyttäjä: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Käyttö: %s [-r|-R] ryhmä\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a käyttäjä] ryhmä\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d käyttäjä] ryhmä\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A käyttäjä,...] [-M käyttäjä,...] ryhmä\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M käyttäjä,...] ryhmä\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: varjoryhmäsalanat vaaditaan valitsimelle -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Kuka olet?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "tuntematon ryhmä: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Lisätään käyttäjä %s ryhmään %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Poistetaan käyttäjä %s ryhmästä %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: tuntematon jäsen %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Ei ole pääte\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Vaihdetaan ryhmän %s salasana\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Uusi salasana: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Toista uusi salasana: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
-msgstr "Ne eivät täsmää.  Yritä uudelleen"
+msgstr "Ne eivät täsmää. Yritä uudelleen"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Yritä myöhemmin uudelleen\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: ei voi lukita\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: varjoa ei voi lukita\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: tiedosta ei voi avata\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: tietuetta ei voi päivittää\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: varjotietuetta ei voi päivittää\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: tiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: varjotiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: tiedoston lukkoa ei voi avata\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: DBM-tiedostoja ei voi päivittää\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: DBM-varjotiedostoja ei voi päivittää\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Käyttö: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: virhe lisättäessä uutta ryhmätietuetta\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: ei voi lisätä uutta dbm-ryhmätietuetta\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: nimi %s ei ole ainutkertainen\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u ei ole ainutkertainen\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: ei saa ainutkertaista gid:iä\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s ei ole kelpo ryhmänimi\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: virheellinen ryhmä %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O vaatii NIMI=ARVO\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: ryhmätiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: ryhmätiedostoa ei voi lukita\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: ryhmätiedostoa ei voi avata\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi lukita\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi avata\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: ryhmä %s on olemassa\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Käyttö: groupdel ryhmä\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: virhe poistettaessa ryhmätietuetta\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: virhe poistettaessa ryhmä-dbm-tietuetta\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: virhe poistettaessa varjoryhmätietuetta\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: virhe poistettaessa varjoryhmä-dbm-tietuetta\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: käyttäjän ensisijaista ryhmää ei voi poistaa\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: ryhmää %s ei ole olemassa\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: ryhmä %s on NIS-ryhmä\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: isäntä %s on NIS-palvelin\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Käyttö: groupmod [-g gid [-o]] [-n nimi] ryhmä\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: Ryhmää %s ei löydy tiedostosta /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: uutta dbm-varjoryhmätietuetta ei voi lisätä\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u ei ole ainutkertainen gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s ei ole ainutkertainen nimi\n"
@@ -936,110 +886,105 @@ msgstr "%s: %s ei ole ainutkertainen nimi\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Käyttö: %s [-r] [-s] [ryhmä [ryhmävarjo]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Käyttö: %s [-r] [-s] [ryhmä]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Ei"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: valitsimet -s ja -r eivät sovi yhteen\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: tiedostoa %s ei voi lukita\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: tiedostoa %s ei voi lukita\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "virheellinen ryhmätiedostotietue\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "poista rivi \"%s\"? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "kaksinkertainen ryhmätietue\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "virheellinen ryhmänimi \"%s\"\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "ryhmä %s: ei käyttäjää %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "poista jäsen \"%s\"? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "virheellinen tietue varjoryhmätiedostossa\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "kaksinkertainen varjoryhmätietue\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "ei täsmäävää ryhmätiedostotietue\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "varjoryhmä %s: käyttäjä %s ei kuulu ylläpitoon\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "poista ylläpidon jäsen \"%s\"? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "varjoryhmä %s: ei käyttäjää %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: tiedostoa %s ei voi päivittää\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: tiedostot päivitettiin; suorita mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: tiedostot päivitettiin\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: ei muutoksia\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: tiedostot päivitettiin\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1055,37 +1000,37 @@ msgstr "%s: ryhmätiedostoa ei voi avata\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi lukita\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi avata\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: varjoryhmää %s ei voi poistaa\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: varjotietuetta ryhmälle %s ei voi päivittää\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: ryhmän %s tietuetta ei voi päivittää\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi päivittää\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: ryhmätiedostoa ei voi päivittää\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi poistaa\n"
@@ -1105,13 +1050,13 @@ msgstr "Käyttö: id\n"
 msgid " groups="
 msgstr " ryhmät="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1122,41 +1067,41 @@ msgstr ""
 "  -h, --help            Näytä tämä ohje ja lopeta\n"
 "  -t, --time PÄIVÄÄ     Tulosta vain PÄIVÄÄ tuoreemmat lastlog-tietueet\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Käyttäjä         Portti   Mistä            Viimeksi\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Käyttäjä                Portti   Viimeksi\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Ei koskaan kirjautunut sisään**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Käyttö: %s [-p] [nimi]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h isäntä] [-f nimi]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r isäntä\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Virheellinen kirjautumisaika\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1165,7 +1110,7 @@ msgstr ""
 "\n"
 "Järjestelmä on suljettu ylläpidon ajaksi\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1174,7 +1119,7 @@ msgstr ""
 "\n"
 "[Yhteydenkatkaisu ohitettu -- pääkäyttäjän kirjautuminen sallittu.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1183,17 +1128,17 @@ msgstr ""
 "\n"
 "Sisäänkirjautuminen keskeytetty %d sekunnin jälkeen.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " päätteeltä \"%.100s\" osoitteesta \"%.200s\""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " päätteeltä \"%.100s\""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1202,39 +1147,30 @@ msgstr ""
 "\n"
 "%s-tunnus: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "tunnus: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Sisäänkirjautuminen epäonnistui"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 "Varoitus: sisäänkirjautuminen uudelleen käytössä hetkellisen eston jälkeen.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Edellinen kirjautuminen: %s päätteellä %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Edellinen kirjautuminen: %.19s päätteellä %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " osoitteesta %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Aloitettu rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1275,17 +1211,17 @@ msgstr "%s: virhe lisättäessä tietuetta nimelle %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "lisätty %d tietuetta, pisin oli %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Käyttö: %s [-vf] [-p|g|sp|sg] tiedosto\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Käyttö: %s [-vf] [-p|g|sp] tiedosto\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Käyttö: %s [-vf] [-p|g] tiedosto\n"
@@ -1305,16 +1241,16 @@ msgstr "Käyttö: sg ryhmä [[-c] komento]\n"
 msgid "unknown uid: %u\n"
 msgstr "tuntematon uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "tuntematon gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Pahoittelen.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "liian monta ryhmää\n"
@@ -1324,91 +1260,91 @@ msgstr "liian monta ryhmää\n"
 msgid "Usage: %s [input]\n"
 msgstr "Käyttö: %s [syöte]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: tiedostoa /etc/passwd ei voi lukita.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: tiedostoja ei voi lukita, yritä myöhemmin uudelleen\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: tiedostoja ei voi avata\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: rivi %d: virheellinen rivi\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: rivi %d: GIDiä ei voi luoda\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: rivi %d: UID:tä ei voi luoda\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: rivi %d: käyttäjää %s ei löydy\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: rivi %d: salasanaa ei voi päivittää\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: rivi %d: mkdir epäonnistui\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: rivi %d: chown epäonnistui\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: rivi %d: tietuetta ei voi päivittää\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: virhe päivitettäessä tiedostoja\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Käyttö: %s [-f|-s] [nimi]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x kork] [-n väh] [-w varoitus] [-i poiskäyt] nimi\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "        %s {-l|-u|-d|-S|-e} nimi\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Vanha salasana: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Väärä salasana käyttäjälle \"%s\"\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1417,16 +1353,16 @@ msgstr ""
 "Syötä uusi salasana (vähintään %d ja korkeintaan %d merkkiä)\n"
 "Käytäthän salasanassa numeroita sekä pien- ja suuraakkosia.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Uusi salasana: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Yritä uudelleen.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1435,52 +1371,52 @@ msgstr ""
 "\n"
 "Varoitus: heikko salasana (syötä uudelleen käyttääksesi joka tapauksessa).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
-msgstr "Ne eivät täsmää.  Yritä uudelleen.\n"
+msgstr "Ne eivät täsmää. Yritä uudelleen.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Käyttäjän %s salasanaa ei voi vaihtaa.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Pahoittelen, käyttäjän %s salasanaa ei voi vaihtaa vielä.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: muisti loppui\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Komento %s ei voi suorittaa"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: tietolähdettä %s ei tueta\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Et voi vaihtaa käyttäjän %s salasanaa.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Et voi katsoa tai muokata käyttäjän %s salasanatietoja.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Vaihdetaan salasana käyttäjälle %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Käyttäjän %s salasanaa ei vaihdettu.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Salasana vaihdettu.\n"
@@ -1495,49 +1431,49 @@ msgstr "Käyttö: %s [-q] [-r] [-s] [passwd [varjo]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Käyttö: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "virheellinen sanasanatiedostotietue\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "kaksinkertainen salasanatietue\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "virheellinen käyttäjätunnus \"%s\"\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "käyttäjä %s: ei ryhmää %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "käyttäjä %s: hakemistoa %s ei ole olemassa\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "käyttäjä %s: kuorta %s ei ole olemassa\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "virheellinen tietue varjosalasanatiedostossa\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "kaksinkertainen varjosalasanatietue\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "ei täsmäävää tietuetta salasanatiedostossa\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "käyttäjä %s: viimeisin salasanan vaihto tapahtunut tulevaisuudessa\n"
@@ -1557,17 +1493,17 @@ msgstr "%s: passwd-tiedostoa ei voi avata\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: varjotietuetta %s ei voi poistaa\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: salasanatietuetta %s ei voi päivittää\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: varjotiedostoa ei voi päivittää\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: salasanatiedostoa ei voi päivittää\n"
@@ -1577,40 +1513,40 @@ msgstr "%s: salasanatiedostoa ei voi päivittää\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: käyttäjän %s tietuetta ei voi päivittää\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi poistaa\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Pahoittelen."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: täytyy suorittaa päätteessä\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: virhe %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Tuntematon id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Sinulla ei ole lupaa asettua käyttäjäksi %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Syötä oma salasanasi.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1619,22 +1555,22 @@ msgstr ""
 "%s: %s\n"
 "(Ohitettu)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Ei kuorta\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Tunnuksen vaihtaminen täksi käyttäjäksi EVÄTTY.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Salasanatodennus ohitettu.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Syötä OMA salasanasi todennukseksi.\n"
@@ -1649,7 +1585,7 @@ msgstr "Ei salasanatiedosto\n"
 msgid "No password entry for 'root'\n"
 msgstr "Ei salasanatietuetta pääkäyttäjälle (\"root\")\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1659,236 +1595,216 @@ msgstr ""
 "Paina ctrl-d jatkaaksesi normaalia käynnistystä,\n"
 "(tai syötä pääkäyttäjän salasana järjestelmän ylläpitämiseksi):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Siirrytään järjestelmän ylläpitotilaan\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: uudelleenkoostetaan ryhmätietokanta\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: uudelleenkoostetaan varjoryhmätietokanta\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: virheellinen numeroargumentti \"%s\"\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: tuntematon gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: tuntematon ryhmä %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: uutta defaults-tiedostoa ei voi luoda\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: uutta defaults-tiedostoa ei voi avata\n"
 
 # Kannattaako tuota kääntää, siinä viitataan rename()-funktioon...
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: rename: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: ryhmä \"%s\" ei ole NIS-ryhmä.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: liian monta ryhmää määritelty (korkeintaan %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Käyttö: useradd [-u uid [-o]] [-g ryhmä] [-G ryhmä,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "               [-d koti] [-s kuori] [-c komento] [-m [-k malli]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "               [-f poiskäytöstä] [-e vanhenee]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "               [-p salansana] nimi\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       useradd -D [-g ryhmä] [-b perus] [-s kuori]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: virhe lukittaessa ryhmätiedostoa\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: virhe avattaessa ryhmätiedostoa\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: virhe lukittaessa varjoryhmätiedostoa\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: virhe avattaessa varjoryhmätiedostoa\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u ei ole ainutkertainen\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: ainutkertaista uidia ei saa\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: virheellinen perushakemisto \"%s\"\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: virheellinen kommentti \"%s\"\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: virheellinen kotihakemisto \"%s\"\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: virheellinen päiväys \"%s\"\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: varjosalasanat vaaditaan valitsimelle -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: varjosalasanat vaaditaan valitsimelle -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: virheellinen kenttä \"%s\"\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: virheellinen kuori \"%s\"\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: virheellinen käyttäjätunnus \"%s\"\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: salasanatiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi uudelleenkirjoittaa\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: salasanatiedostoa ei voi lukita\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: salasanatiedostoa ei voi avata\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi lukita\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: varjosalasanatiedostoa ei voi avata\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: virhe lisättäessä uutta salasanatietuetta\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: virhe päivitettäessä salasana-dbm-tietuetta\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: virhe lisättäessä uutta varjosalasanatietuetta\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: virhe päivitettäessä varjosalasana-dbm-tietuetta\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: hakemistoa %s ei voi luoda\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Ryhmää nimeltä \"mail\" ei ole olemassa, luodaan postilaatikko oikeuksilla "
 "0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Käyttäjälle %s ei voi luoda postilaatikkoa.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: käyttäjä %s on olemassa\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1896,206 +1812,171 @@ msgstr ""
 "%s: ryhmä %s on olemassa - jos haluat lisätä tämän käyttäjän ryhmään, käytä "
 "valitsinta -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: varoitus: CREATE_HOME ei tuettu, käytä -m sen sijaan.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Käyttö: %s [-r] nimi\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: virhe päivitettäessä ryhmätietuetta\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: dbm-ryhmätietuetta ei voi päivittää\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: dbm-ryhmätietuetta ei voi poistaa\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: ryhmätiedostoa ei voi avata\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: varjoryhmätiedostoa ei voi avata\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: virhe poistettaessa salasanatietuetta\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: virhe poistettaessa varjosalasanatietuetta\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: virhe poistettaessa salasana-dbm-tietuetta\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: virhe poistettaessa varjosalasana-dbm-tietuetta\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: käyttäjä %s on nyt sisäänkirjautuneena\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: tiedoston %s omistaja ei ole %s, ei poisteta\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: varoitus: ei voi poistaa tiedostoa "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: käyttäjää %s ei ole olemassa\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: käyttäjä %s on NIS-käyttäjä\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: ei poisteta hakemistoa %s (poistettaisiin käyttäjän %s kotihakemisto)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: virhe poistettaessa hakemistoa %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Käyttö: %s\t[-u uid [-o]] [-g ryhmä] [-G ryhmä,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d koti [-m]] [-s kuori] [-c kommentti] [-l uusi_nimi]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f poiskäytöstä] [-e vanhenee] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passwd] [-L|-U] nimi\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: muisti loppui funktiossa update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: muisti loppui funktiossa update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: lippuja ei annettu\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: varjosalasanat vaaditaan valitsimille -e ja -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu ei ole ainutkertainen\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: virhe muutettaessa salasanatietuetta\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: virhe poistettaessa salasanatietuetta\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: virhe lisättäessä salasana-dbm-tietuetta\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: virhe poistettaessa salasana-dbm-tietuetta\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: virhe poistettaessa varjosalasanatietuetta\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: virhe poistettaessa varjosalasana-dbm-tietuetta\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: hakemisto %s on olemassa\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: tiedostoa %s ei voi luoda\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: tiedoston %s omistajaa ei voi asettaa\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: hakemistoa %s ei voi uudelleennimetä hakemistoksi %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: varoitus: tiedoston %s omistaja ei ole %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "postilaatikon omistajan vaihtaminen epäonnistui"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "postilaatikon uudelleennimeäminen epäonnistui"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2104,21 +1985,21 @@ msgstr ""
 "\n"
 "%s: tiedostoa %s ei muutettu\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Tiedostoa ei voi lukita"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Tiedostoa ei voi varmuuskopioida"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 "%s: tiedostoa %s ei voi palauttaa: %s (muutoksesi ovat tiedostossa %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 8ae45bb60c67d97dde36615339b55fcb0eea27ed..dd66cd40eecf365a845258e4e176287168a568ea 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 60ee3372f34642dec990fa0a1a65033007b22482..47e53a70ca5ef1eabf010ba5e63b69a5291831c9 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,34 +1,37 @@
+# translation of fr.po to French
 # shadow fr.po
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# Vincent Renardias <vincent@ldsol.com>, 1999
+# Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
 # Patches, suggestions, etc welcome.
+# Vincent Renardias <vincent@ldsol.com>, 1999, 2005.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 19990709\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 1999-07-09 20:02+0200\n"
-"Last-Translator: Vincent Renardias <vincent@ldsol.com>\n"
-"Language-Team: Vincent Renardias <vincent@ldsol.com>\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-20 22:39+0200\n"
+"Last-Translator: Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>\n"
+"Language-Team:  French <debian-l10n-french@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Generator: KBabel 1.9.1\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
-msgstr "Avertissement: le groupe %s est inconnu\n"
+msgstr "Attention: le groupe %s est inconnu\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
-msgstr "Avertissement: trop de groupes\n"
+msgstr "Attention: il y a trop de groupes\n"
 
 #: libmisc/age.c:72
 #, c-format
 msgid "Your password has expired."
-msgstr "Votre mot de passe a expiré."
+msgstr "Votre mot de passe est arrivé en fin de validité."
 
 #: libmisc/age.c:75
 #, c-format
@@ -38,92 +41,82 @@ msgstr "Votre mot de passe est désactivé."
 #: libmisc/age.c:78
 #, c-format
 msgid "Your login has expired."
-msgstr "Votre compte a expiré."
+msgstr "Votre compte est arrivé en fin de validité."
 
 #: libmisc/age.c:90
 msgid "  Contact the system administrator.\n"
-msgstr "  Contactez l'administrateur système.\n"
+msgstr "  Contactez l'administrateur du système.\n"
 
 #: libmisc/age.c:93
 msgid "  Choose a new password.\n"
 msgstr "  Choisissez un nouveau mot de passe.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
-msgstr "Votre mot de passe expirera dans %ld jours.\n"
+msgstr "Votre mot de passe arrivera en fin de validité dans %ld jours.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
-msgstr "Votre mot de passe expirera demain.\n"
+msgstr "Votre mot de passe arrivera demain en fin de validité.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
-msgstr "Votre mot de passe expirera aujourd'hui.\n"
+msgstr "Votre mot de passe arrive aujourd'hui en fin de validité.\n"
 
 #: libmisc/chowntty.c:106
 #, c-format
 msgid "Unable to change tty %s"
-msgstr "Impossible de changer le tty %s"
+msgstr "Impossible de modifier le tty %s"
 
 #: libmisc/env.c:155
 #, c-format
 msgid "Environment overflow\n"
-msgstr "Dépassement de l'environnement\n"
+msgstr "Débordement de l'environnement\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Vous ne pouvez pas changer $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s depuis la dernière connexion. La dernière fut le %s sur %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "échecs"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "échec"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d échec depuis la dernière connexion.\n"
+"Le dernier échec était le %s sur %s.\n"
+msgstr[1] ""
+"%d échecs depuis la dernière connexion.\n"
+"Le dernier échec était le %s sur %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Trop de connexions.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Le mot de passe ne décrypte pas le clé secréte pour %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Impossible de changer la clé secréte de %s: le daemon keyserv fonctionne-t-"
-"il?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
-msgstr "Vous avez des nouveaux messages."
+msgstr "Vous avez de nouveaux messages."
 
 #: libmisc/mail.c:72
 msgid "No mail."
-msgstr "Pas de courier."
+msgstr "Pas de courrier."
 
 #: libmisc/mail.c:74
 msgid "You have mail."
-msgstr "Vous avez du courier."
+msgstr "Vous avez du courrier."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
-msgstr "Mauvais mot de passe: %s.  "
+msgstr "Mot de passe incorrect: %s.  "
 
 #: libmisc/pam_pass.c:38
 #, c-format
@@ -135,20 +128,20 @@ msgstr "passwd: échec de pam_start(), erreur %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: le mot de passe a été mis à jour avec succès\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
-msgstr "Impossible d'aller dans \"%s\"\n"
+msgstr "Impossible d'aller dans le répertoire « %s »\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Pas de répertoire, connexion avec HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Impossible d'exécuter %s"
@@ -156,203 +149,198 @@ msgstr "Impossible d'exécuter %s"
 #: libmisc/sub.c:55
 #, c-format
 msgid "Invalid root directory \"%s\"\n"
-msgstr "Répertoire root \"%s\" non valide\n"
+msgstr "Répertoire racine « %s » incorrect\n"
 
 #: libmisc/sub.c:67
 #, c-format
 msgid "Can't change root directory to \"%s\"\n"
-msgstr "Impossible de changer le répertoire racine en \"%s\"\n"
+msgstr "Impossible de changer le répertoire racine en « %s »\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "échec de malloc(%d)\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
-msgstr "Impossible d'allouer l'espace pour l'information sur la conf.\n"
+msgstr ""
+"Impossible d'allouer l'espace pour l'information sur la configuration.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
-"erreur de configuration - élément '%s' inconnu (avertissez "
+"erreur de configuration - élément « %s » inconnu (prévenez "
 "l'administrateur)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Mot de passe: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Mot de passe de %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "             [-I inactive] [-E expire] [-d last_day] user\n"
 msgstr ""
-"Usage: chage [-l] [-m min_jourss] [-M max_jours] [-W avertissement]\n"
+"Usage: chage [-l] [-m min_jours] [-M max_jours] [-W avertissement]\n"
 "             [-I inactif] [-E expire] [-d dernier_jour] utilisateur\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
-msgstr "Entrez la nouvelle valeur ou tapez Entrée pour le défaut\n"
+msgstr ""
+"Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
-msgstr "Age minimum du mot de passe"
+msgstr "Durée minimale de validité du mot de passe"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
-msgstr "Age maximum du mot de passe"
+msgstr "Durée maximale de validité du mot de passe"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
-msgstr "Dernier changement de mot de passe (YYYY-MM-DD)"
+msgstr "Dernier changement de mot de passe (AAAA-MM-JJ)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
-msgstr "Avertissement d'expiration de mot de passe"
+msgstr "Avertissement de fin de validité du mot de passe"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Mot de passe désactivé"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
-msgstr "Date d'expiration du compte (YYYY-MM-DD)"
+msgstr "Date de fin de validité du compte (AAAA-MM-JJ)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "Dernier changement de mot de passe (YYYY-MM-DD)"
+msgstr "Dernier changement de mot de passe\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
-msgstr "Jamais\n"
+msgstr "jamais\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "Expiration du mot de passe :\t"
+msgstr "Fin de validité du mot de passe\t\t\t\t\t: "
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "Mot de passe désactivé:\t"
+msgstr "Mot de passe désactivé\t\t\t\t\t: "
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Expiration du mot de passe:\t"
+msgstr "Fin de validité du compte\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
+"Nombre minimum de jours entre les changements de mot de passe\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
+"Nombre maximum de jours entre les changements de mot de passe\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
+"Nombre de jours d'avertissement avant la fin de validité du mot de passe\t: %"
+"ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
-msgstr "%s: ne pas include \"l\" avec les autres drapeaux\n"
+msgstr "%s: ne pas mélanger « l » avec les autres indicateurs\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: permission refusée\n"
+msgstr "%s: permission refusée.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
-#, fuzzy, c-format
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
+#, c-format
 msgid "%s: PAM authentication failed\n"
-msgstr "%s: erreur lors de l'ajout de la méthode d'authentification\n"
+msgstr "%s: échec de la méthode d'authentification PAM\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
-msgstr "%s: impossible d'ouvrir le fichier de mots de passe\n"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: utilisateur %s inconnu\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
-msgstr "%s: impossible de vérouiller le fichier shadow password"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe cachés"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
-msgstr "%s: impossible d'ouvrir le fichier shadow password"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe cachés"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
-msgstr "Changement des informations sur l'age pour %s\n"
+msgstr "Changement des informations sur la limite de validité pour %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
-msgstr "%s: erreur lors du changement des champs\n"
+msgstr "%s: erreur lors de la modification des champs\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
-msgstr "%s: impossible de mettre à jour le fichier passwd\n"
+msgstr "%s: impossible de mettre à jour le fichier des mots de passe\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
-msgstr "%s: impossible de mettre à jour le fichier shadow password\n"
+msgstr "%s: impossible de mettre à jour le fichier des mots de passe cachés\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Erreur durant la mise à jour de l'entrée du mot de passe DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
-msgstr "%s: impossible de re-écrire le fichier shadow password\n"
+msgstr "%s: impossible de réécrire le fichier des mots de passe cachés\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
-msgstr "%s: impossible de re-écrire le fichier password\n"
+msgstr "%s: impossible de réécrire le fichier des mots de passe\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
-#, fuzzy, c-format
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
+#, c-format
 msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: impossible de dévérouiller le fichier\n"
+msgstr "%s: erreur de PAM chauthtok\n"
 
 #: src/chfn.c:84
 #, c-format
@@ -360,126 +348,133 @@ msgid ""
 "Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
 "\t[-h home_ph] [-o other] [user]\n"
 msgstr ""
-"Usage: %s [-f nom_complet] [-r no_bureau] [-w tel_bureau]\n"
+"Usage: %s [-f nom_complet] [-r num_bureau] [-w tel_bureau]\n"
 "\t[-h tel_perso] [-o autre] [utilisateur]\n"
 
 #: src/chfn.c:89
 #, c-format
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
-msgstr "Usage: %s [-f nom_complet] [-w no_bureau] [-h tel_bureau]\n"
+msgstr ""
+"Usage: %s [-f nom_complet] [-r num_bureau] [-w tel_bureau] [-h tel_maison]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nom complet"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNom complet: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "No de bureau"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
-msgstr "Téléphone travail"
+msgstr "Téléphone professionnel"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
-msgstr "Téléphone perso"
+msgstr "Téléphone personnel"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Autre"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Impossible de déterminer votre nom d'utilisateur.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
-msgstr "%s: impossible de changer l'utilisateur `%' sur le client NIS.\n"
+msgstr "%s: impossible de changer l'utilisateur « %s » sur le client NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
-msgstr "%s: `%s' est le maître NIS pour ce client.\n"
+msgstr "%s: « %s » est le maître NIS pour ce client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: permission refusée.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
-msgstr "Changement de l'information utilisateur pour %s\n"
+msgstr "Modification des informations relatives à l'utilisateur %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
-msgstr "%s: nom non valide: \"%s\"\n"
+msgstr "%s: nom incorrect: « %s »\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
-msgstr "%s: no de bureau non valide: \"%s\"\n"
+msgstr "%s: numéro de bureau non valable: « %s »\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
-msgstr "%s: téléphone du bureau non valide: \"%s\"\n"
+msgstr "%s: téléphone professionnel non valable: « %s »\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
-msgstr "%s: téléphone perso non valide: \"%s\"\n"
+msgstr "%s: téléphone personnel non valable: « %s »\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
-msgstr "%s: \"%s\" contient des caractères non valide\n"
+msgstr "%s: « %s » contient des caractères incorrects\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: champs trop longs\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
-msgstr "Impossible de changer l'ID en root.\n"
+msgstr "Impossible de changer l'identifiant root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
-"Impossible de vérouiller le fichier de mots de passe; essayez plus tard.\n"
+"Impossible de verrouiller le fichier des mots de passe ; réessayez plus "
+"tard.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
-msgstr "Impossible d'ouvrir le fichier de mots de passe.\n"
+msgstr "Impossible d'ouvrir le fichier des mots de passe.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s non trouvé dans /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
-msgstr "Erreur durant la mise à jour du mot de passe.\n"
+msgstr "Erreur lors de la mise à jour du mot de passe.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
-msgstr "Impossible de valider le changement de mot de passe.\n"
+msgstr "Impossible de valider le changement du mot de passe.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
-msgstr "Impossible de dévérouiller le fichier de mots de passe.\n"
+msgstr "Impossible de déverrouiller le fichier des mots de passe.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -490,98 +485,106 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"Usage: chpasswd [options]\n"
+"\n"
+"Options :\n"
+"  -e, --encrypted\tles mots de passe fournis sont chiffrés\n"
+"  -h, --help\t\tafficher ce message d'aide et quitter\n"
+"  -m, --md5\t\tUtiliser le chiffrage MD5 à la place de DES lorsque\n"
+"\t\t\tles mots de passe fournis ne sont pas chiffrés\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
-msgstr "%s: impossible de vérouiller de fichier de mots de passe\n"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
-msgstr "%s: impossible de vérouiller le fichier shadow\n"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe cachés\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
-msgstr "%s: impossible d'ouvrir le fichier shadow\n"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe cachés\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: ligne %d: ligne trop longue\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: ligne %d: nouveau mot de passe manquant\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: ligne %d: utilisateur %s inconnu\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: ligne %d: impossible de mettre le mot de passe à jour\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
-msgstr "%s: erreur détectée; changements ignorés\n"
+msgstr "%s: erreur détectée ; changements ignorés\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
-msgstr "%s: erreur lors de la mise à jour du fichier shadow\n"
+msgstr ""
+"%s: erreur lors de la mise à jour du fichier des mots de passe cachés\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
-msgstr "%s: erreur lors de la mise à jour du fichier de mots de passe\n"
+msgstr "%s: erreur lors de la mise à jour du fichier des mots de passe\n"
 
 #: src/chsh.c:76
 #, c-format
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Usage: %s [-s shell] [nom]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
-msgstr "Shell de login"
+msgstr "Interpréteur interactif"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
-msgstr "Vous ne pouvez pas changer le shell de %s.\n"
+msgstr "Vous ne pouvez pas changer l'interpréteur de commandes de %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
-msgstr "Changement du shell de login pour %s\n"
+msgstr "Changement d'interpréteur de commandes initial pour %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
-msgstr "%s: Entrée non valide: %s\n"
+msgstr "%s: Entrée non valable: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
-msgstr "%s n'est pas un shell valide.\n"
+msgstr "%s n'est pas un interpréteur de commandes valable.\n"
 
 #: src/expiry.c:59
 #, c-format
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Usage: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
-msgstr "%s: AVERTISSEMENT! Devrait être set-UID root!\n"
+msgstr "%s: ATTENTION, doit s'exécuter avec les droits du superutilisateur.\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: utilisateur inconnu\n"
@@ -595,320 +598,303 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
-
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Utilisateur Échecs   Maximum  Dernier\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s sur %s"
-
-#: src/faillog.c:107
+"Usage: faillog [options]\n"
+"\n"
+"Options :\n"
+"  -a, --all            afficher les enregistrements « faillog » pour tous\n"
+"                       les utilisateurs\n"
+"  -h, --help           afficher ce message d'aide et quitter\n"
+"  -l, --lock-time SEC  après une connexion refusée, verrouiller le compte\n"
+"                       pendant SEC secondes\n"
+"  -m, --maximum MAX    positionner les compteurs de connexions refusées à\n"
+"                       MAX\n"
+"  -r, --reset          remettre à zéro les compteurs de connexions refusées\n"
+"  -t, --time JOURS     afficher les échecs de connexions datant de moins de\n"
+"                       JOURS\n"
+"  -u, --user LOGIN     afficher l'enregistrement « faillog » ou gérer les\n"
+"                       compteurs et les limites (si utilisé conjointement "
+"aux\n"
+"                       options -r, -m ou -l) d'échecs uniquement pour\n"
+"                       l'utilisateur dont le compte est LOGIN\n"
+
+#: src/faillog.c:87
+#, c-format
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Identifiant Échecs   Maximum Dernier                 Sur\n"
+
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
-msgstr " [%lds restant]"
+msgstr " [%lds restants]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds verrou]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Utilisateur %s inconnu\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Usage: %s [-r|-R] groupe\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a utilisateur] groupe\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d utilisateur] groupe\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A utilisateur,...] [-M utilisateur,...] groupe\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M utilisateur,...] groupe\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
-msgstr "%s: mots de passe shadow nécessaires pour -A\n"
+msgstr "%s: mots de passe de groupe cachés nécessaires pour -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
-msgstr "Qui êtes vous?\n"
+msgstr "Qui êtes-vous ?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "groupe inconnu: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Ajout de l'utilisateur %s au groupe %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Retrait de l'utilisateur %s du groupe %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: membre %s inconnu\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
-msgstr "%s: N'est pas un tty\n"
+msgstr "%s: n'est pas un tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
-msgstr "Changement du mot de passe pour le group %s\n"
+msgstr "Changement du mot de passe pour le groupe %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nouveau mot de passe: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
-msgstr "Nouveau mot de passe (à nouveau): "
+msgstr "Nouveau mot de passe (pour vérification): "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
-msgstr "Ils ne sont pas identiques; essayez à nouveau"
+msgstr "Les mots de passe ne correspondent pas. Essayez à nouveau"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
-msgstr "%s: Essayez à nouveau plus tard\n"
+msgstr "%s: réessayez plus tard\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: impossible d'obtenir le verrou\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
-msgstr "%s: impossible d'obtenir le verrou sur shadow\n"
+msgstr "%s: impossible d'obtenir le verrou sur les mots de passe cachés\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: impossible d'ouvrir le fichier\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: impossible de mettre à jour l'entrée\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
-msgstr "%s: impossible de mettre à jour l'entrée shadow\n"
+msgstr "%s: impossible de mettre à jour l'entrée du mot de passe caché\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
-msgstr "%s: impossible de re-écrire le fichier\n"
+msgstr "%s: impossible de réécrire le fichier\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
-msgstr "%s: impossible de re-écrire le fichier shadow\n"
+msgstr "%s: impossible de réécrire le fichier des mots de passe cachés\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
-msgstr "%s: impossible de dévérouiller le fichier\n"
+msgstr "%s: impossible de déverrouiller le fichier\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: impossible de mettre à jours les fichiers DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: impossible de mettre à jours les fichiers DBM shadow\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Usage: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
-msgstr "%s: erreur durant l'addition du nouveau groupe\n"
+msgstr "%s: erreur lors de l'ajout du nouveau groupe\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: impossible d'ajouter une nouvelle entrée pour le groupe dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: le nom %s n'est pas unique\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
-msgstr "%s: l'uid %u n'est pas unique\n"
+msgstr "%s: le gid %u n'est pas unique\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: impossible d'obtenir un gid unique\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s n'est pas un nom de groupe valide\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
-msgstr "%s: groupe %s non valide\n"
+msgstr "%s: groupe %s non valable\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O requiert NAME=VALEUR\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
-msgstr "%s: impossible de re-écrire le fichier group\n"
+msgstr "%s: impossible de réécrire le fichier group\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
-msgstr "%s: impossible de re-écrire le fichier shadow group\n"
+msgstr "%s: impossible de réécrire le fichier des groupes cachés\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
-msgstr "%s: impossible de vérouiller le fichier group\n"
+msgstr "%s: impossible de verrouiller le fichier des groupes\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
-msgstr "%s: impossible d'ouvrir le fichier group\n"
+msgstr "%s: impossible d'ouvrir le fichier des groupes\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
-msgstr "%s: impossible de vérouiller le fichier group\n"
+msgstr "%s: impossible de verrouiller le fichier des groupes\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
-msgstr "%s: impossible d'ouvrir le fichier shadow group\n"
+msgstr "%s: impossible d'ouvrir le fichier des groupes cachés\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: le groupe %s existe\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Usage: groupdel groupe\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
-msgstr "%s: erreur lors de retrait de l'entrée du groupe\n"
+msgstr "%s: erreur lors de la suppression de l'entrée du groupe\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: erreur lors du retrait de l'entrée dbm du groupe\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
-msgstr "%s: erreur lors du retrait de l'entrée shadow du groupe\n"
-
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: erreur lors du retrait de l'entrée dbm shadow du groupe\n"
+msgstr "%s: erreur lors de la suppression de l'entrée cachée du groupe\n"
 
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
-msgstr "%s: impossible d'enlever l'utilisateur de son groupe primaire.\n"
+msgstr "%s: impossible d'enlever le groupe primaire de l'utilisateur.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: le groupe %s n'existe pas\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: le groupe %s est un groupe NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s est le maître NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Usage: groupmod [-g gid [-o]] [-n nom] groupe\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s non trouvé dans /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: impossible d'ajouter une nouvelle entrée dbm shadow group\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u n'est pas un gid unique\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s n'est pas un nom unique\n"
@@ -918,159 +904,154 @@ msgstr "%s: %s n'est pas un nom unique\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Usage: %s [-r] [-s] [groupe [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Usage: %s [-r] [-s] [groupe]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Non"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
-msgstr ""
+msgstr "%s: -s et -r sont incompatibles\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
-msgstr "%s: impossible de vérouiller le fichier %s\n"
+msgstr "%s: impossible de verrouiller le fichier %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: impossible d'ouvrir le fichier %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
-msgstr "entrée dans le fichier group non valide\n"
+msgstr "entrée non valable dans le fichier de groupe\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
-msgstr "effacer la ligne `%s'? "
+msgstr "effacer la ligne « %s » ? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "entrée de groupe dupliquée\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
-msgstr "nom de groupe `%s' non valide\n"
+msgstr "nom de groupe « %s » non valable\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "groupe %s: pas d'utilisateur %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
-msgstr "effacer le membre `%s'? "
+msgstr "effacer le membre « %s » ? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
-msgstr "entrée non valide dans le fichier shadow group\n"
+msgstr "entrée non valable dans le fichier des groupes cachés\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
-msgstr "entrée dupliquée dans le fichier shadow group\n"
+msgstr "entrée dupliquée dans le fichier des groupes cachés\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
-msgstr "aucune entrée dans le fichier group correspondante\n"
+msgstr "aucune entrée correspondante dans le fichier des groupes\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
-msgstr "groupe shadow %s: aucun administrateur %s\n"
+msgstr "groupe caché %s: aucun administrateur %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
-msgstr "effacer le membre administrateur `%s' ?"
+msgstr "effacer le membre administrateur « %s » ? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
-msgstr "groupe shadow %s: aucun utilisateur %s\n"
+msgstr "groupe caché %s: aucun utilisateur %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: impossible de mettre à jour le fichier %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: les fichiers ont été mis à jour; exécutez mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: les fichiers ont été mis à jour\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
-#, fuzzy, c-format
+#: src/grpck.c:641 src/pwck.c:607
+#, c-format
 msgid "%s: no changes\n"
-msgstr "%s: erreur lors du changement des champs\n"
-
-#: src/grpck.c:651 src/pwck.c:616
-#, fuzzy, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: les fichiers ont été mis à jour; exécutez mkpasswd\n"
+msgstr "%s: aucun changement\n"
 
 #: src/grpconv.c:60 src/grpunconv.c:56
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't lock group file\n"
-msgstr "%s: impossible de dévérouiller le fichier\n"
+msgstr "%s: impossible de verrouiller le fichier de groupe\n"
 
 #: src/grpconv.c:65 src/grpunconv.c:61
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't open group file\n"
-msgstr "%s: impossible d'ouvrir le fichier group\n"
+msgstr "%s: impossible d'ouvrir le fichier de groupe\n"
 
 #: src/grpconv.c:70 src/grpunconv.c:66
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't lock shadow group file\n"
-msgstr "%s: impossible de vérouiller le fichier shadow\n"
+msgstr "%s: impossible de verrouiller le fichier caché de groupe\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
-#, fuzzy, c-format
+#: src/grpconv.c:75 src/grpunconv.c:71
+#, c-format
 msgid "%s: can't open shadow group file\n"
-msgstr "%s: impossible d'ouvrir le fichier shadow group\n"
+msgstr "%s: impossible d'ouvrir le fichier caché de groupe\n"
 
-#: src/grpconv.c:94
-#, fuzzy, c-format
+#: src/grpconv.c:92
+#, c-format
 msgid "%s: can't remove shadow group %s\n"
-msgstr "%s: impossible d'enlever l'entrée shadow pour %s\n"
+msgstr "%s: impossible de supprimer le groupe caché %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
-#, fuzzy, c-format
+#: src/grpconv.c:130 src/pwconv.c:153
+#, c-format
 msgid "%s: can't update shadow entry for %s\n"
-msgstr "%s: impossible de mettre à jour l'entrée shadow\n"
+msgstr "%s: impossible de mettre à jour l'entrée cachée pour %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
-#, fuzzy, c-format
+#: src/grpconv.c:140 src/grpunconv.c:88
+#, c-format
 msgid "%s: can't update entry for group %s\n"
-msgstr "%s: impossible de mettre à jour l'entrée %s\n"
+msgstr "%s: impossible de mettre à jour l'entrée pour le groupe %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
-#, fuzzy, c-format
+#: src/grpconv.c:147 src/grpunconv.c:96
+#, c-format
 msgid "%s: can't update shadow group file\n"
-msgstr "%s: impossible de mettre à jour le fichier shadow\n"
+msgstr "%s: impossible de mettre à jour le fichier caché de groupe\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
-#, fuzzy, c-format
+#: src/grpconv.c:152 src/grpunconv.c:102
+#, c-format
 msgid "%s: can't update group file\n"
-msgstr "%s: impossible de mettre à jour le fichier passwd\n"
+msgstr "%s: impossible de mettre à jour le fichier de groupe\n"
 
-#: src/grpunconv.c:110
-#, fuzzy, c-format
+#: src/grpunconv.c:107
+#, c-format
 msgid "%s: can't delete shadow group file\n"
-msgstr "%s: impossible de re-écrire le fichier shadow group\n"
+msgstr "%s: impossible de supprimer le fichier caché de groupe\n"
 
 #: src/id.c:53
 #, c-format
@@ -1087,52 +1068,60 @@ msgstr "Usage: id\n"
 msgid " groups="
 msgstr " groupes="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"Usage: lastlog [options]\n"
+"\n"
+"Options :\n"
+"  -u, --login LOGIN   afficher l'enregistrement « lastlog » "
+"pour                       l'utilisateur dont le compte est LOGIN\n"
+"  -h, --help          afficher ce message d'aide et quitter\n"
+"  -t, --time JOURS    afficher uniquement les enregistrements "
+"de                       « lastlog » plus récents que JOURS\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Utilisateur      Port     Venant de        Dernière\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Utilisateur             Port     Dernière\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Jamais connecté**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Usage: %s [-p] [nom]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h hôte] [-f nom]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r hôte\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
-msgstr "Heure de connexion non valide\n"
+msgstr "Heure de connexion non valable\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1141,16 +1130,16 @@ msgstr ""
 "\n"
 "Système fermé pour maintenance\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 "\n"
-"[Disconnexion court-circuitée -- login root authorisé.]\n"
+"[Déconnexion court-circuitée -- accès superutilisateur autorisé].\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1159,17 +1148,17 @@ msgstr ""
 "\n"
 "Tentative de connexion: délai de %d secondes dépassé.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
-msgstr " sur `%.100s' à partir de `%.200s'"
+msgstr " sur « %.100s » à partir de « %.200s »"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
-msgstr " sur `%.100s'"
+msgstr " sur « %.100s »"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1178,42 +1167,34 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
-msgstr "Login incorrect"
+msgstr "Identifiant incorrect"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
-msgstr "Avertissement: login réactivé après une désactivation temporaire.\n"
+msgstr "Attention: identifiant réactivé après une désactivation temporaire.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Dernière connexion: le %s sur %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Dernière connexion: le %.19s sur %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " à partir de %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Démarrage de rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
-msgstr "%s: pas de base de données DBM sur le système - aucune action prise\n"
+msgstr ""
+"%s: pas de base de données DBM sur le système - aucune action effectuée\n"
 
 #: src/mkpasswd.c:231 src/mkpasswd.c:236
 #, c-format
@@ -1228,39 +1209,39 @@ msgstr "%s: impossible d'ouvrir les fichiers DBM pour %s\n"
 #: src/mkpasswd.c:286
 #, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr ""
+msgstr "%s: la ligne commençant par %.16s... est trop longue\n"
 
 #: src/mkpasswd.c:313
 #, c-format
 msgid "%s: error parsing line \"%s\"\n"
-msgstr "%s: erreur lors l'analyse de la ligne \"%s\"\n"
+msgstr "%s: erreur lors l'analyse de la ligne « %s »\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "%s: erreur lors de l'ajout de la nouvelle entrée\n"
+msgstr "ajout d'un enregistrement pour le nom %s\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: erreur lors de l'ajout de la nouvelle entrée\n"
+msgstr "%s: erreur lors de l'ajout de l'enregistrement %s\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
 msgstr "%d entrées ajoutées, la plus longue fut %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
-msgstr "Usage: %s [-vf] [-p|g|sp|sg] fichier\n"
+msgstr "Usage: %s [-vf ] [-p|g|sp|sg] fichier\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Usage: %s [-vf] [-p|g|sp] fichier\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Usage: %s [-vf] [-p|g] fichier\n"
@@ -1278,18 +1259,18 @@ msgstr "Usage: sg groupe [[-c] commande]\n"
 #: src/newgrp.c:131
 #, c-format
 msgid "unknown uid: %u\n"
-msgstr "uid inconnue: %u\n"
+msgstr "uid inconnu: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid inconnu: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
-msgstr "Désolé.\n"
+msgstr " \n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "trop de groupes\n"
@@ -1299,165 +1280,167 @@ msgstr "trop de groupes\n"
 msgid "Usage: %s [input]\n"
 msgstr "Usage: %s [entrée]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
-msgstr "%s: impossible de vérouiller /etc/passwd.\n"
+msgstr "%s: impossible de verrouiller /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
-msgstr "%s: impossible de vérouiller les fichiers, essayez plus tard\n"
+msgstr "%s: impossible de verrouiller les fichiers, réessayez plus tard\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: impossible d'ouvrir les fichiers\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
-msgstr "%s: ligne %d: ligne non valide\n"
+msgstr "%s: ligne %d: ligne non valable\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: ligne %d: impossible de créer le GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
-msgstr "%s: ligne %d: impossible de créer le GID\n"
+msgstr "%s: ligne %d: impossible de créer l'UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: ligne %d: impossible de trouver l'utilisateur %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: ligne %d: impossible de mettre le mot de passe à jour\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: ligne %d: échec de mkdir\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: ligne %d: échec de chown\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: ligne %d: impossible de mettre l'entrée à jour\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: erreur lors de la mise à jour des fichiers\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Usage: %s [-f|-s] [nom]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x max] [-n min] [-w avert] [-i inact] nom\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} nom\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Ancien mot de passe: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
-msgstr "Mot de passe incorrect pour `%s'\n"
+msgstr "Mot de passe incorrect pour « %s »\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 "Entrez le nouveau mot de passe (minimum de %d, maximum de %d\n"
-"caractères). Utilisez une combinaison de lettres en majuscule/minuscule\n"
-"et de nombres.\n"
+"caractères). Utilisez une combinaison de lettres majuscules, minuscules\n"
+"et de chiffres.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nouveau mot de passe: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
-msgstr "Essaye encore...\n"
+msgstr "Réessayez...\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 "\n"
-"Avertissement: mot de passe simpliste (tapez le à nouveau pour l'utiliser\n"
+"Attention: mot de passe trop simple (entrez-le à nouveau pour l'utiliser\n"
 "quand même).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
-msgstr "Ils ne sont pas identique; essaye encore...\n"
+msgstr "Mots de passe différents, recommencez...\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Le mot de passe pour %s ne peut être changé.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
-msgstr "Désolé, le mot de passe pour %s ne peux pas encore être changé.\n"
+msgstr "Le mot de passe pour %s ne peut pas encore être changé.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: plus de mémoire\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Impossible d'exécuter %s"
 
-#: src/passwd.c:815
-#, fuzzy, c-format
+#: src/passwd.c:786
+#, c-format
 msgid "%s: repository %s not supported\n"
-msgstr "utilisateur %s: le répertoire %s n'existe pas\n"
+msgstr "%s: le dépôt %s n'est pas géré\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Vous ne pouvez pas changer le mot de passe de %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr ""
+"%s: Vous ne pouvez pas afficher ou modifier les informations de mot de passe "
+"de %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Changement du mot de passe de %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Le mot de passe pour %s est inchangé.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Mot de passe changé.\n"
@@ -1472,123 +1455,122 @@ msgstr "Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Usage: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
-msgstr "entrée non valide dans le fichier password\n"
+msgstr "entrée non valable dans le fichier des mots de passe\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
-msgstr "entrée dupliquée dans password\n"
+msgstr "entrée dupliquée dans le fichier des mots de passe\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
-msgstr "nom d'utilisateur '%s' non valide\n"
+msgstr "nom d'utilisateur « %s » non valable\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "utilisateur %s: aucun groupe %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "utilisateur %s: le répertoire %s n'existe pas\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "utilisateur %s: le programme %s n'existe pas\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
-msgstr "entrée shadow password non valide\n"
+msgstr "entrée de mot de passe caché non valable\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
-msgstr "entrée shadow password dupliquée\n"
+msgstr "entrée de mot de passe caché dupliquée\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
-msgstr "aucune entrée correspondante dans le fichier password\n"
+msgstr "aucune entrée correspondante dans le fichier des mots de passe\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
-msgstr ""
-"utilisateur %s: date du dernier changement de mot de passe dans le futur\n"
+msgstr "utilisateur %s: dernier changement du mot de passe dans le futur\n"
 
 #: src/pwconv.c:85 src/pwunconv.c:79
 #, c-format
 msgid "%s: can't lock passwd file\n"
-msgstr "%s: impossible de vérouiller le fichier passwd\n"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe\n"
 
 #: src/pwconv.c:90 src/pwunconv.c:84
 #, c-format
 msgid "%s: can't open passwd file\n"
-msgstr "%s: impossible d'ouvrir le fichier passwd\n"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe\n"
 
 #: src/pwconv.c:118
 #, c-format
 msgid "%s: can't remove shadow entry for %s\n"
-msgstr "%s: impossible d'enlever l'entrée shadow pour %s\n"
+msgstr "%s: impossible d'enlever l'entrée cachée pour %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: impossible de mettre à jour le mot de passe de %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
-msgstr "%s: impossible de mettre à jour le fichier shadow\n"
+msgstr "%s: impossible de mettre à jour le fichier des mots de passe cachés\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
-msgstr "%s: impossible de mettre à jour le fichier passwd\n"
+msgstr "%s: impossible de mettre à jour le fichier des mots de passe\n"
 
 #: src/pwunconv.c:124
 #, c-format
 msgid "%s: can't update entry for user %s\n"
-msgstr "%s: impossible de mettre à jour l'entrée %s\n"
+msgstr "%s: impossible de mettre à jour l'entrée pour l'utilisateur %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
-msgstr "%s: impossible d'effacer le fichier shadow\n"
+msgstr "%s: impossible d'effacer le fichier des mots de passe cachés\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
-msgstr "Désolé."
+msgstr " "
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: doit être lancé à partir d'un terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: erreur %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "ID inconnue: %s\n"
 
-#: src/su.c:490 src/su.c:507
-#, fuzzy, c-format
+#: src/su.c:484 src/su.c:500
+#, c-format
 msgid "You are not authorized to su %s\n"
-msgstr "Vous n'êtes pas authorisés "
+msgstr "Vous n'êtes pas autorisé à utiliser « su » %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
-msgstr "(Entrez votre propre mot de passe.)"
+msgstr "(Entrez votre propre mot de passe)."
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1597,480 +1579,433 @@ msgstr ""
 "%s: %s\n"
 "(Ignoré)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
-msgstr "Pas de shell\n"
+msgstr "Pas d'interpréteur de commandes\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Accès à su à partir de ce compte REFUSÉ.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Authentification par mot de passe court-circuitée.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
-msgstr "Entrez VOTRE mot de passe comme identification.\n"
+msgstr "Entrez votre PROPRE mot de passe pour vous authentifier.\n"
 
 #: src/sulogin.c:118
 #, c-format
 msgid "No password file\n"
-msgstr "Pas de fichier de mot de passe\n"
+msgstr "Pas de fichier des mots de passe\n"
 
 #: src/sulogin.c:160
 #, c-format
 msgid "No password entry for 'root'\n"
-msgstr "Pas d'entrée pour le mot de passe de 'root'\n"
+msgstr "Pas de mot de passe pour « root »\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 "\n"
-"Tapez control-d pour procéder au démarrage normal,\n"
-"(ou donnez le mot de passe de root pour la maintenance): "
+"Tapez Ctrl+D pour démarrer normalement\n"
+"(ou donnez le mot de passe du superutilisateur pour la maintenance du "
+"système): "
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
-msgstr "Entrée du système en mode maintenance\n"
-
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: reconstruction de la base de données des groupes\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: reconstruction de la base de données des groupes shadow\n"
+msgstr "Entrée dans le mode de maintenance du système\n"
 
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
-msgstr "%s: argument numérique `%s' non valide\n"
+msgstr "%s: argument numérique « %s » incorrect\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: gid %s inconnu\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: groupe %s inconnu\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
-msgstr "%s: impossible de créer un nouveau fichier de défauts\n"
+msgstr "%s: impossible de créer le nouveau fichier des valeurs par défaut\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
-msgstr "%s: impossible de créer un nouveau fichier de défauts\n"
+msgstr "%s: impossible d'ouvrir le nouveau fichier des valeurs par défaut\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
-msgstr "%s: rename: %s"
+msgstr "%s: renomme: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
-msgstr "%s: le groupe `%s' est un groupe NIS.\n"
+msgstr "%s: le groupe « %s » est un groupe NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: trop de groupes spécifiés (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Usage: useradd [-u uid [-o]] [-g groupe] [-G groupe,...] \n"
+msgstr "Usage: useradd [-u uid [-o]] [-g groupe] [-G groupe,...]\n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "               [-d home] [-s shell] [-c commentaire] [-m [-k template]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "               [-f inactif] [-e expire]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "               [-p mot-de-passe] nom\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       useradd -D [-g groupe] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
-msgstr "%s: erreur lors du vérouillage du fichier de groupe\n"
+msgstr "%s: erreur lors du verrouillage du fichier de groupe\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: erreur lors d'ouverture du fichier de groupe\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
-msgstr "%s: erreur lors du vérouillage du fichier shadow group\n"
+msgstr "%s: erreur lors du verrouillage du fichier des groupes cachés\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
-msgstr "%s: erreur lors de l'ouverture du fichier shadow group\n"
+msgstr "%s: erreur lors de l'ouverture du fichier des groupes cachés\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: l'uid %u n'est pas unique\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: impossible d'obtenir un uid unique\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
-msgstr "%s: répertoire de base non valide `%s'\n"
+msgstr "%s: répertoire de base non valable « %s »\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
-msgstr "%s: commentaire `%s' non valide\n"
+msgstr "%s: commentaire « %s » non valable\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
-msgstr "%s: répertoire personnel `%s' non valide\n"
+msgstr "%s: répertoire personnel « %s » non valable\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
-msgstr "%s: date `%s' non valide\n"
+msgstr "%s: date « %s » non valable\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
-msgstr "%s: mots de passe shadow nécessaires pour -e\n"
+msgstr "%s: mots de passe cachés nécessaires pour -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
-msgstr "%s: mots de passe shadow nécessaires pour -f\n"
+msgstr "%s: mots de passe cachés nécessaires pour -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
-msgstr "%s: champs `%s' non valide\n"
+msgstr "%s: champ « %s » non valable\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
-msgstr "%s: shell `%s' non valide\n"
+msgstr "%s: interpréteur de commandes « %s » non valable\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
-msgstr "%s: nom d'utilisateur `%s' non valide\n"
+msgstr "%s: nom d'utilisateur « %s » non valable\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
-msgstr "%s: impossible de reécrire le fichier de mots de passe\n"
+msgstr "%s: impossible de réécrire le fichier des mots de passe\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
-msgstr "%s: impossible de reécrire le fichier shadow\n"
+msgstr "%s: impossible de réécrire le fichier des mots de passe cachés\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
-msgstr "%s: impossible de vérouiller le fichier de mots de passe\n"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
-msgstr "%s: impossible d'ouvrir le fichier de mots de passe\n"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
-msgstr "%s: impossible de vérouiller le fichier de mots de passe\n"
+msgstr "%s: impossible de verrouiller le fichier des mots de passe cachés\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
-msgstr "%s: impossible d'ouvrir le fichier shadow\n"
+msgstr "%s: impossible d'ouvrir le fichier des mots de passe cachés\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: erreur lors de l'ajout de la nouvelle entrée\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: erreur lors de la mise à jour de l'entrée dbm\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
-msgstr "%s: erreur lors de l'ajout de la nouvelle entrée shadow\n"
-
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: erreur lors de la mise à jour de l'entrée shadow passwd dbm\n"
+msgstr ""
+"%s: erreur lors de l'ajout de la nouvelle entrée du mot de passe caché\n"
 
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: impossible de créer le répertoire %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
+"Il n'y a pas de groupe dont le nom est « mail », création du répertoire de "
+"dépôt de courrier avec le mode 0600.\n"
 
-#: src/useradd.c:1590
-#, fuzzy, c-format
+#: src/useradd.c:1446
+#, c-format
 msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: impossible de mettre à jour l'entrée %s\n"
+msgstr ""
+"Impossible de créer le répertoire de dépôt de courrier pour l'utilisateur %"
+"s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: l'utilisateur %s existe\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
+"%s: le groupe %s existe - si vous voulez ajouter cet utilisateur à ce "
+"groupe, utilisez -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
-msgstr "%s: avertissement: CREATE_HOME non supporté, utilisez -m à la place.\n"
+msgstr "%s: attention: CREATE_HOME n'est pas supporté, veuillez utiliser -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Usage: %s [-r] nom\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
-msgstr "%s: erreur lors de la mise à jour de l'entrée group\n"
+msgstr "%s: erreur lors de la mise à jour de l'entrée de groupe\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: impossible de mettre à jour l'entrée dbm group\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: impossible de mettre à jour l'entrée dbm group\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: impossible d'ouvrir le fichier group\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
-msgstr "%s: impossible d'ouvrir le fichier shadow group\n"
+msgstr "%s: impossible d'ouvrir le fichier des groupes cachés\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: erreur lors de la suppression de l'entrée dans /etc/passwd\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: erreur lors de la suppression de l'entrée dans /etc/shadow\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: erreur lors de l'effacement de l'entrée dbm du mot de passe\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: erreur lors de l'effacement de l'entrée shadow passwd dbm\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: l'utilisateur %s est connecté\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
-msgstr "%s: %s n'appartient pas à %s, non enlevé\n"
+msgstr "%s: %s n'appartient pas à %s, non supprimé\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
-msgstr "%s: impossible d'enlever "
+msgstr "%s: attention: suppression impossible "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: l'utilisateur %s n'existe pas\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: le compte %s est un compte NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
-"%s: répertoire %s non enlevé (cela enléverait le répertoire personnel de %"
-"s)\n"
+"%s: répertoire %s non supprimé (cela supprimerait le répertoire personnel de "
+"%s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: erreur lors de l'effacement du répertoire %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Usage: %s\t[-u uid [-o]] [-g groupe] [-G groupe,...] \n"
+msgstr "Usage: %s\t[-u uid [-o]] [-g groupe] [-G groupe,...]\n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s shell] [-c commentaire] [-l nouveau_nom]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactif] [-e expire] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p mot-de-passe] [-L|-U] nom\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: plus de mémoire pour update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: plus de mémoire pour update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
-msgstr "%s: aucun drapeau donné\n"
+msgstr "%s: aucun indicateur n'a été précisé\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: mots de passe shadow nécessaires pour -e ou -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: l'uid %lu n'est pas unique\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: erreur lors du changement de l'entrée dans /etc/passwd\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: erreur lors de l'effacement du mot de passe\n"
 
-#: src/usermod.c:1131
-#, fuzzy, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: erreur lors de la mise à jour de l'entrée dbm\n"
-
-#: src/usermod.c:1139
-#, fuzzy, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: erreur lors de l'effacement du mot de passe\n"
-
-#: src/usermod.c:1158
-#, fuzzy, c-format
+#: src/usermod.c:1070
+#, c-format
 msgid "%s: error removing shadow password entry\n"
-msgstr "%s: erreur lors de l'effacement du mot de passe\n"
-
-#: src/usermod.c:1175
-#, fuzzy, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: erreur lors de l'effacement de l'entrée shadow passwd dbm\n"
+msgstr "%s: erreur lors de la suppression de l'entrée cachée du mot de passe\n"
 
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: le répertoire %s existe\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: impossible de créer %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
-msgstr "%s: impossible de changer le propriètaire de %s\n"
+msgstr "%s: impossible de changer le propriétaire de %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: impossible de renommer le répertoire %s en %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
-msgstr "%s: avertissement: %s n'appartient pas à %s\n"
+msgstr "%s: attention: %s n'appartient pas à %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
-msgstr "échec du changement de propriètaire de la mailbox"
+msgstr "échec du changement de propriétaire de la boîte Ã  lettres"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
-msgstr "échec du renommage de la mailbox"
+msgstr "échec du changement de nom de la boîte à lettres"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2079,26 +2014,26 @@ msgstr ""
 "\n"
 "%s: %s est inchangé\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
-msgstr "Impossible de vérouiller le fichier"
+msgstr "Impossible de verrouiller le fichier"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
-msgstr "Impossible de faire une sauvegarde"
+msgstr "Impossible d'effectuer une sauvegarde"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: impossible de restaurer %s: %s (vos changements sont dans %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
 "`vipw' edits /etc/passwd        `vipw -s' edits /etc/shadow\n"
 "`vigr' edits /etc/group         `vigr -s' edits /etc/gshadow\n"
 msgstr ""
-"Usage :\n"
-"`vipw' édite /etc/passwd        `vipw -s' édite /etc/shadow\n"
-"`vigr' édite /etc/group         `vigr -s' édite /etc/gshadow\n"
+"Usage :\n"
+"« vipw » édite /etc/passwd        « vipw -s » édite /etc/shadow\n"
+"« vigr » édite /etc/group         « vigr -s » édite /etc/gshadow\n"
index fc824ab16d5faeb9dce177288b1995dd4bda5a3f..9a611c6676d0d8b1b215ace83812fc03dde56147 100644 (file)
Binary files a/po/he.gmo and b/po/he.gmo differ
index c3cce1eae17d78b0e21904592e6581a67588d081..7be6a7520a964d988b4de8573b65954d33a350e3 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-07-21 23:59+0300\n"
 "Last-Translator: Lior Kaplan <webmaster@guides.co.il>\n"
 "Language-Team: Hebrew <en@li.org>\n"
@@ -22,7 +22,7 @@ msgstr ""
 msgid "Warning: unknown group %s\n"
 msgstr "אזהרה: קבוצה לא מוכרת %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "אזהרה: יותר מידי קבוצות\n"
@@ -50,17 +50,17 @@ msgstr "  צור קשר עם מנהל המערכת.\n"
 msgid "  Choose a new password.\n"
 msgstr "  בחר סיסמה חדשה.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "תוקף הסיסמה שלך יפוג בתוך %ld ימים.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "תוקף הסיסמה שלך יפוג מחר.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "תוקף הסיסמה שלך פג היום.\n"
@@ -75,39 +75,27 @@ msgstr "לא יכול לשנות tty %s"
 msgid "Environment overflow\n"
 msgstr "הצפת סביבה\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "אינך רשאי לשנות את $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d שגיאה מאז כניסה אחרונה למערכת. האחרונה היתה %s על %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d שגיאה מאז כניסה אחרונה למערכת. האחרונה היתה %s על %s.\n"
+msgstr[1] "%d שגיאה מאז כניסה אחרונה למערכת. האחרונה היתה %s על %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "יותר מידי כניסות למערכת.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr ""
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "יש לך דואר חדש."
@@ -120,7 +108,7 @@ msgstr "אין דואר."
 msgid "You have mail."
 msgstr "יש לך דואר."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "סיסמה לא טובה: %s.  "
@@ -135,20 +123,20 @@ msgstr ""
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "לא יכול לבצע cd ל-\"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "אין ספריה, נכנס למערכת עם HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "לא יכול להריץ %s"
@@ -163,35 +151,31 @@ msgstr "ספרית שורש לא חוקית \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "לא יכול לשנות ספרית שורש ל-\"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) נכשל\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "לא יכול להקצות מקום בשביל מידע על הקונפיגורציה.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "שגיאת הגדרות - רכיב לא ידוע '%s' (הודע למנהל)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "סיסמה: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "הסיסמה של %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -200,154 +184,147 @@ msgstr ""
 "שימוש: chage [-l] [-m מינימום ימים] [-M מקסימום ימים] [-W אזהרה]\n"
 "             [-I לא פעיל] [-E פג תוקף] [-d יום אחרון] שם משתמש\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "הכנס ערך חדש, או לחץ ENTER לברירת המחדל\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "גיל סיסמה מינימלי"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "גיל סיסמה מקסימלי"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "שינוי סיסמה אחרון (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "אזהרת תוקף סיסמה"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "סיסמה לא פעילה"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "תאריך תוקף חשבון (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "שינוי סיסמה אחרון (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "אף פעם\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "תוקף סיסמה:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "חסור פעילות סיסמה:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "תוקף חשבון:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr ""
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: הגישה נאסרה\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: זיהוי PAM נכשל\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: לא יכול לפתוח קובץ סיסמאות\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr ""
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: לא יכול לנעול קובץ סיסמאות צל"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: לא יכול לפתוח קובץ סיסמאות צל"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "שנה מידע הזדקות בשביל %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: שגיאה בשינוי שדות\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: לא יכול לעדכן קובץ סיסמאות\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: לא יכול לעדכן קובץ סיסמאות צל\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr ""
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: לא יכול לכתוב מחדש קובץ סיסמאות צל\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: לא יכול לכתוב מחדש קובץ סיסמאות\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr ""
@@ -364,117 +341,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "שם מלא"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tשם מלא: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "מספר חדר"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "מספר טלפון בעבודה"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "מספר טלפון בבית"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "אחר"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: לא יכול לקבוע את שם המשתמש שלך.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: לא יכול לשנות משתמש `%s' על לקוח NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr ""
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: הגישה נאסרה\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "משנה מידע בשביל המשתמש %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: שם לא חוקי: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: מספר חדר לא חוקי: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: מספר טלפון בעבודה לא חוקי: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: מספר טלפון בבית לא חוקי: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" מכיל תווים לא חוקיים\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: שדות ארוכים מידי\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "לא יכול לשנות ID ל-root\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "לא יכול לנעול קובץ סיסמאות; נסה שוב מאוחר יותר\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "לא יכול לפתוח את קובץ הסיסמאות.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr ""
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "שגיאה בעדכון רשומת הסיסמה.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "לא יכול לבצע שינויים בקובץ הסיסמאות.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "לא יכול לשחרר נעילה של קובץ הסיסמאות.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -491,48 +473,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: לא יכול לנעול קובץ סיסמאות\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: לא יכול לנעול קובץ צל\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: לא יכול לפתוח קובץ צל\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: שורה %d: שורה ארוכה מידי\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: שורה %d: חסרה סיסמה חדשה\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: שורה %d: משתמש לא מוכר %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: שורה %d: לא יכול לעדכן רשומת סיסמה\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: שגיאה זוהתה, מתעלם משינויים\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: שגיאה בעדכון קובץ צל\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: שגיאה בעדכון קובץ סיסמאות\n"
@@ -542,26 +524,26 @@ msgstr "%s: שגיאה בעדכון קובץ סיסמאות\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "שימוש: %s [-s shell] [name]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "מעטפת כניסה למערכת"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "אינך רשאי לשנות את המעטפת בשביל %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "משנה מעטפת כניסה למערכת בשביל %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: רשומה לא חוקית: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s היא מעטפת לא חוקית.\n"
@@ -571,12 +553,12 @@ msgstr "%s היא מעטפת לא חוקית.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "שימוש: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr ""
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr ""
@@ -590,320 +572,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
+msgid "Login       Failures Maximum Latest                   On\n"
 msgstr ""
 
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr ""
-
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr ""
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr ""
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, fuzzy, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "שימוש: %s [-r|-R] group\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr ""
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr ""
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr ""
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr ""
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr ""
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr ""
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr ""
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr ""
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr ""
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr ""
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr ""
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr ""
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr ""
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr ""
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr ""
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr ""
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr ""
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr ""
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr ""
 
-#: 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr ""
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr ""
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr ""
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: שם לא חוקי: \"%s\"\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr ""
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr ""
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr ""
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr ""
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr ""
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr ""
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr ""
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr ""
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr ""
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr ""
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr ""
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr ""
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr ""
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr ""
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr ""
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr ""
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr ""
@@ -913,110 +860,105 @@ msgstr ""
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr ""
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr ""
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr ""
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr ""
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr ""
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr ""
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr ""
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr ""
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr ""
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr ""
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr ""
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr ""
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr ""
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr ""
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr ""
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
+msgid "%s: the files have been updated\n"
 msgstr ""
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr ""
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr ""
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1032,37 +974,37 @@ msgstr ""
 msgid "%s: can't lock shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr ""
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr ""
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr ""
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr ""
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr ""
@@ -1082,121 +1024,112 @@ msgstr "שימוש: id\n"
 msgid " groups="
 msgstr ""
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr ""
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr ""
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr ""
 
-#: src/login.c:175
+#: src/login.c:156
 #, fuzzy, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "שימוש: %s [-p] [name]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr ""
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr ""
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr ""
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
 "System closed for routine maintenance\n"
 msgstr ""
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr ""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr ""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 
-#: src/login.c:819
-msgid "login: "
-msgstr ""
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr ""
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr ""
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr ""
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr ""
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr ""
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1237,17 +1170,17 @@ msgstr "%s: שגיאה בשינוי שדות\n"
 msgid "added %d entries, longest was %d\n"
 msgstr ""
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr ""
@@ -1267,16 +1200,16 @@ msgstr ""
 msgid "unknown uid: %u\n"
 msgstr ""
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr ""
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr ""
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr ""
@@ -1286,159 +1219,159 @@ msgstr ""
 msgid "Usage: %s [input]\n"
 msgstr ""
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr ""
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr ""
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr ""
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr ""
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr ""
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr ""
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr ""
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr ""
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr ""
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr ""
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, fuzzy, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "שימוש: %s [-f|-s] [name]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr ""
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr ""
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr ""
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr ""
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr ""
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr ""
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr ""
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr ""
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr ""
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr ""
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr ""
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr ""
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "אינך רשאי לשנות את המעטפת בשביל %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr ""
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr ""
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr ""
@@ -1453,49 +1386,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr ""
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr ""
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr ""
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr ""
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr ""
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr ""
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr ""
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr ""
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1515,17 +1448,17 @@ msgstr ""
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr ""
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr ""
@@ -1535,62 +1468,62 @@ msgstr ""
 msgid "%s: can't update entry for user %s\n"
 msgstr ""
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr ""
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr ""
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr ""
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr ""
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr ""
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr ""
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr ""
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
 "(Ignored)\n"
 msgstr ""
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr ""
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr ""
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr ""
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr ""
@@ -1605,464 +1538,409 @@ msgstr ""
 msgid "No password entry for 'root'\n"
 msgstr ""
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr ""
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr ""
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr ""
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr ""
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr ""
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr ""
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr ""
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr ""
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr ""
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr ""
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr ""
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr ""
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr ""
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr ""
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr ""
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr ""
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr ""
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr ""
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr ""
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr ""
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr ""
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr ""
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr ""
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr ""
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, fuzzy, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "שימוש: %s [-r] [name]\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ""
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr ""
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr ""
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr ""
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr ""
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr ""
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr ""
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr ""
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr ""
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr ""
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr ""
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr ""
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr ""
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr ""
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr ""
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr ""
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr ""
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr ""
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr ""
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr ""
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr ""
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr ""
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr ""
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr ""
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr ""
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
 "%s: %s is unchanged\n"
 msgstr ""
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr ""
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr ""
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index eaf6b9c472feb669498b4f6c57cf1c434471580d..574747651219b5f9adb55f62e8fbe5c727da8eac 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index 74c1dea2b9428a2878921b0ad6b3ecc6f5597285..68ae0cda325f57aa77802ccf62a9d1043d144982 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -5,20 +5,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-04-09 00:12+0700\n"
 "Last-Translator: Parlin Imanuel Toh <parlin@ui.edu>\n"
 "Language-Team: Debian Indonesia <debid@yahoogroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Peringatan: grup tidak dikenal %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Peringatan: terlalu banyak grup\n"
@@ -46,17 +47,17 @@ msgstr "  Hubungi administrator sistem.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Pilih sebuah kata sandi baru.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Kata sandi anda akan kadaluarsa dalam %ld hari.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Kata sandi anda akan kadaluarsa besok.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Kata sandi anda akan kadaluarsa hari ini.\n"
@@ -71,40 +72,26 @@ msgstr "Tidak dapat mengubah tts %s"
 msgid "Environment overflow\n"
 msgstr "Lingkungan overflow\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Anda tidak boleh mengubah $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s sejak login terakhir. Terkahir di %s pada %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "kegagalan"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "kegagalan"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s sejak login terakhir. Terkahir di %s pada %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Terlalu banyak login.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Kata sandi tidak melakukan dekripsi kunci rahasia untuk %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Tidak dapat mengatur kunci rahasia dari %s: apakah daemon keyserv berjalan?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Anda memiliki surat baru."
@@ -117,7 +104,7 @@ msgstr "Tidak ada surat."
 msgid "You have mail."
 msgstr "Anda memiliki surat."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Kata sandi buruk: %s."
@@ -132,20 +119,20 @@ msgstr "passwd: pam_start() gagal, kesalahan nomor %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Tidak dapat cd ke \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Tidak terdapat direktori, masuk dengan HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Tidak dapat menjalankan %s"
@@ -160,36 +147,32 @@ msgstr "Direktori root tidak sah \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Tidak dapat mengubah direktori root ke \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) gagal\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Tidak dapat mengalokasikan ruang untuk informasi konfigurasi.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "Kesalahan konfigurasi - item tidak dikenal '%s' (beritahu administrator)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Kata sandi:"
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Kata sandi dari %s:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo on)"
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -198,154 +181,147 @@ msgstr ""
 "Penggunaan: chage [-l] [-m hari_min] [-M hari_maks] [-W peringatan]\n"
 "                  [-I tidak_aktif] [-E kadaluarsa] [-d hari_akhir] pengguna\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Masukkan nilai baru atau tekan ENTER untuk nilai bawaan\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Umur Kata Sandi Minimal"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Umur Kata Sandi Maksimal"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Penggantian Kata Sandi Terakhir (TTTT-MM-HH)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Peringatan Kadaluarsanya Kata Sandi"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Kata Sandi Tak-aktif"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Waktu Kadaluarsa Akun (TTTT-MM-HH)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Penggantian Kata Sandi Terakhir (TTTT-MM-HH)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Tidak Pernah\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Kata Sandi Kadaluarsa:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Kata Sandi Tidak Aktif:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Akun Kadaluarsa:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: jangan gabungkan \"l\" dengan flag lain\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: ijin ditolak\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: Otentikasi PAM gagal\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: tidak dapat membuka berkas kata sandi\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: pengguna %s tak dikenal\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: tidak dapat mengunci berkas kata sandi bayangan"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: tidak dapat membuka berkas kata sandi bayangan"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Mengubah informasi umur akun untuk %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: kesalahan saat mengubah ruas-ruas isian\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: tidak dapat memperbaharui berkas kata sandi\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: tidak dapat memperbaharui berkas kata sandi bayangan\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Kesalahan saat memperbaharui entri kata sandi DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: tidak dapat menulis kembali berkas kata sandi bayangan\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: tidak dapat menulis kembali berkas kata sandi\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: chauthok PAM gagal\n"
@@ -365,117 +341,122 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "Penggunaan: %s [-f nama_lkp] [-r no_ruang] [-w telp_ktr] [-h telp_rmh]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nama Lengkap"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNama Lengkap: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Nomor Ruangan"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telepon Kantor"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telepon Rumah"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Lain-lain"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Tidak dapat menentukan nama pengguna anda.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: tidak dapat mengubah pengguna '%s' pada klien NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' merupakan master NIS untuk klien ini.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: ijin ditolak\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Mengubah informasi pengguna dari %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nama tidak sah: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: nomor ruang tidak sah: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: telepon kantor tidak sah: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: telepon rumah tidak sah: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" berisi karakter-karakter ilegal\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: ruas terlalu panjang\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Tidak dapat mengubah ID menjadi root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Tidak dapat mengunci berkas kata sandi; coba lagi nanti.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Tidak dapat membuka berkas kata sandi.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s tidak ditemukan pada /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Kesalahan saat memperbaharui entri kata sandi.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Tidak dapat menyimpan perubahan berkas kata sandi.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Tidak dapat membuka kunci berkas kata sandi.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -492,48 +473,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: tidak dapat mengunci berkas kata sandi\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: tidak dapat mengunci berkas kata sandi bayangan\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: tidak dapat membuka berkas kata sandi bayangan\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: baris %d: baris terlalu panjang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: baris %d: kata sandi baru hilang\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: baris %d: pengguna %s tak dikenal\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: baris %d: tidak dapat memperbaharui entri kata sandi\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: kesalahan terdeteksi, perubahan diabaikan\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: kesalahan saat memperbaharui berkas kata sandi bayangan\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: kesalahan saat memperbaharui berkas kata sandi\n"
@@ -543,26 +524,26 @@ msgstr "%s: kesalahan saat memperbaharui berkas kata sandi\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Penggunaan: %s [-s shell] [nama]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Login Shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Anda tidak boleh mengubah shell untuk %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Mengubah login shell untuk %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Entri tidak sah: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s merupakan shell yang tidak sah.\n"
@@ -572,12 +553,12 @@ msgstr "%s merupakan shell yang tidak sah.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Penggunaan: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: PERINGATAN! Mesti merupakan set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: pengguna tak dikenal\n"
@@ -591,320 +572,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Pengguna   Kegagalan Maksimun Terakhir\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s pada %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds tersisa]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds terkunci]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Pengguna tak dikenal: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Penggunaan: %s [-r|-R] grup\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a pengguna] grup\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d pengguna] grup\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A pengguna,...] [-M pengguna,...] grup\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M pengguna,...] grup\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: kata sandi bayangan grup diperlukan untuk -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Anda siapa?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "grup tak dikenal: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Menambahkan pengguna %s ke grup %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Mengeluarkan pengguna %s dari grup %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: anggota tak dikenal %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Bukan sebuah tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Mengubah kata sandi untuk grup %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Kata sandi baru: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Masukkan lagi kata sandi baru: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Kedua kata sandi tidak identik; coba lagi"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Coba lagi nanti\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: tidak mendapatkan kunci\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: tidak mendapatkan kunci untuk berkas bayangan\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: tidak dapat membuka berkas\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: tidak dapat memperbaharui entri\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: tidak dapat memperbaharui entri bayangan\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: tidak dapat menuliskan kembali berkas\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: tidak dapat menuliskan kembali berkas bayangan\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: tidak dapat membuka kunci berkas\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: tidak dapat memperbaharui berkas-berkas DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: tidak dapat memperbaharui berkas-berkas bayangan DBM\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Penggunaan: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: kesalahan saat menambahkan entri grup yang baru\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: tidak dapat menambahkan entri grup dbm yang baru\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: nama %s tidak unik\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u tidak unik\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: tidak mendapatkan gid yang unik\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: nama grup %s tidak sah\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: grup %s tidak sah\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O memerlukan NAMA=NILAI\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: tidak dapat menuliskan kembali berkas grup\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: tidak dapat menuliskan kembali berkas grup bayangan\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: tidak dapat mengunci berkas grup\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: tidak dapat membuka berkas grup\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: tidak dapat mengunci berkas grup bayangan\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: tidak dapat membuka berkas grup bayangan\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grup %s telah ada\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Penggunaan: groupdel grup\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: kesalahan saat menghapus entri grup\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: kesalahan saat menghapus entri dbm dari grup\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: kesalahan saat menghapus entri group bayangan\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: kesalahan saat menghapus entri dbm grup bayangan\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: tidak dapat menghapus grup utama dari pengguna.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: grup %s tidak ada\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: grup %s merupakan sebuah grup NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s merupakan master NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Penggunaan: groupmod [-g gid [-o]] [-n nama] grup\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s tidak ditemukan dalam /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: tidak dapat menambah entri grup bayangan dbm yang baru\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u bukan gid yang unik\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s bukan nama yang unik\n"
@@ -914,110 +860,105 @@ msgstr "%s: %s bukan nama yang unik\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Penggunaan: %s [-r] [-s] [grup [gbayangan]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Penggunaan: %s [-r] [-s] [grup]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Tidak"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s dan -r tidak kompatible\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: tidak dapat mengunci berkas %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: tidak dapat membuka berkas %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "entri berkas grup tidak sah\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "hapus baris `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "entri grup berulang\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nama grup `%s' tidak sah\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grup %s: tak ada pengguna %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "hapus anggota `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "entri berkas grup bayangan tidak sah\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "entri grup bayangan berulang\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "entri tidak ditemukan pada berkas grup\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "grup bayangan %s: tak ada pengguna administratif %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "hapus anggota administratif `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grup bayangan %s: tak ada pengguna %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: tidak dapat memperbaharui berkas %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: berkas-berkas telah diperbaharui; jalankan mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: berkas-berkas telah diperbaharui\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: tak ada perubahan\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: berkas-berkas telah diperbaharui\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1033,37 +974,37 @@ msgstr "%s: tidak dapat membuka berkas grup\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: tidak dapat mengunci berkas grup bayangan\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: tidak dapat membuka berkas grup banyangan\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: tidak dapat menghapus grup bayangan %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: tidak dapat memperbaharui entri bayangan untuk %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: tidak dapat memperbaharui entri untuk grup %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: tidak dapat memperbaharui berkas grup bayangan\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: tidak dapat memperbaharui berkas grup\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: tidak dapat menghapus berkas grup bayangan\n"
@@ -1083,52 +1024,52 @@ msgstr "Penggunaan: id\n"
 msgid " groups="
 msgstr " grup="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Nama pengguna    Port     Dari             Terakhir\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Nama pengguna           Port     Terakhir\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Tidak pernah log in**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Penggunaan: %s [-p] [nama]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "            %s [-p] [-h host] [-f nama]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "            %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Waktu login tidak sah\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1137,7 +1078,7 @@ msgstr ""
 "\n"
 "Sistem ditutup untuk pengelolaan rutin\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1146,7 +1087,7 @@ msgstr ""
 "\n"
 "[Pemutusan hubungan diabaikan -- login root diperbolehkan.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1155,17 +1096,17 @@ msgstr ""
 "\n"
 "Login time out setelah %d detik.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " pada `%.100s' dari `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " pada `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1174,38 +1115,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login tidak tepat"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Perhatian: login dibolehkan setelah penguncian sementara.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Login terakhir: %s pada %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Login terakhir: %.19s pada %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " dari %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Memulai rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1246,17 +1178,17 @@ msgstr "%s: kesalahan saat menambah rekor untuk "
 msgid "added %d entries, longest was %d\n"
 msgstr "ditambahkan %d entri, yang terpanjang adalah %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Penggunaan: %s [-vf] [-p|q|sp|sg] nama-berkas\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Penggunaan: %s [-vf] [-p|g|sp] nama-berkas\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Penggunaan: %s [-vf] [-p|g] nama-berkas\n"
@@ -1276,16 +1208,16 @@ msgstr "Penggunaan: sg grup [[-c] perintah]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid tidak dikenal: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid tidak dikenal: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Maaf.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "terlalu banyak grup\n"
@@ -1295,92 +1227,92 @@ msgstr "terlalu banyak grup\n"
 msgid "Usage: %s [input]\n"
 msgstr "Penggunaan: %s [input]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: tidak dapat mengunci /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: tidak dapat mengunci berkas-berkas, coba lagi nanti\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: tidak dapat membuka berkas-berkas\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: baris %d: baris tidak sah\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr ""
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr ""
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr ""
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr ""
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr ""
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr ""
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr ""
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Penggunaan: %s [-f|-s] [nama]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr ""
 "            %s [-x maks] [-n min] [-w peringatan] [-i tak-aktif] nama\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "            %s {-l|-u|-d|-S|-e} nama\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Kata sandi lama: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Kata sandi tidak tepat untuk `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1389,16 +1321,16 @@ msgstr ""
 "Masukkan password baru (minimim %d, maksimum %d karakter)\n"
 "Mohon gunakan kombinasi huruf besar, huruf kecil dan angka.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "kata sandi baru: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Coba lagi.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1407,52 +1339,52 @@ msgstr ""
 "\n"
 "Kata sandi lemah (masukkan lagi untuk tetap menggunakannya).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Kata sandi tidak sama; coba lagi.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Kata sandi untuk %s tidak dapat diganti.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Maaf, kata sandi untuk %s belum dapat diganti.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: kehabisan memori\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Tidak dapat menjalankan %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: repositori %s tidak didukung\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Anda tidak boleh mengubah shell untuk %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Mengganti kata sandi untuk %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Kata sandi untuk %s tidak diubah.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Password telah diubah.\n"
@@ -1467,49 +1399,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr ""
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr ""
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr ""
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr ""
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr ""
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr ""
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr ""
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr ""
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1529,17 +1461,17 @@ msgstr ""
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr ""
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr ""
@@ -1549,40 +1481,40 @@ msgstr ""
 msgid "%s: can't update entry for user %s\n"
 msgstr ""
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr ""
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Maaf."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: mesti dijalankan dari sebuah terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: kesalahan %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id tidak dikenal: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Anda tidak diperbolehkan untuk su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Masukkan password anda sendiri.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1591,22 +1523,22 @@ msgstr ""
 "%s: %s\n"
 "(Diabaikan)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Tak ada shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Akses su untuk account it DITOLAK.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Otentikasi kata sandi diabaikan.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Silakan masukkan kata sandi anda SENDIRI sebagai otentikasi.\n"
@@ -1621,7 +1553,7 @@ msgstr "Tak ada berkas kata sandi\n"
 msgid "No password entry for 'root'\n"
 msgstr "Tak ada entri kata sandi untuk 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1631,438 +1563,383 @@ msgstr ""
 "Ketikkan control-d untuk melanjutkan startup normal,\n"
 "(ata berikan kata sandi root untuk pengelolaan sistem):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Memasuki Mode Pengelolaan Sistem\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr ""
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr ""
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr ""
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr ""
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr ""
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr ""
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr ""
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Penggunaan: useradd [-u uid [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                    [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                    [-f tidak_aktif] [-e kadaluarsa]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                    [-p kata_sandi] nama\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "            useradd -D [-g grup] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr ""
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr ""
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr ""
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr ""
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr ""
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr ""
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr ""
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr ""
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr ""
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr ""
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr ""
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr ""
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr ""
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Penggunaan: %s [-r] nama\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ""
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr ""
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr ""
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr ""
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr ""
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr ""
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr ""
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr ""
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr ""
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr ""
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Penggunaan: %s\t[-u uid [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s shell] [-c comment] [-l nama_baru]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f tidak_aktif] [-e kadaluarsa] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p kata_sandi] [-L|-U] nama\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr ""
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr ""
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr ""
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr ""
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr ""
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr ""
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr ""
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr ""
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr ""
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr ""
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr ""
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr ""
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2071,20 +1948,20 @@ msgstr ""
 "\n"
 "%s: %s tidak berubah\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Tidak dapat mengunci berkas"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Tidak dapat membuat backup"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: tidak dapat mengembalikan %s: %s (perubahan ada dalam %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 45cad2cfedecd77f9358bb28455f8017542e431b..7b6469e1510c19482aad3be279b36e9d8e2e5878 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 0ce16abe37967cdcdbdf0906d300d00b79ec5d37..0633f8122e9a9bd63393549f5c0457059fcdb7f6 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -2,14 +2,13 @@
 # Copyright (C) 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the shadow package.
 # Giuseppe Sacco <eppesuig@debian.org>, 2004.
-# Danilo Piazzalunga <danilopiazza@libero.it>, 2004.
-#
+# Danilo Piazzalunga <danilopiazza@libero.it>, 2004-2005.
 # Convenzioni utilizzate per tradurre i termini più frequenti:
-#
 # “faillog (record)”..................: «(record degli) accessi falliti»
 # “group file/database”...............: «file/database dei gruppi»
-# “last login”........................: «ultimo accesso»
 # “logged in”.........................: «collegato»
+# “login”.............................: «accesso» (nella maggioranza dei casi)
+# “login” [user account]..............: «login»
 # “mail spool”........................: «spool di posta»
 # “primary group”.....................: «gruppo principale»
 # “shadow file”.......................: «file shadow»
 # “(shadow) group file/database”......: «file/database dei gruppi (shadow)»
 # “shadow password”...................: «shadow password»
 # “(shadow) password file/database”...: «file/database delle (shadow) password»
+# “super user”........................: «root» o «amministratore»
 # “user name”.........................: «nome utente»
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-21 17:38+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-17 21:57+0200\n"
 "Last-Translator: Danilo Piazzalunga <danilopiazza@libero.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.3.1\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Attenzione: gruppo «%s» sconosciuto\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Attenzione: troppi gruppi\n"
@@ -66,17 +65,17 @@ msgstr "  Contattare l'amministratore del sistema.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Scegliere una nuova password.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "La password in uso scadrà tra %ld giorni.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "La password in uso scadrà domani.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "La password in uso scade oggi.\n"
@@ -91,41 +90,31 @@ msgstr "Impossibile cambiare i permessi al device %s"
 msgid "Environment overflow\n"
 msgstr "Dimensione dell'ambiente eccessiva\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Non si può modificare $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s dall'ultimo accesso. L'ultimo è stato %s su %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "fallimenti"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "fallimento"
-
-# Riferito al numero massimo di accessi concorrenti per un utente.
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d fallimento dall'ultimo accesso.\n"
+"L'ultimo è stato %s su %s.\n"
+msgstr[1] ""
+"%d fallimenti dall'ultimo accesso.\n"
+"L'ultimo è stato %s su %s.\n"
+
+# NdT: Riferito al numero massimo di accessi concorrenti per un utente.
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
-msgstr "Troppi login.\n"
-
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "La password non decifra la chiave segreta di %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Impossibile impostare la chiave segreta di %s: verificare che il demone "
-"«keyserv» sia attivo.\n"
+msgstr "Troppi accessi.\n"
 
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
@@ -139,7 +128,7 @@ msgstr "Nessun messaggio di posta."
 msgid "You have mail."
 msgstr "C'è la solita posta."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Password troppo debole: %s.  "
@@ -154,20 +143,20 @@ msgstr "passwd: pam_start() ha restituito l'errore %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: password aggiornata correttamente\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Impossibile spostarsi nella directory «%s»\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Directory non presente, accesso con HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Impossibile eseguire %s"
@@ -182,37 +171,33 @@ msgstr "Directory root «%s» non valida\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Impossibile cambiare la directory root in «%s»\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) non riuscita\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Impossibile allocare spazio per le informazioni di configurazione.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "errore di configurazione: oggetto «%s» sconosciuto (avvisare "
 "l'amministratore)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Password: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Password di %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Eco attivo) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -221,161 +206,154 @@ msgstr ""
 "Uso: chage [-l] [-m GG_MIN] [-M GG_MAX] [-W AVVISO]\n"
 "           [-I INATTIVITÀ] [-E SCADENZA] [-d ULTIMO_GIORNO] UTENTE\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Inserire il nuovo valore o premere INVIO per quello predefinito\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Durata minima della password"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Durata massima della password"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Ultimo cambio della password (AAAA-MM-GG)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Avviso di scadenza della password"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Inattività della password"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data di scadenza dell'account (AAAA-MM-GG)"
 
 #      "Last password change   .       .       .       .       : "
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Ultimo cambio della password                            : "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "mai\n"
 
 #      "Password expires       .       .       .       .       : "
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Scadenza della password                                 : "
 
 #      "Password inactive      .       .       .       .       : "
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Inattività della password                               : "
 
 #      "Account expires        .       .       .       .       .       : "
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Scadenza dell'account                                   : "
 
 #      "Minimum number of days between password change .       : %ld\n"
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Numero minimo di giorni tra i cambi di password         : %ld\n"
 
 #      "Maximum number of days between password change .       : %ld\n"
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Numero massimo di giorni tra i cambi di password        : %ld\n"
 
 #      "Number of days of warning before password expires      : %ld\n"
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Giorni di preavviso prima della scadenza della password : %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: non includere «l» con altri flag\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: permesso negato.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: autenticazione PAM non riuscita\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: impossibile aprire il file delle password\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: utente «%s» sconosciuto\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: impossibile fare il lock del file delle shadow password"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: impossibile aprire il file delle shadow password"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Modifica delle informazioni sulla durata dell'account di %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: errore nel cambiare i campi\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: impossibile aggiornare il file delle password\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: impossibile aggiornare il file delle shadow password\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Errore nell'aggiornare l'elemento nel file DBM delle password.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: impossibile riscrivere il file delle shadow password\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: impossibile riscrivere il file delle password\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: la chiamata PAM chauthok ha restituito un errore\n"
@@ -396,118 +374,123 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "Uso: %s [-f NOME_COMPLETO] [-r NUM_STANZA] [-w TEL_LAVORO] [-h TEL_CASA]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nome completo"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNome completo: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Stanza n°"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Numero telefonico di lavoro"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Numero telefonico di casa"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Altro"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: impossibile determinare il proprio nome utente.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: impossibile modificare l'utente «%s» sul client NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: «%s» è il NIS master per questo client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Permesso negato.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Modifica delle informazioni relative all'utente %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nome «%s» non valido\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: numero di stanza «%s» non valido\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: telefono di lavoro «%s» non valido\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: telefono di casa «%s» non valido\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: «%s» contiene caratteri non ammessi\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: lunghezza dei campi eccessiva\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Impossibile cambiare ID a root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "Impossibile fare il lock del file delle password; riprovare più tardi.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Impossibile aprire il file delle password.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: impossibile trovare «%s» in /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Errore nell'aggiornare la voce nel file delle password.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Impossibile effettuare le modifiche al file delle password.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Impossibile togliere il lock dal file delle password.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -531,48 +514,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: impossibile fare il lock del file delle password\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: impossibile fare il lock del file shadow\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: impossibile aprire il file shadow\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: riga %d: riga troppo lunga\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: riga %d: manca la nuova password\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: riga %d: utente «%s» sconosciuto\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: riga %d: impossibile aggiornare la voce nel file delle password\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: rilevato un errore; le modifiche vengono ignorate\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: errore nell'aggiornare il file shadow\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: errore nell'aggiornare il file delle password\n"
@@ -582,26 +565,26 @@ msgstr "%s: errore nell'aggiornare il file delle password\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Uso: %s [-s SHELL] [NAME]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Shell di login"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Non è permesso cambiare la shell di %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Cambio della shell di login di %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: voce «%s» non valida\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s non è una shell valida.\n"
@@ -611,12 +594,12 @@ msgstr "%s non è una shell valida.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Uso: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: attenzione: il bit SUID deve essere impostato a root.\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: utente sconosciuto\n"
@@ -630,8 +613,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -647,321 +631,287 @@ msgstr ""
 "  -m, --maximum MAX     imposta a MAX il numero massimo di tentativi di\n"
 "                        accesso falliti\n"
 "  -r, --reset           azzera il conteggio degli accessi falliti\n"
+"  -t, --time GIORNI     mostra i record degli accessi falliti più recenti\n"
+"                        di un numero di GIORNI\n"
 "  -u, --user LOGIN      mostra il record degli accessi falliti o, se sono\n"
 "                        state usate con le opzioni -r, -m o -l, imposta\n"
 "                        conteggi e limiti solo per l'utente specificato\n"
 "                        da LOGIN\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Utente     Errori    Massimo  Ultimo accesso\n"
-
-#: src/faillog.c:103
+# NdT: Vedere faillog(5) per il significato dei campi.
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s su %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Login       Errori   Massimo Ultimo accesso           Da\n"
 
-# NdT: la «s» indica l'unità di misura (secondi).
-#: src/faillog.c:107
+# NdT: La «s» indica l'unità di misura (secondi).
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds rimasti]"
 
-# NdT: la «s» indica l'unità di misura (secondi).
-#: src/faillog.c:111
+# NdT: La «s» indica l'unità di misura (secondi).
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds bloccato]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Utente «%s» sconosciuto\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Uso: %s [-r|-R] GRUPPO\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "     %s [-a UTENTE] GRUPPO\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "     %s [-d UTENTE] GRUPPO\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "     %s [-A UTENTE,...] [-M UTENTE,...] GRUPPO\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "     %s [-M UTENTE,...] GRUPPO\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: l'opzione -A richiede le shadow password per i gruppi\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Chi sei?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "gruppo «%s» sconosciuto\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Aggiunta dell'utente %s al gruppo %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Rimozione dell'utente %s dal gruppo %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: membro «%s» sconosciuto\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: non è un terminale\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Cambio della password del gruppo %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nuova password: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Reimmettere la nuova password: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Non corrispondono; provare di nuovo"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: riprovare più tardi\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: impossibile fare il lock\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: impossibile fare il lock del file shadow\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: impossibile aprire il file\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: impossibile aggiornare la voce\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: impossibile aggiornare la voce nel file shadow\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: impossibile riscrivere il file\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: impossibile riscrivere il file shadow\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: impossibile togliere il lock dal file\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: impossibile aggiornare i file DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: impossibile aggiornare i file DBM shadow\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Uso: groupadd [-g GID [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: errore nell'aggiungere la nuova voce al file dei gruppi\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: impossibile aggiungere la nuova voce al file DBM dei gruppi\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: il nome «%s» non è univoco\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid «%u» non univoco\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: impossibile ottenere un gid univoco\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s non è un nome di gruppo valido\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: gruppo «%s» non valido\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O richiede NOME=VALORE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: impossibile riscrivere il file dei gruppi\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: impossibile riscrivere il file dei gruppi shadow\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: impossibile fare il lock del file dei gruppi\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: impossibile aprire il file dei gruppi\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: impossibile fare il lock del file dei gruppi shadow\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: impossibile aprire il file dei gruppi shadow\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: gruppo «%s» già esistente\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Uso: groupdel GRUPPO\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file dei gruppi\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: errore nel rimuovere la voce dal file DBM dei gruppi\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file dei gruppi shadow\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: errore nel rimuovere la voce dal file DBM dei gruppi shadow\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: impossibile rimuovere il gruppo principale dell'utente.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: gruppo «%s» inesistente\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: il gruppo «%s» è un gruppo NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s è il NIS master\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Uso: groupmod [-g GID [-o]] [-n NOME] GRUPPO\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: «%s» non trovato in /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-"%s: impossibile aggiungere la nuova voce al file DBM dei gruppi shadow\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u non è un gid univoco\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s non è un nome univoco\n"
@@ -971,110 +921,105 @@ msgstr "%s: %s non è un nome univoco\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Uso: %s [-r] [-s] [GRUPPO [GSHADOW]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Uso: %s [-r] [-s] [GRUPPO]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "No"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s e -r sono incompatibili\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: impossibile fare il lock del file %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: impossibile aprire il file %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "voce non valida nel file dei gruppi\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "eliminare la riga «%s»? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "voce duplicata nel file dei gruppi\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nome di gruppo «%s» non valido\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "gruppo %s: nessun utente %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "rimuovere il membro «%s»? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "voce non valida nel file dei gruppi shadow\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "voce duplicata nel file dei gruppi shadow\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "nessuna voce corrispondente nel file dei gruppi\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "gruppo shadow %s: nessun utente amministrativo %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "rimuovere il membro amministrativo «%s»? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "gruppo shadow %s: nessun utente %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: impossibile aggiornare il file %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: i file sono stati aggiornati; eseguire «mkpasswd»\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: i file sono stati aggiornati\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: nessuna modifica\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: i file sono stati aggiornati\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1090,37 +1035,37 @@ msgstr "%s: impossibile aprire il file dei gruppi\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: impossibile fare il lock del file dei gruppi shadow\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: impossibile aprire il file dei gruppi shadow\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: impossibile rimuovere il gruppo shadow %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: impossibile aggiornare la voce relativa a %s nel file shadow\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: impossibile aggiornare la voce del gruppo %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: impossibile aggiornare il file dei gruppi shadow\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: impossibile aggiornare il file dei gruppi\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: impossibile eliminare il file dei gruppi shadow\n"
@@ -1140,64 +1085,61 @@ msgstr "Uso: id\n"
 msgid " groups="
 msgstr " gruppi="
 
-# NdT: Un'alternativa è riportata qui sotto, ma sarebbe da evitare perché
-# confonde il valore con il significato.
-# "  -t, --time GIORNI     stampa solo i record di ultimo accesso relativi\n"
-# "                        agli ultimi GIORNI\n"
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 "Uso: lastlog [OPZIONI]\n"
 "\n"
 "Opzioni:\n"
-"  -u, --login LOGIN     stampa il record di ultimo accesso per l'utente\n"
+"  -u, --login LOGIN     mostra il record di ultimo accesso per l'utente\n"
 "                        specificato da LOGIN\n"
 "  -h, --help            mostra questo messaggio di aiuto ed esce\n"
-"  -t, --time GIORNI     stampa solo i record di ultimo accesso più recenti\n"
+"  -t, --time GIORNI     mostra solo i record di ultimo accesso più recenti\n"
 "                        di un numero di GIORNI\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Nome utente      Porta    Da               Ultimo accesso\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Nome utente             Porta    Ultimo accesso\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nessun accesso effettuato**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Uso: %s [-p] [NOME]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "     %s [-p] [-h HOST] [-f NOME]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "     %s [-p] -r HOST\n"
 
-#: src/login.c:259
+# NdT: Non è l'ora giusta per accedere da questo tty (con questo utente).
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
-msgstr "Ora di login non valida\n"
+msgstr "Orario di accesso non permesso\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1206,7 +1148,7 @@ msgstr ""
 "\n"
 "Sistema chiuso per lavori di ordinaria manutenzione\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1215,7 +1157,7 @@ msgstr ""
 "\n"
 "[Disconnessione obbligatoria evitata: root può accedere.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1224,17 +1166,17 @@ msgstr ""
 "\n"
 "Login scaduto dopo %d secondi.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " su «%.100s» da «%.200s»"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " su «%.100s»"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1243,39 +1185,32 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login non corretto"
 
-#: src/login.c:1198
+# NdT: Non è chiaro se login sia da tradurre con "accesso abilitato" o
+# "utente abilitato": il significato comunque è lo stesso.
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
-"Attenzione: login di nuovo abilitato dopo una proibizione temporanea.\n"
+"Attenzione: accesso di nuovo abilitato dopo una proibizione temporanea.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Ultimo accesso: %s su %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Ultimo accesso: %.19s su %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " da %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Avvio di rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1316,17 +1251,17 @@ msgstr "%s: errore nell'aggiungere il record per %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "aggiunte %d voci; la più lunga era %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Uso: %s [-vf] [-p|g|sp|sg] FILE\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Uso: %s [-vf] [-p|g|sp] FILE\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Uso: %s [-vf] [-p|g] FILE\n"
@@ -1346,16 +1281,16 @@ msgstr "Uso: sg GRUPPO [[-c] COMANDO]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid «%u» sconosciuto\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid «%lu» sconosciuto\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Spiacente.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "troppi gruppi\n"
@@ -1365,92 +1300,91 @@ msgstr "troppi gruppi\n"
 msgid "Usage: %s [input]\n"
 msgstr "Uso: %s [INPUT]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: impossibile fare il lock di /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: impossibile fare il lock dei file; riprovare più tardi\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: impossibile aprire i file\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: riga %d: riga non valida\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: riga %d: impossibile creare il nuovo GID\n"
 
-# NdT: Preferisco evitare l'articolo davanti a «UID».
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: riga %d: impossibile creare il nuovo UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: riga %d: impossibile trovare l'utente %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: riga %d: impossibile aggiornare la password\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: riga %d: la chiamata mkdir ha restituito un errore\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: riga %d: la chiamata chown ha restituito un errore\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: riga %d: impossibile aggiornare la voce\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: errore nell'aggiornare i file\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Uso: %s [-f|-s] [NOME]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "     %s [-x MAX] [-n MIN] [-w AVVISO] [-i INATT] NOME\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "     %s {-l|-u|-d|-S|-e} NOME\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Vecchia password: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Password sbagliata per «%s»\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1459,16 +1393,16 @@ msgstr ""
 "Inserire la nuova password (minimo %d caratteri, massimo %d)\n"
 "Utilizzare una combinazione di lettere maiuscole, minuscole e numeri.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nuova password: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Provare di nuovo.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1478,52 +1412,53 @@ msgstr ""
 "Attenzione: password troppo debole (inserirla di nuovo per usarla "
 "comunque).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Non corrispondono; provare di nuovo.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "La password di %s non può essere cambiata.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "La password di %s non può ancora essere cambiata.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: memoria esaurita\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: impossibile eseguire %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: repository %s non supportato\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Non è permesso cambiare la password di %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr ""
+"%s: non è permesso vedere o cambiare le informazioni sulla password di %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Cambio della password di %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "La password di %s non è cambiata.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Password cambiata.\n"
@@ -1538,49 +1473,49 @@ msgstr "Uso: %s [-q] [-r] [-s] [PASSWD [SHADOW]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Uso: %s [-q] [-r] [-s] [PASSWD]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "voce non valida nel file delle password\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "voce duplicata nel file delle password\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "nome utente «%s» non valido\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "utente %s: nessun gruppo %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "utente %s: la directory %s non esiste\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "utente %s: il programma %s non esiste\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "voce non valida nel file delle shadow password\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "voce duplicata nel file delle shadow password\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "nessuna voce corrispondente nel file delle password\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "utente %s: l'ultimo cambio di password reca una data futura\n"
@@ -1600,17 +1535,17 @@ msgstr "%s: impossibile aprire il file passwd\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: impossibile rimuovere la voce relativa a %s dal file shadow\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: impossibile aggiornare la voce relativa a %s nel file passwd\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: impossibile aggiornare il file shadow\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: impossibile aggiornare il file passwd\n"
@@ -1620,41 +1555,40 @@ msgstr "%s: impossibile aggiornare il file passwd\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: impossibile aggiornare la voce relativa all'utente %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: impossibile eliminare il file delle shadow password\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Spiacente."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: si deve avviare da un terminale\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: errore %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id «%s» sconosciuto\n"
 
-# NdT: traduzione libera del verbo «to su»
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Non si è autorizzati a diventare %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Immettere la propria password)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1663,22 +1597,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorato)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Nessuna shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "L'accesso a «su» è NEGATO a questo account.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Evitata l'autenticazione tramite password.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Inserire la PROPRIA password per autenticarsi.\n"
@@ -1693,7 +1627,7 @@ msgstr "Manca il file delle password\n"
 msgid "No password entry for 'root'\n"
 msgstr "Manca una voce per «root» nel file delle password\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1703,235 +1637,215 @@ msgstr ""
 "Premere Ctrl-D per procedere con l'avvio regolare, oppure\n"
 "inserire la password di root per la manutenzione del sistema:"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Avvio modalità manutenzione del sistema\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: ricostruire il database dei gruppi\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: ricostruire il database dei gruppi shadow\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: argomento numerico «%s» non valido\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: gid «%s» sconosciuto\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: gruppo «%s» sconosciuto\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: impossibile creare il nuovo file dei valori predefiniti\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: impossibile aprire il nuovo file dei valori predefiniti\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: rename: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: il gruppo «%s» è un gruppo NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: troppi gruppi specificati (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Uso: useradd [-u UID [-o]] [-g GRUPPO] [-G GRUPPO,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "             [-d HOME] [-s SHELL] [-c COMMENTO] [-m [-k MODELLO]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "             [-f INATTIVITÀ] [-e SCADENZA]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "             [-p PASSWORD] NOME\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "     useradd -D [-g GRUPPO] [-b BASE] [-s SHELL]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: errore nel fare il lock del file dei gruppi\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: errore nell'aprire il file dei gruppi\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: errore nel fare il lock del file dei gruppi shadow\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: errore nell'aprire il file dei gruppi shadow\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid «%u» non univoco\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: impossibile ottenere un uid univoco\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: directory di base «%s» non valida\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: commento «%s» non valido\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: home directory «%s» non valida\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: data «%s» non valida\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: le shadow password sono necessarie per -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: le shadow password sono necessarie per -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: campo «%s» non valido\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: shell «%s» non valida\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: nome utente «%s» non valido\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: impossibile riscrivere il file delle password\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: impossibile riscrivere il file delle shadow password\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: impossibile fare il lock del file delle password\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: impossibile aprire il file delle password\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: impossibile fare il lock del file delle shadow password\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: impossibile aprire il file delle shadow password\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: errore nell'aggiungere la nuova voce al file delle password\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: errore nell'aggiornare la voce nel file DBM delle password\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 "%s: errore nell'aggiungere la nuova voce al file delle shadow password\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: errore nell'aggiornare la voce al file DBM delle shadow password\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: impossibile creare la directory %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Il gruppo «mail» non esiste; lo spool di posta verrà creato con modo 0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Impossibile creare lo spool di posta dell'utente %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: l'utente «%s» esiste già\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1939,210 +1853,177 @@ msgstr ""
 "%s: il gruppo «%s» esiste già; usare -g per aggiungere questo utente a tale "
 "gruppo.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: attenzione: CREATE_HOME non è supportata; usare -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Uso: %s [-r] NOME\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: errore nell'aggiornare la voce nel file dei gruppi\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: impossibile aggiornare la voce nel file DBM dei gruppi\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: impossibile rimuovere la voce dal file DBM dei gruppi\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: impossibile aprire il file dei gruppi\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: impossibile aprire il file dei gruppi shadow\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file delle password\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file delle shadow password\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s errore nel rimuovere la voce dal file DBM delle password\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: errore nel rimuovere la voce dal file DBM delle shadow password\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: l'utente %s è attualmente collegato\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s non appartiene a %s, quindi non viene rimosso\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: attenzione: impossibile rimuovere "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: l'utente %s non esiste\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: l'utente %s è un utente NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: la directory %s non viene rimossa (verrebbe eliminata la home "
 "dell'utente %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: errore nel rimuovere la directory %s\n"
 
 # NdT: Lasicare i <Tab> invariati perché la riga sotto è indentata
 # con due <Tab>.
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Uso: %s\t[-u UID [-o]] [-g GRUPPO] [-G GRUPPO,...] \n"
 
-#: src/usermod.c:310
+# NdT: Lasicare i <Tab> invariati perché la riga sotto è indentata
+# con due <Tab>.
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d HOME [-m]] [-s SHELL] [-c COMMENTO] [-l NUOVO_NOME]\n"
 
 # NdT: Questa riga viene indentata di due <Tab>.
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f INATTIVITÀ] [-e SCADENZA] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p PASSWORD] [-L|-U] NOME\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: memoria esaurita in update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: memoria esaurita in update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: non è stata fornita nessuna opzione\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: le shadow password sono necessarie per le opzioni -e e -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid «%lu» non univoco\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: errore nel cambio della voce nel file delle password\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file delle password\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: errore nell'aggiungere la voce al file DBM delle password\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: errore nel rimuovere la voce dal file DBM delle password\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: errore nel rimuovere la voce dal file delle shadow password\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: errore nel rimuovere la voce dal file DBM delle shadow password\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: la directory %s esiste già\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: impossibile creare %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: chown di %s non riuscito\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: impossibile rinominare la directory %s in %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: attenzione: %s non appartiene a %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "impossibile cambiare il proprietario della casella di posta"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "impossibile rinominare la casella di posta"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2151,21 +2032,21 @@ msgstr ""
 "\n"
 "%s: %s non modificato\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Impossibile fare il lock del file"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Impossibile effettuare il backup"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 "%s: impossibile ripristinare %s: %s (le modifiche effettuate sono in %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 489c1ac84777642c594be2d1233f2087a7d20153..e5a0c75c64fc75f78556021a91042a8d514ed0db 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index b91b75b2fdef7d357cbc3fd6f86ce8ae7954c8b5..5ffc73ef7e6eb2692165dfe849de320475d9a70b 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,20 +6,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 1990827\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2000-06-18 120:22+0900\n"
 "Last-Translator: Yasuyuki Furukawa <furukawa@vinelinux.org>\n"
 "Language-Team: Japanese\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "警告: 不明なグループ %sです\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "警告: グループが多すぎます\n"
@@ -47,17 +48,17 @@ msgstr "  システム管理者と相談してください.\n"
 msgid "  Choose a new password.\n"
 msgstr "  新しいパスワードを選択してください.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "あなたのパスワードは%ld日中に期限が切れます.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "あなたのパスワードは明日に期限が切れます.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "あなたのパスワードは本日期限切れです.\n"
@@ -72,39 +73,26 @@ msgstr "TTY %sを変更できません"
 msgid "Environment overflow\n"
 msgstr "環境オーバーフローです\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "$%sを変更できません\n"
 
-#: libmisc/failure.c:230
-#, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "最後のログインから %d %s.  最後のログインは %s, マシン %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "失敗"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "失敗"
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "最後のログインから %d %s.  最後のログインは %s, マシン %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "ログインが多すぎます.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "パスワードは%sの秘密鍵を暗号復元できません.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "%sの秘密鍵を設定できませんでした: keyservデーモンが起動してますか?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "新しいメールが来ています."
@@ -117,7 +105,7 @@ msgstr "メールはありません."
 msgid "You have mail."
 msgstr "メールがあります."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "不正なパスワードです: %s."
@@ -132,20 +120,20 @@ msgstr "passwd: pam_start: エラー %d\n"
 msgid "passwd: %s\n"
 msgstr "パスワード: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "\"%s\"へディレクトリ変更できません\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "ディレクトリがありません. HOME=/ としてログインします"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "%sを実行できません"
@@ -160,35 +148,31 @@ msgstr "不正なルートディレクトリ  \"%s\" です \n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "ルートディレクトリを \"%s\"へ変更できません\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) に失敗しました\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "設定情報用の空き容量が確保できませんでした.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "設定エラー - 不明なアイテム '%s'です  (notify administrator)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "パスワード: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%sのパスワード: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -197,156 +181,149 @@ msgstr ""
 "使用法: chage [-l] [-m 最小日数] [-M 最大日数] [-W 警告]\n"
 "              [-I 無効] [-E 期限切れ] [-d 最後日] ユーザ\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 "新しい値を入力してください, 標準設定値を利用するには リターンを押してくださ"
 "い.\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "最小パスワード変更不可能日数"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "最大パスワード変更可能日数"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "最後パスワード変更日付 (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "パスワード期限切れ警告日数"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "パスワード無効日数"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "アカウント期限切れ日付 (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "最後パスワード変更日付 (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "なし:\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "パスワード期限:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "パスワード無効:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "アカウント期限切れ:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: 他のフラグのため \"l\" オプションは含ませることができません\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: 権限がありません\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, fuzzy, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "バイバスによってパスワードを認証します.\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: パスワードファイルが開けません\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: 不明なユーザ %s です\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, fuzzy, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "シャドウ・パスワード・ファイルをロックできません\n"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, fuzzy, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: シャドウ・パスワード・ファイルを開けません\n"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "%sの期限情報を変更中\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: 項目変更でエラーが起こりました\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: パスワード・ファイルを更新しません\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: シャドウ・パスワード・ファイルを更新しません\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, fuzzy, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "パスワード入力の更新のエラーです.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, fuzzy, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: シャドウ・パスワード・ファイルを削除できません\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: パスワード・ファイルを上書きできません\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, fuzzy, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: ファイルをロックできません\n"
@@ -365,117 +342,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "使用法: %s [-f フルネーム] [-r ルームNo] [-w 職場TEL] [-h 自宅TEL]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "フルネーム"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tフルネーム: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "部屋番号"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "職場電話番号"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "自宅電話番号"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "その他"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: あなたのユーザ名を判定できません.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: NISクライアント上でユーザ`%s'は変更できません.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s'がこのクライアント用のNISマスターです.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: 権限がありません\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "%sのユーザ情報変更中\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: ユーザ名が不正です: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: 部屋番号が不正です: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: 職場電話番号が不正です: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: 自宅電話番号が不正です: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" は不正な文字を含んでいます\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: 入力内容が長過ぎます\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "IDをrootへ変更できません.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "パスワード・ファイルをロックできません; 後でもう一度試してください.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "パスワード・ファイルを開けません.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %sは /etc/passwd中に見付かりません\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "パスワード入力の更新のエラーです.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "パスワード・ファイルの変更を確定(commit)できません.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "パスワード・ファイルをロック解除できません.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -492,48 +474,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: パスワードファイルをロックできません\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: シャドウ・ファイルをロックできません\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: シャドウ・ファイルを開けません\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: %d 行: 1行が長過ぎます\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: %d 行: 新規パスワードがありません\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: %d 行: 不明なユーザ %s です\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: %d 行: パスワード入力を更新できません\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: エラーが検出されました, 変更は無効になりました\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: シャドウ・ファイルの更新にエラーです\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: パスワード・ファイルの更新のエラーです\n"
@@ -543,26 +525,26 @@ msgstr "%s: パスワード・ファイルの更新のエラーです\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "使用法: %s [-s シェル] [ユーザ名]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "ログイン・シェル"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "あなたが %sのシェルを変更することはできません.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "%sのログインシェルを変更中\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: 不正な入力: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%sは不正なシェルです.\n"
@@ -572,12 +554,12 @@ msgstr "%sは不正なシェルです.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "使用法: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: 警告!  set-UID rootされてなくてはなりません!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: 不明なユーザです\n"
@@ -591,320 +573,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "ユーザ名   失敗      最大     最近\n"
-
-#: src/faillog.c:103
-#, fuzzy, c-format
-msgid "  %s on %s"
-msgstr "最近のログイン: %s on %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr ""
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr ""
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "不明なユーザです: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "使用法: %s [-r|-R] グループ\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-d ユーザ] グループ\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d ユーザ] グループ\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A ユーザ,...] [-M ユーザ,...] グループ\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M ユーザ,...] グループ\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: シャドウ・グループ・パスワードが -Aに対して必要です\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "あなたは誰?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "不明なグループです: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "ユーザ %s をグループ %s から追加\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "ユーザ %s をグループ %s から削除\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: 不明な番号 %sです\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: TTYではありません\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "%sグループのパスワードを変更\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "新規パスワード: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "新規パスワード再入力: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "一致しません; もう一度お願いします"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: 後でもう一度お願いします\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: ロックできません\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: シャドウをロックできません\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: ファイルを開けません\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: エントリを更新できません\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: シャドウ・エントリを更新できません\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: ファイルを上書きできません\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: シャドウ・ファイルを上書きできません\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: ファイルをロックできません\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: DBM ファイルを更新できません\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: DBM シャドウ・ファイルを更新できません\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "使用法: groupadd [-g グループID [-o]] [-f] グループ\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: 新規グループエントリへ追加のエラーです\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: 新規DBMグループ・エントリへ追加できません\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: 名前 %s は重複しています\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: ユーザID %u が重複しています\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: 一意のグループIDを取得できません\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s は名前が重複しています\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: グループ %s は不適切です\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr ""
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: グループ・ファイルを開けません\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, fuzzy, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: グループ・ファイルをロックできません\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, fuzzy, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: グループファイルを開けません\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, fuzzy, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルをロックできません\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, fuzzy, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, fuzzy, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: ユーザ %s は存在します\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, fuzzy, c-format
 msgid "Usage: groupdel group\n"
 msgstr "使用法: groupdel グループ\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, fuzzy, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: グループ・エントリの更新のエラーです\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, fuzzy, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: パスワードDBMエントリ削除のエラーです\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, fuzzy, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: シャドウ・パスワード・エントリ削除のエラーです\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, fuzzy, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: シャドウパスワード DBMエントリ の削除のエラー\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, fuzzy, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: DBMグループ・エントリを更新できません\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: %sグループ は存在しません\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: %sグループは NIS のグループです\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s は NIS マスターです\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "使用法: groupmod [-g グループID [-o]] [-n 名前] グループ\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: /etc/groupに %s が見付かりません\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: 新規DBMシャドウ・グループ・エントリを追加できません\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u はグループIDが重複しています\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s は名前が重複しています\n"
@@ -914,110 +861,105 @@ msgstr "%s: %s は名前が重複しています\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "使用法: %s [-r] [-s] [グループ [グループシャドウ]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "使用法: %s [-r] [-s] [グループ]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr ""
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: ファイル %s をロックできません\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: ファイル %s を開けません\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "不正なグループ・ファイルのエントリです\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "`%s'行を削除しますか? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "グループエントリが重複しています\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "不正なグループ名 `%s' です\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "グループ %s: ユーザ %s はいません\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "メンバー `%s' を削除しますか? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "シャドウ・グループ・ファイル・エントリが不正です\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "グループエントリが重複しています\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "グループファイルエントリと一致しません\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, fuzzy, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "グループ %s: ユーザ %s はいません\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, fuzzy, c-format
 msgid "delete administrative member `%s'? "
 msgstr "メンバー `%s' を削除しますか? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, fuzzy, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "グループ %s: ユーザ %s はいません\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, fuzzy, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: ファイル %s を開けません\n"
 
-#: src/grpck.c:647 src/pwck.c:612
-#, fuzzy, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
+#: src/grpck.c:640 src/pwck.c:606
+#, c-format
+msgid "%s: the files have been updated\n"
 msgstr "%s: ファイルは更新されました\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: 変更はありません\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: ファイルは更新されました\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1033,37 +975,37 @@ msgstr "%s: グループファイルを開けません\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルをロックできません\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: シャドウ・グループ %s を削除できません\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: %s のシャドウ・エントリを更新できません\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: グループ %s のエントリを更新できません\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルを更新できません\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: グループ・ファイルを更新できません\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: グループ・ファイルを削除できません\n"
@@ -1083,52 +1025,52 @@ msgstr "使用法: id\n"
 msgid " groups="
 msgstr " グループ="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "ユーザ名         ポート   場所             最近のログイン\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "ユーザ名                ポート   最近のログイン\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**一度もログインはありません**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "使用法:  %s [-p] [ユーザ名]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h ホスト] [-f ユーザ名]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r ホスト\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "ログイン時間が不正です\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1137,31 +1079,31 @@ msgstr ""
 "\n"
 "システムはメンテナンスルーチンに対して閉じました\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr ""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr ""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1170,38 +1112,29 @@ msgstr ""
 "\n"
 "%s ログイン: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "ログイン: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "ログインが違います"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "最近のログイン: %s on %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "最近のログイン: %.19s on %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " 場所 %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr ""
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1242,17 +1175,17 @@ msgstr "%s: 新規グループエントリへ追加のエラーです\n"
 msgid "added %d entries, longest was %d\n"
 msgstr ""
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "使用法: %s [-vf] [-p|g|sp|sg] ファイル\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "使用法: %s [-vf] [-p|g|sp] ファイル\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "使用法: %s [-vf] [-p|g] ファイル\n"
@@ -1272,16 +1205,16 @@ msgstr "使用法: sg グループ [[-c] コマンド]\n"
 msgid "unknown uid: %u\n"
 msgstr "不明なユーザIDです: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "不明なグループIDです: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "申し訳ございません.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "グループが多すぎます\n"
@@ -1291,107 +1224,107 @@ msgstr "グループが多すぎます\n"
 msgid "Usage: %s [input]\n"
 msgstr "使用法: %s [入力]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: /etc/passwd をロックできません.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: ファイルをロックできません, 後でもう一度試してください\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: ファイルを開きます\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: %d行: 不正行です\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: %d行: グループIDが作成できません\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: %d行: ユーザIDが作成できません\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: %d行: ユーザ %s が見付かりません\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: %d行: パスワードを更新できません\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: %d行: mkdir に失敗しました\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: %d行: chown に失敗しました\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: %d行: エントリを更新できません\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: ファイル更新のエラーです\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "使用法: %s [-f|-s] [ユーザ名]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x 最大] [-n 最小] [-w 警告] [-i 無効] ユーザ名\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} ユーザ名\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "古いパスワード: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, fuzzy, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "%sのパスワードの変更\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "新しいパスワード: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "もう一度お願いします.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1401,52 +1334,52 @@ msgstr ""
 "警告: 脆いパスワードです (どうしても使う場合, もう一度これを入力してくださ"
 "い).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "一致しません: もう一度お願いします.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "%s のパスワードは変更できません.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "申し訳ありませんが, %s のパスワードはまだ変更することはできません.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: メモリがたりません\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: %sを実行できません"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: レポジトリ %s はサポートしていません\n"
 
-#: src/passwd.c:914
-#, c-format
-msgid "You may not change the password for %s.\n"
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "あなたは %s のパスワードを変更することはできません.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "%sのパスワードの変更\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "%sのパスワードは変更されません.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "パスワードは変更されました.\n"
@@ -1461,49 +1394,49 @@ msgstr "使用: %s [-q] [-r] [-s] [パスワード [シャドウ]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "使用: %s [-q] [-r] [-s] [パスワード]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "パスワード・ファイル・エントリが不正です\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "パスワードエントリが重複しています\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "不正なユーザ名'%s' です\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "ユーザ %s: グループ %u がありません\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "ユーザ %s: ディレクトリ %s が存在しません\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "ユーザ %s: プログラム %s は存在しません\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "不正なシャドウ・パスワード・エントリです\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "シャドウ・パスワード・エントリが重複しています\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "パスワード・ファイル・エントリと一致しません\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "ユーザ %s: 最後のパスワード変更が未来にあります\n"
@@ -1523,17 +1456,17 @@ msgstr "%s: パスワードファイルを開けません\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: %sのシャドウ・エントリを削除できません\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: %sのパスワードエントリを更新できません\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: シャドウファイルを更新できません\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: パスワードファイルを更新できません\n"
@@ -1543,40 +1476,40 @@ msgstr "%s: パスワードファイルを更新できません\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: ユーザ %s のエントリを更新できません\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: シャドウ・パスワード・ファイルを削除できません\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "申し訳ございません."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: 端末上から実行してください\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: エラー %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "不明な IDです: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "あなたは su %s に認証できませんでした\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(あなた自身のパスワードを入力してください.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1585,22 +1518,22 @@ msgstr ""
 "%s: %s\n"
 "(無効)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "シェルがありません\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "suでこのアカウントへアクセスすることを拒否されました.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "バイバスによってパスワードを認証します.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "認証として, あなた所有のパスワードを入力してください.\n"
@@ -1615,242 +1548,222 @@ msgstr "パスワードファイルがありません\n"
 msgid "No password entry for 'root'\n"
 msgstr "'root'のパスワードエントリがありません\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "システムメンテナンスモードへ入ります\n"
 
-#: src/useradd.c:239
-#, fuzzy, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: グループ %s は不適切です\n"
-
-#: src/useradd.c:248
-#, fuzzy, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, fuzzy, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: コメント `%s' は不正です\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: 不明なグループID %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: 不明なグループ %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, fuzzy, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: グループ・ファイルを開けません\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, fuzzy, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: グループ・ファイルを開けません\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, fuzzy, c-format
 msgid "%s: rename: %s"
 msgstr "%s: %sを作成できません"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, fuzzy, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: %sグループは NIS のグループです\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "使用法: useradd [-u ユーザID [-o]] [-g グループ] [-G グループ,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                [-d ホーム] [-s シェル] [-c コメント]\n"
 "                [-m [-k テンプレート]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                [-f 無効日数] [-e 期限切れ日]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                [-p パスワード] ユーザ名\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "        useradd -D [-g グループ] [-b ベース] [-s シェル]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, fuzzy, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: グループ・ファイルをロックできません\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, fuzzy, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: グループ・ファイルを開けません\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, fuzzy, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルをロックできません\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, fuzzy, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: ユーザID %u が重複しています\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: 一意のユーザIDを取得できません\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: ベースディレクトリ `%s' は不正です\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: コメント `%s' は不正です\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: ホームディレクトリ `%s' は不正です\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: 日付 `%s' は不正です\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, fuzzy, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: シャドウ・パスワードには -e および -e が必要です\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, fuzzy, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: シャドウ・パスワードには -e および -e が必要です\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, fuzzy, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: シェル `%s' は不正です\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: シェル `%s' は不正です\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, fuzzy, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "不正なユーザ名'%s' です\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, fuzzy, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: パスワード・ファイルを上書きできません\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, fuzzy, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: シャドウ・パスワード・ファイルを削除できません\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, fuzzy, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: パスワードファイルをロックできません\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, fuzzy, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: パスワードファイルが開けません\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, fuzzy, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "シャドウ・パスワード・ファイルをロックできません\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, fuzzy, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: シャドウ・パスワード・ファイルを開けません\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, fuzzy, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: パスワードDBMエントリ追加のエラーです\n"
 
-#: src/useradd.c:1473
-#, fuzzy, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: パスワードDBMエントリ削除のエラーです\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, fuzzy, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: シャドウ・パスワード・エントリ削除のエラーです\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, fuzzy, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: シャドウパスワード DBMエントリ の削除のエラー\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, fuzzy, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: ディレクトリ%sを %sへ名前変更できません\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: ユーザ %s のエントリを更新できません\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: ユーザ %s は存在します\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1858,205 +1771,170 @@ msgstr ""
 "%s: グループ %s は存在します − もしこのユーザをそのグループへ追加するには, -"
 "g を利用してください.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "使用法: %s [-r] ユーザ名\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: グループ・エントリの更新のエラーです\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: DBMグループ・エントリを更新できません\n"
-
-#: src/userdel.c:214
-#, fuzzy, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: DBMグループ・エントリを更新できません\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: グループ・ファイルを開けません\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: シャドウ・グループ・ファイルが開けません\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: パスワード・エントリ削除のエラーです\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: シャドウ・パスワード・エントリ削除のエラーです\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: パスワードDBMエントリ削除のエラーです\n"
-
-#: src/userdel.c:440
-#, fuzzy, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: シャドウ・パスワード・エントリ削除のエラーです\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: ユーザ %s は現在ログイン中です\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %sは %sの所有ではありません, 削除は行いません\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, fuzzy, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: 警告: %s は%sの所有ではありません\n"
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: ユーザ %s は存在しません\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: ユーザ %s は NIS ユーザです\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: ディレクトリ%s の削除は行いません (would remove home of user %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: ディレクトリ %s の削除のエラーです\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "使用法: %s\t[-u ユーザID [-o]] [-g グループ] [-G グループ,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d ホーム [-m]] [-s シェル] [-c コメント] [-l 新規ユーザ名]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f 無効日数] [-e 期限切れ日] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p パスワード] [-L|-U] ユーザ名\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: update_group 中にメモリが不足しました\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: update_shdow 中にメモリが不足しました\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: ひとつもフラグが指定されていません\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: シャドウ・パスワードには -e および -e が必要です\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: ユーザID %lu が重複しています\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: パスワード・エントリ変更のエラーです\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: パスワード・エントリ削除のエラーです\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: パスワードDBMエントリ追加のエラーです\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: パスワードDBMエントリ削除のエラーです\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: シャドウ・パスワード・エントリ削除のエラーです\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: シャドウパスワード DBMエントリ の削除のエラー\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: ディレクトリ %sは存在します\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: %sを 作成できません\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: %sをchownできません\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: ディレクトリ%sを %sへ名前変更できません\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: 警告: %s は%sの所有ではありません\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "mailboxの所有者の変更に失敗しました"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "mailboxの名前変更に失敗しました"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2065,20 +1943,20 @@ msgstr ""
 "\n"
 "%s: %s の変更は行われません\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "ファイルをロックできません"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "バックアップを作成できません"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: %sを復旧できませんでした: %s (あなたの変更は%sにあります)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 3b46e5c1ca2dccce0ec518bcb9c579bf67595e22..e8342b78575cd03202207f9db3954bc8072b28d3 100644 (file)
Binary files a/po/ko.gmo and b/po/ko.gmo differ
index 8304a5ae3c4ddab409b6f599c8f7d457ff6eb904..c52012bd313ce71276bc838d9bbb657a899a58f7 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -1,25 +1,26 @@
-# shadow korean translations\r
-# Hwang, SangJin <accel@accellinux.org>, 1999.\r
-# Changwoo Ryu <cwryu@debian.org>, 2004.\r
-# \r
+# shadow korean translations
+# Hwang, SangJin <accel@accellinux.org>, 1999.
+# Changwoo Ryu <cwryu@debian.org>, 2004, 2005.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2004-04-05 12:30+0900\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 16:02+0900\n"
 "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
 "Language-Team: Korean <ko@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "경고: 알 수 없는 그룹(%s)\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "경고: 그룹수가 너무 많음\n"
@@ -47,17 +48,17 @@ msgstr "  시스템 관리자와 상담하십시오.\n"
 msgid "  Choose a new password.\n"
 msgstr "  새로운 열쇠글를 선택하세요.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "열쇠글 사용기한이 %ld일에 끝납니다.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "열쇠글 사용기한이 내일 끝납니다.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "열쇠글 사용기한이 오늘 끝납니다.\n"
@@ -72,39 +73,28 @@ msgstr "%s tty(단말터미널)를 바꿀 수 없습니다"
 msgid "Environment overflow\n"
 msgstr "환경 변수 오버플로우\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "$%s 변수는 바꿀 수 없습니다\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "마지막 로그인으로부터 %d회의 %s입니다. 마지막 로그인은 %s 장소 %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "실패"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "실패"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"마지막 로그인 이후 %d번 실패.\n"
+"마지막 로그인은 %s, %s에서.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "로그인수가 많습니다.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "열쇠글이 %s의 비밀키를 해석할 수 없음.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "%s의 비밀열쇠를 설정할 수 없습니다: keyserv데몬이 현재 실행중입니까?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "새로운 메일이 도착하였습니다."
@@ -117,7 +107,7 @@ msgstr "메일 없음."
 msgid "You have mail."
 msgstr "메일이 있습니다."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "잘못된 열쇠글: %s.  "
@@ -132,20 +122,20 @@ msgstr "열쇠글: pam_start()에 실패했습니다, 오류 %d\n"
 msgid "passwd: %s\n"
 msgstr "열쇠글: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: 열쇠글을 성공적으로 업데이트했습니다\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "\"%s\" 디렉토리로 이동할 수 없습니다\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "디렉토리가 없음, 루트 디렉토리(/)로 로그인합니다"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "%s을(를) 실행할 수 없습니다"
@@ -160,37 +150,33 @@ msgstr "루트 디렉토리 \"%s\"이(가) 잘못되었습니다\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "루트 디렉토리를 \"%s\"(으)로 바꿀 수 없습니다\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d)에 실패했음\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "설정 정보를 위한 공간 확보를 할 수 없습니다.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "설정 오류 - 알 수 없는 항목 '%s'이(가) 있습니다 (관리자에게 알리기 바랍니"
 "다)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "열쇠글: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s의 열쇠글: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(에코 켬) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -199,154 +185,147 @@ msgstr ""
 "사용법: chage [-l] [-m 최소일수] [-M 최대일수] [-W 경고일수]\n"
 "             [-I 무효일수] [-E 만료일수] [-d 마지막 변경일] 사용자명\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "새로운 값을 넣거나, 디폴트를 원하면 엔터를 치세요\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "최소 열쇠글 유효 기간"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "최대 열쇠글 유효 기간"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "마지막으로 열쇠글 바꾼 날 (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "열쇠글 사용만기일 초과 경고"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "열쇠글이 유효하지 않음"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "계정 사용일 만기 일(YYYY-MM-DD)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "마지막으로 열쇠글 바꾼 날 (YYYY-MM-DD)"
+msgstr "마지막으로 열쇠글 바꾼 날\t\t\t\t\t:"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
 msgstr "불가\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "열쇠글 만기:\t"
+msgstr "열쇠글 만기:\t\t\t\t\t:"
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "열쇠글이 유효하지 않음:\t"
+msgstr "열쇠글이 유효하지 않음\t\t\t\t\t:"
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "계정 만기:\t"
+msgstr "계정 만기\t\t\t\t\t\t:"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "열쇠글 바꿔야 할 최소 날\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "열쇠글 바꿔야 할 최대 날\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "열쇠글이 만료되기 전에 경고하는 날\t\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: \"l\" 와 함께 다른 flags를 포함하지 말것\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: 접근권한 거부됨\n"
+msgstr "%s: 접근권한 거부됨.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM 인증이 실패했습니다\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: 열쇠글 파일을 열 수 없습니다\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: 알 수 없는 사용자 %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: 셰도우 열쇠글 파일을 잠글 수 없습니다"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: 셰도우 열쇠글 파일을 열 수가 없습니다"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "%s의 유효 기간 정보를 바꿉니다\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: 항목을 바꾸는 도중 오류가 발생했습니다\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: 열쇠글 파일을 업데이트 할 수 없습니다\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 업데이트 할 수 없습니다\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "DBM 페스워드 입력부분을 업데이트하는 데 오류가 발생했습니다.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 다시 작성할 수 없습니다\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: 열쇠글 파일을 다시 작성할 수 없습니다\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok가 실패했습니다\n"
@@ -366,117 +345,122 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "사용법: %s [-f 이름] [-r 방_번호] [-w 직장_전화번호] [-h 집_전화번호]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "이름"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\t이름: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "방 번호"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "직장 번화번호"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "집 전화번호"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "기타"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: 사용자 이름을 인식할 수 없습니다.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: NIS 클라이언트에서 '%s'의 사용자 이름을 바꿀 수 없습니다.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: 현재의 클라이언트에 대하여 '%s'이(가) NIS 마스터입니다.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: 접근권한 거부됨.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "%s에 대하여 사용자의 정보를 바꿉니다\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: 유효하지 않는 이름: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: 유효하지 않는 방 번호: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: 유효하지 않는 직장 전화번호: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: 유효하지 않는 집 전화번호: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\"에 쓸 수 없는 글자가 들어 있습니다\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: 입력범위가 너무 깁니다\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "루트로 아이디를 바꿀 수는 없습니다.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "열쇠글 파일을 lock할 수 없습니다;  나중에 다시 시도하십시오.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "열쇠글 파일을 열 수가 없습니다.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s이(가) /etc/passwd에 없습니다\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "열쇠글 입력을 업데이트하는 데 오류발생.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "열쇠글 파일 바꾸기를 처리할 수 없습니다.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "열쇠글 파일을 lock할 수 없습니다.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -487,54 +471,61 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"사용법: chpasswd [옵션]\n"
+"\n"
+"옵션:\n"
+"  -e, --encrypted\t열쇠글이 있으면 암호화되어 있습니다\n"
+"  -h, --help\t\t이 도움말 메세지를 표시하고 끝납니다\n"
+"  -m, --md5\t\t열쇠글이 있으면 DES가 아니라 MD5 암호화를 사용합니다\n"
+"\t\t\t열쇠글을 암호화하지 않습니다\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
 msgstr "%s: 열쇠글 파일을 lock할 수 없습니다\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: 셰도우 파일을 lock할 수 없습니다\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: 셰도우 파일을 열 수 없습니다\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: line %d: 너무 깁니다\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: line %d: 새로운 열쇠글이 없습니다\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: line %d: 알 수 없는 사용자 %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: line %d: 열쇠글 입력을 업데이트 할 수 없습니다\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: 오류 발생, 바뀐 사항은 무시합니다\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: 셰도우 파일을 업데이트하는 데 오류발생\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: 열쇠글 파일을 업데이트하는 데 오류발생\n"
@@ -544,26 +535,26 @@ msgstr "%s: 열쇠글 파일을 업데이트하는 데 오류발생\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "사용법: %s [-s 쉘] [이름]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "로그인 쉘"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "사용자 %s의 쉘을 바꿀 수 없습니다.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "%s에 대한 로그인 쉘을 변경하고 있습니다\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: 부적절한 입력: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s은(는) 쓸 수 없는 쉘입니다.\n"
@@ -573,12 +564,12 @@ msgstr "%s은(는) 쓸 수 없는 쉘입니다.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "사용법: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: 경고! 반드시 루트의 UID를 맞출것!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: 알 수 없는 사용자\n"
@@ -592,320 +583,298 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
+"사용법: faillog [옵션]\n"
+"\n"
+"옵션:\n"
+"  -a, --all\t\t\t모든 사용자의 로그인 실패 기록을 표시합니다\n"
+"  -h, --help\t\t\t이 도움말 메세지를 표시하고 끝납니다\n"
+"  -l, --lock-time SEC\t\t로그인 실패하면 SEC초동안 계정을 잠급니다\n"
+"  -m, --maximum MAX\t\t최대 로그인 실패 회수를 MAX로 합니다\n"
+"  -r, --reset\t\t\t로그인 실패 회수를 초기화합니다\n"
+"  -t, --time DAYS\t\tDAYS일 내의 최근 로그인 실패 기록만 표시합니다\n"
+"  -u, --user LOGIN\t\tLOGIN 사용자의 로그인 실패 기록을 보거나 \n"
+"                                로그인 실패 회수와 한계값을 (-r, -m, -l 옵"
+"션 \n"
+"                                사용) 관리합니다.\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "최대 입력시 까지 사용자 이름 인증 실패\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s, %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "로그인       실패     최대값  최근                     사용\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%ld초 남았습니다]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%ld초 잠금]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "알 수 없는 사용자: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "사용법: %s [-r|-R] 그룹\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a 사용자] 그룹\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d 사용자] 그룹\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A 사용자,...] [-M 사용자,...] 그룹\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M 사용자,...] 그룹\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: -A에 대하여 셰도우 그룹 열쇠글이 필요합니다\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "당신은 누구십니까?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "알 수 없는 그룹: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "%s 그룹에 %s 사용자 등록중\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "%s 그룹 으로부터 %s 사용자 삭제중\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: 알 수 없는 그룹멤버 %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: tty가 아님\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "%s 그룹에 대하여 열쇠글을 변경중\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "새로운 열쇠글: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "새 열쇠글을 다시 입력하세요: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "입력값이 일치하지 않습니다; 다시 시도하세요"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: 나중에 다시 시도하세요\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: 잠금을 할 수 없습니다\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: 셰도우 잠금을 할 수 없습니다\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: 파일을 열 수 없습니다\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: 셰도우 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: 파일을 다시 쓸 수 없습니다\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: 셰도우 파일을 다시 쓸 수 없습니다\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: 파일 잠금을 풀 수 없습니다\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: DBM 파일을 업데이트 할 수 없습니다\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: DBM 셰도우 파일을 업데이트 할 수 없습니다\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "사용법: groupadd [-g GID [-o]] [-f] 그룹명\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: 새로운 그룹을 더하는 데 오류가 발생했습니다\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: 새로운 dbm 그룹 입력값을 더하는 데 오류가 발생했습니다\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: %s 란 이름은 적절하지 않습니다\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: GID %u은(는) 유일한 아이디가 아닙니다\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: 유일한 GID를 얻을 수 없습니다\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s은(는) 쓸 수 있는 그룹 이름이 아닙니다\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: 유효하지 않은 그룹 %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: NAME=VALUE를 위해서는 -O 옵션이 필요합니다\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: 그룹파일을 다시 쓸 수 없습니다\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 다시 쓸 수 없습니다\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: 그룹 파일 잠금을 할 수 없습니다\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: 그룹 파일을 열 수가 없습니다\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일 잠금을 할 수 없습니다\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 열 수 없습니다\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: 그룹 %s이(가) 있습니다\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "사용법: groupdel 그룹명\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: 그룹 입력값을 제거하는 데 오류가 발생했습니다\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: 그룹 dbm 입력값을 지우는 데 오류가 발생했습니다\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: 셰도우 그룹 입력값을 지우는 데 오류가 발생했습니다\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: 셰도우 그룹 dbm 입력값을 지우는 데 오류가 발생했습니다\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: 사용자의 주요 그룹은 지울 수 없습니다.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: %s 그룹은 없습니다\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: %s 그룹은 NIS 그룹입니다\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s은(는) NIS 마스터입니다\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "사용법: groupmod [-g GID [-o]] [-n 이름] 그룹명\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s은(는) /etc/group에 없습니다\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: 새로운 dbm 셰도우 그룹 입력값을 더할 수 없습니다\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u은(는) 유일한 GID가 아닙니다\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s은(는) 유일한 이름이 아닙니다\n"
@@ -915,110 +884,105 @@ msgstr "%s: %s은(는) 유일한 이름이 아닙니다\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "사용법: %s [-r] [-s] [그룹 [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "사용법: %s [-r] [-s] [그룹]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "아니오"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s 옵션과 -r 옵션은 동시에 쓸 수 없습니다\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: 파일 %s 잠금을 할 수 없습니다\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: %s 파일을 열 수 없습니다\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "유효하지 않은 그룹파일  입력값\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "'%s' 줄을 지울까요?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "그룹 입력값 복제\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "유효하지 않은 그룹명 '%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "그룹 %s: %s 사용자가 없습니다\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "'%s' 멤버를 지울까요? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "유효하지 않은 셰도우 그룹파일 입력값\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "셰도우 그룹 입력값 복제\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "그룹 파일 입력값이 일치하지 않습니다\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "셰도우 그룹 %s: 관리용 사용자 %s이(가) 없습니다\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "관리용 멤버 '%s'을(를) 지울까요? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "셰도우 그룹 %s: %s 란 사용자가 없습니다\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: %s 파일을 업데이트 할 수 없습니다\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: 파일이 업데이트 되었습니다; mkpasswd를 실행하십시오\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: 파일이 업데이트 되었습니다\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: 바꾸지 않았습니다\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: 파일이 업데이트 되었습니다\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1034,37 +998,37 @@ msgstr "%s: 그룹 파일을 열 수 없습니다\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일 잠금을 할 수 없습니다\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 열 수 없습니다\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: 셰도우 그룹 %s을(를) 지울 수 없습니다\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: %s에 대한 셰도우 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: %s 그룹에 대한 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 업데이트 할 수 없습니다\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: 그룹 파일을 업데이트 할 수 없습니다\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 지울 수 없습니다\n"
@@ -1084,52 +1048,58 @@ msgstr "사용법: id\n"
 msgid " groups="
 msgstr " 그룹들="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"사용법: lastlog [옵션]\n"
+"\n"
+"옵션:\n"
+"  -u, --login LOGIN\tLOGIN이라는 사용자의 최근 기록을 봅니다\n"
+"  -h, --help\t\t이 도움말 메세지를 표시하고 끝납니다\n"
+"  -t, --time DAYS\tDAYS일 내의 최근 로그 기록만 표시합니다\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "사용자명         포트     ~로부터          최근정보\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "사용자이름              포트     최근정보\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**한번도 로그인한 적이 없습니다**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "사용법: %s [-p] [이름]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h 호스트명] [-f 이름]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r 호스트\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "잘못된 로그인 시간\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1138,7 +1108,7 @@ msgstr ""
 "\n"
 "정기 점검을 위해 시스템이 종료되었습니다\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1147,7 +1117,7 @@ msgstr ""
 "\n"
 "[접속해제가 무시되었습니다 -- 루트만 로그인을 할 수 있습니다]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1156,17 +1126,17 @@ msgstr ""
 "\n"
 "%d 초 후에 로그인 시간이 완료됩니다.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " on `%.100s' from `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " on `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1175,38 +1145,29 @@ msgstr ""
 "\n"
 "%s 로그인: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "로그인: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "로그인이 맞지 않습니다"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "경고: 일시적으로 페쇄된뒤 다시 로그인할 수 있습니다.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "마지막 로그인: %s on %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "마지막 로그인: %.19s on %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " from %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "rad_login을 시작하고 있습니다\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1225,9 +1186,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: %s에 대한 DBM 파일을 열 수 없습니다\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: ~와 함께 시작 "
+msgstr "%s: %.16s...로 시작하는 줄은 너무 깁니다\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1235,31 +1196,31 @@ msgid "%s: error parsing line \"%s\"\n"
 msgstr "%s: \"%s\" 줄을 파싱하는 데 오류가 발생했습니다\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "다음 이름에 대한 기록을 더합니다:"
+msgstr "이름 %s에 대한 기록을 더합니다\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: 다음에 대한 기록을 더하는 데 오류:"
+msgstr "%s: %s에 대한 기록을 더하는 데 오류\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
 msgstr "%d개 입력값을 더했습니다, 가장 긴 것은 %d입니다\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "사용법: %s [-vf] [-p|sp|sg] 파일명\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "사용법: %s [-vf] [-p|g|sp] 파일명\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "사용법: %s [-vf] [-p|g] 파일명\n"
@@ -1279,16 +1240,16 @@ msgstr "사용법: sg group [[-c] 명령]\n"
 msgid "unknown uid: %u\n"
 msgstr "알 수 없는 UID: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "알 수 없는 GID: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "죄송합니다.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "그룹들이 너무나 많습니다\n"
@@ -1298,91 +1259,91 @@ msgstr "그룹들이 너무나 많습니다\n"
 msgid "Usage: %s [input]\n"
 msgstr "사용법: %s [입력값]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: /etc/passwd 잠금을 할 수 없습니다.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: 파일 잠금을 할 수 없습니다, 나중에 다시 시도하세요\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: 파일을 열 수가 없습니다\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: %d번 줄: 유효하지 않은 라인\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: %d번 줄: GID를 만들 수 없습니다\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: %d번 줄: UID를 만들 수 없습니다\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: %d번 줄: %s 사용자가 없습니다\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: %d번 줄: 열쇠글을 업데이트 할 수 없습니다\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: %d번 줄: 디렉토리 만들기를 실패했습니다\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: %d번 줄: chown을 실패했습니다\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: %d번 줄: 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: 파일을 업데이트 하는 데 오류가 발생했습니다\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "사용법: %s [-f|-s] [이름]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x 최대][-n 최소][-w 경고][-i 비활성화] 이름\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} 이름\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "예전 열쇠글: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "`%s'에 대하여 열쇠글이 맞지 않습니다\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1391,16 +1352,16 @@ msgstr ""
 "새로운 열쇠글을 입력하세요 (최소 %d, 최대 %d 글자)\n"
 "상하위 글자와 숫자를 조합하여 사용하세요.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "새로운 열쇠글: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "다시 시도하세요.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1409,52 +1370,52 @@ msgstr ""
 "\n"
 "경고: 보안성이 없는 열쇠글 (그래도 사용하길 원한다면 다시 입력하세요).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "입력값이 일치하지 않습니다; 다시 시도하세요.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "%s에 대한 열쇠글은 바꿀 수 없습니다.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "죄송합니다, %s에 대한 열쇠글은 아직 바꿀 수 없습니다.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: 메모리 부족\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: %s을(를) 실행할 수 없습니다"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: %s 저장소는 지원하지 않습니다\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "%s에 대한 열쇠글을 바꿀 수 없습니다.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: %s에 대한 열쇠글 정보를 보거나 바꿀 수 없습니다.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "%s에 대한 열쇠글을 변경중\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "%s에 대한 열쇠글을 바꾸지 않았습니다.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "열쇠글을 바꿨습니다.\n"
@@ -1469,49 +1430,49 @@ msgstr "사용법: %s [-q] [-r] [-s] [열쇠글 [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "사용법: %s [-q] [-r] [-s] [열쇠글]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "유효하지 않은 열쇠글 파일 입력\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "열쇠글 입력값 복제\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "유효하지 않은 사용자명 '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "사용자 %s: 그룹이 없습니다 %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "사용자 %s: %s 디렉토리는 없습니다\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "사용자 %s: %s 프로그램은 없습니다\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "유효하지 않은 셰도우 열쇠글 파일 입력값\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "셰도우 열쇠글 입력값 복제\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "열쇠글 파일 입력값이 일치하지 않습니다\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "사용자 %s: 마지막 열쇠글 바꾼 때가 미래입니다\n"
@@ -1531,17 +1492,17 @@ msgstr "%s: 열쇠글 파일을 열 수 없습니다\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: %s에 대한 셰도우 입력값을 지울 수 없습니다\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: %s에 대한 열쇠글 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: 셰도우 파일을 업데이트 할 수 없습니다\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: 열쇠글 파일을 업데이트 할 수 없습니다\n"
@@ -1551,40 +1512,40 @@ msgstr "%s: 열쇠글 파일을 업데이트 할 수 없습니다\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: 사용자 %s에 대한 입력값을 업데이트 할 수 없습니다\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 지울 수 없습니다\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "죄송합니다."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: 터미널에서 받드시 실행이 되어져야 합니다\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: 오류 %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "알 수 없는 아이디: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "당신은 su %s 에게 인증이 되지 않았습니다\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(자신의 열쇠글을 입력하세요.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1593,22 +1554,22 @@ msgstr ""
 "%s: %s\n"
 "(무시됨)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "쉘이 없음\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "이 어카운트로 su로 접근제어하는 허가가 거부되었습니다.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "열쇠글 인증이 무시되었습니다.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "사용자 자신의 열쇠글을 인증으로써 입력을 하십시오.\n"
@@ -1623,7 +1584,7 @@ msgstr "열쇠글 파일 없음\n"
 msgid "No password entry for 'root'\n"
 msgstr "'루트'에 대한 열쇠글 파일 입력값 없음\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1633,234 +1594,214 @@ msgstr ""
 "일반적으로 시작(normal startup)을 하려면 control-d를 입력하세요,\n"
 "(그렇지 않으면 시스템 정비를 위하여 루트 열쇠글을 입력하세요)"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "시스템 정비 모드로 들어가고 있습니다\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: 그룹 데이터베이스를 다시 만듭니다\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: 셰도우 그룹 데이터베이스를 다시 만듭니다\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: 유효하지 않은 숫자 입력값 `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: 알 수 없는 GID %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: 알 수 없는 그룹 %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: 새로운 디폴트 파일을 만들 수 없습니다\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: 새로운 디폴트 파일을 만들 수 없습니다\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: 이름 재 설정: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: `%s' 그룹은 NIS 그룹입니다.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: 너무나 많은 그룹이 명시되었습니다 (최대 %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "사용법: useradd [-u UID [-o]] [-g 그룹명] [-G 그룹,...]\n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "               [-d 홈디렉토리] [-s 쉘] [-c 주석] [-m [-k template]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "               [-f 비활성화] [-e 만기]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "               [-p 열쇠글] 이름\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       useradd -D [-g 그룹명] [-b 초기디렉토리] [-s 쉘]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: 그룹 파일 잠금을 하는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: 그룹 파일을 여는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: 셰도우 그룹을 잠그는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: 그룹 파일을 여는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: UID %u은(는) 유일하지 않습니다\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: 적절한 UID를 얻을 수 없습니다\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: 기본 디렉토리 `%s'은(는) 잘못되었습니다\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: 주석 `%s'이(가) 틀렸습니다\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: 홈 디렉토리 `%s'은(는) 잘못되었습니다\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: 날짜 `%s'은(는) 잘못되었습니다\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: 셰도우 열쇠글이 -e 옵션을 요구합니다\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: 셰도우 열쇠글이 -f 옵션을 요구합니다\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: `%s' 부분은 유효하지 않습니다\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: 유효하지 않은 쉘 `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: 유효하지 않은 사용자명 `%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: 열쇠글 파일을 다시 쓸 수가 없습니다\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 다시 쓸 수가 없습니다\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: 열쇠글 파일 잠금을 할 수 없습니다\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: 열쇠글 파일을 열 수 없습니다\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 잠글 수 없습니다\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: 셰도우 열쇠글 파일을 열 수 없습니다\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: 새로운 열쇠글 입력값을 더하는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: 열쇠글 dbm 입력값을 업데이트하는 데 오류가 발생했습니다\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: 새로운 셰도우 열쇠글 입력값을 더하는 데 오류가 발생했습니다\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: 셰도우 열쇠글 dbm 입력값을 업데이트 하는 데 오류가 발생했습니다\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: 디렉토리 %s을(를) 만들 수 없습니다\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "\"mail\"이라는 이름의 그룹이 있습니다. 메일 스풀을 모드 0600으로 만듭니다.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "사용자 %s의 메일 스풀을 만들 수 없습니다.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: 사용자 %s이(가) 있습니다\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1868,207 +1809,172 @@ msgstr ""
 "%s: %s 그룹이 있습니다 - 이 사용자를 이 그룹에 더하려면, -g 옵션을 사용하십시"
 "오.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s:경고: CREATE_HOME은 지원되지 않습니다, -m 옵션을 대신 사용하세요.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "사용법: %s [-r] 이름\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: 그룹 입력값을 업데이트하는 데 오류가 발생했습니다\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: dbm 그룹 입력값을 업데이트 할 수 없습니다\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: dbm 그룹 입력값을 지울 수 없습니다\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: 그룹 파일을 열 수 없습니다\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: 셰도우 그룹 파일을 열 수 없습니다\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: 열쇠글 입력값을 지우는 데 오류가 발생했습니다\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: 셰도우 열쇠글 입력값을 지우는 데 오류가 발생했습니다\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: 열쇠글 dbm 입력값을 지우는 데 오류가 발생했습니다\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: 셰도우 열쇠글 dbm 입력값을 지우는 데 오류가 발생했습니다\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: %s 사용자는 현재 로그인한 상태 입니다\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s은(는) %s의 소유가 아닙니다, 지우지 않습니다\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: 경고: 지울 수 없습니다 "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: 사용자 %s은(는) 없습니다\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: 사용자 %s은(는) NIS 사용자 입니다\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: 디렉토리 %s은(는) 지우지 않습니다 (사용자 %s의 홈 디렉토리가 지워질 것입"
 "니다)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: 디렉토리 %s을(를) 지우는 데 오류가 발생했습니다\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "사용법: %s\t[-u UID [-o]] [-g 그룹이름][-G 그룹,...]\n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d 홈 디렉토리 [-m]] [-s 쉘] [-c 주석] [-l 새_이름]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f 비활성화] [-e 만기] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p 열쇠글] [-L|-U] 이름\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: 업데이트_그룹에 메모리 부족\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: 업데이트_그룹셰도우에 메모리 부족\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: 주어진 flag가 없습니다\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: 셰도우 열쇠글이 -e 옵션과 -f 옵션을 요구합니다\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: UID %lu은(는) 유일하지 않습니다\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: 열쇠글 입력값을 변경하는 데 오류가 발생했습니다\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: 열쇠글 입력값을 제거하는 데 오류가 발생했습니다\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: 열쇠글 dbm 입력값을 더하는 데 오류가 발생했습니다\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: 열쇠글 dbm 입력값을 제거하는 데 오류가 발생했습니다\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: 셰도우 열쇠글 입력값을 제거하는 데 오류가 발생했습니다\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: 셰도우 열쇠글 dbm 입력값을 제거하는 데 오류가 발생했습니다\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: 디렉토리 %s은(는) 있습니다\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: %s을(를) 만들 수 없습니다\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: %s을(를) chown할 수 없습니다\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: 디렉토리 %s에서 %s(으)로 이름을 바꿀 수 없습니다\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: 경고: %s은(는) %s에 소유되어 있지 않습니다\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "메일박스 소유자를 바꾸는 데 실패했습니다"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "메일박스의 이름을 바꾸는 데 실패했습니다"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2077,20 +1983,20 @@ msgstr ""
 "\n"
 "%s: %s은(는) 바꾸지 않았습니다\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "파일을 잠글 수 없습니다"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "백업을 만들 수 없습니다"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: %s을(를) 복구시킬 수 없습니다: %s (바뀐 사항은 %s에 있습니다)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index c2eb864708244e80a998fabf910efefcc744b29b..86e31fec08f21f33162da4c80f8c557a4b2110b6 100644 (file)
Binary files a/po/nb.gmo and b/po/nb.gmo differ
index 3d12efb029d3431e96408c6b6a54596a9dd5b0c3..9d0dcfe77b7714f1394ece2643150e2224cdbc21 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-06-03 21:42+0200\n"
 "Last-Translator: Håvard Korsvoll <korsvoll@skulelinux.no>\n"
 "Language-Team: Norwegian (Nynorsk) <i18n-nn@lister.ping.uio.no>\n"
@@ -21,14 +21,14 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.3.1\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Advarsel: ukjent gruppe %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Advarsel: for mange grupper\n"
@@ -56,17 +56,17 @@ msgstr "  Kontakt systemadministrator.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Velg et nytt passord.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Ditt passord vil utløpe om %ld dager.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Ditt passord vil utløpe i morgen.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Ditt passord vil utløpe i dag.\n"
@@ -81,39 +81,27 @@ msgstr "Kan ikke endre tty %s"
 msgid "Environment overflow\n"
 msgstr "Omgivelsene er overfyllt\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Du kan ikke endre $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s siden forrige innlogging.  Forrige innlogging var %s på %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "mislykka forsøk"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "mislykka forsøk"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s siden forrige innlogging.  Forrige innlogging var %s på %s.\n"
+msgstr[1] "%d %s siden forrige innlogging.  Forrige innlogging var %s på %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "For mange innlogginger.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Passordet dekrypterer ikke hemmelig nøkkel for %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Kunne ikke bestemme hemmelige nøkkel til %s: kjører keyserv-nissen?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Du har fått ny epost."
@@ -126,7 +114,7 @@ msgstr "Ingen epost."
 msgid "You have mail."
 msgstr "Du har epost."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Dårlig passord: %s.  "
@@ -141,20 +129,20 @@ msgstr "passwd: pam_start() feilet, feil %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Klare ikke endre katalog til \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Ingen hjemmemappe, logger inn med HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Kan ikke utføre %s"
@@ -169,35 +157,31 @@ msgstr "Ugyldig rot mappe \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kan ikke endre rot mappa til \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) feilet\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Fant ikke plass til config-info.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "feil med oppsettet - ukjent element «%s» (kontakt administrator)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Passord: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s's Passord: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo på) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -206,155 +190,148 @@ msgstr ""
 "Bruk: chage [-l] [-m min_dager] [-M max_dager] [-W varsel]\n"
 "            [-I inaktiv] [-E utgått/(expire)] [-d siste_dag] bruker/(user)\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 "Skriv inn de nye verdiene, eller trykk RETUR for å bruke forvalgte verdier\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimum gyldighetsperiode på passord"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maksimum gyldighetsperiode på passord"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Siste endring av passord (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Varsel når passordet er utgått på dato"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Inaktivt passord"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Konto utløper (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Siste endring av passord (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Aldri\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Passord utløper:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Passord er inaktivt:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Kontoen utløper:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: ikke inkluder \"l\" sammen med andre opsjoner\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: ikke tillatelse\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM autentifisering feilet\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: kan ikke åpne passordfila\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: ukjent bruker %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: kan ikke låse skyggepassordfila"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: kan ikke åpne skyggepassordfila"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Endre utløpsinformasjon for %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: feil ved endring i feltene\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: kan ikke oppdatere passordfila\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: kan ikke oppdatere skyggepassordfila\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Feil ved oppdatering i DBM-passordlinja.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: kan ikke gjenskrive skyggepassordfila\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: kan ikke gjenskrive passordfila\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok feilet\n"
@@ -373,117 +350,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Bruk: %s [-f fullt_navn] [-r room_no] [-w work_ph] [-h home_ph]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Fullstendig navn"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tFullstendig navn: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Romnummer"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Jobbtelefon"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Hjemtelefon"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Andre"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kan ikke avgjøre ditt brukernavn.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: kan ikke endre bruker «%s» på NIS-klienten.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: «%s» er NIS-sjefen for denne klienten.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: ikke tillatelse\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Endrer brukerinformasjon for %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: Ugyldig navn: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: ugyldig romnummer: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: ugyldig jobbtelefon: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: ugyldig hjemtelefon: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" inneholder ugyldige tegn\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: feltene er for lange\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Kan ikke endre ID til root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Kan ikke låse passordfila; forsøk senere.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Kan ikke åpne passordfila.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s ikke funnet i /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Feil ved oppdatering av passord.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Kan ikke sende inn endringer til passordfila.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Kan ikke låse opp passordfila.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -500,48 +482,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: kan ikke låse passordfila\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: kan ikke låse shadow filen\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: kan ikke åpne shadow filen\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linje %d: linje er for lang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linje %d: mangler nytt passord\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linje %d: ukjent bruker %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linje %d: kan ikke oppdatere passordlinja\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: feil funnet, endringer er ikke utført\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: feil ved oppdatering av skyggefilen\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: feil ved oppdatering av passordfilen\n"
@@ -551,26 +533,26 @@ msgstr "%s: feil ved oppdatering av passordfilen\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Bruk: %s [-s skjell] [navn]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Innloggingsskall"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Du kan ikke endre skall til %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Endre innloggingsskall til %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: ugyldig inntasting: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s er et ugyldig skall.\n"
@@ -580,12 +562,12 @@ msgstr "%s er et ugyldig skall.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Bruk: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: ADVARSEL!  Må være set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: ukjent bruker\n"
@@ -599,320 +581,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Brukernavn   Feil  Maksimum  Siste\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s på %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds igjen]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lås]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Ukjent bruker: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Bruk: %s [-r|-R] gruppe\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "      %s [-a bruker] gruppe\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "      %s [-d bruker] gruppe\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "      %s [-A bruker,...] [-M bruker,...] gruppe\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "      %s [-M bruker,...] gruppe\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: shadow gruppepassord kreves for -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Hvem er du?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "ukjent gruppe: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Legger til brukere i  %s gruppen %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Fjerner brukeren %s fra gruppa %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: ukjent medlem %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Ikke en tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Endrer passordet for gruppa %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nytt passord: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Skriv inn passordet pånytt: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Passordene var ikke like, prøv igjen"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Prøv igjen senere\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: kan ikke låse\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: klarer ikke å låse shadow-fila \n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: kan ikke åpne fila\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: klarer ikke å oppdatere oppføringen\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: klarer ikke å oppdatere oppføringen i shadow-fila\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: klarer ikke å omskrive fila\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: klarer ikke å omskrive shadow-fila\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: kan ikke låse opp filen\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: kan ikke oppdatere DBM filene\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: kan ikke oppdatere DBM-shadow filene\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Bruk: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: feil ved oppretting av ny gruppeoppføring\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: klarer ikke å legge til ny oppføring for dbm-gruppen \n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: navn %s er ikke unikt\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u er ikke unikt\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: klarer ikke å få unik gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s er ikke et gyldig gruppenavn\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: ugyldig gruppe %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O krever NAME=VALUE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: klarer ikke å omskrive gruppefila\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: klarer ikke å omskrive shadow-fila\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: klarer ikke å låse gruppefilen\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: klarer ikke å åpne gruppefilen\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: klarer ikke å låse shadow gruppefilen\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: klarer ikke å åpne shadow gruppefila\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: gruppen %s finnes allerede\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Bruk: groupdel gruppe\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: feil ved fjerning av gruppeoppføring\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: feil ved fjerning av dbm-oppføringen for gruppen\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: feil ved sletting av shadow gruppe oppføring\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: feil ved sletting av shadow gruppe dbm-oppføring\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: kan ikke fjerne brukerens primærgruppe.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: gruppen %s finnes ikke\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: gruppen %s er en NIS gruppe\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s er NIS sjefen\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Bruk: groupmod [-g gid [-o]] [-n navn] gruppe\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s ikke funnet i /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s kan ikke legge til ny shadowgruppe i dbm\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u er ikke en entydig gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s er ikke et entydig navn\n"
@@ -922,110 +869,105 @@ msgstr "%s: %s er ikke et entydig navn\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Bruk: %s [-r] [-s] [gruppe [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Bruk: %s [-r] [-s] [gruppe]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nei"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s og -r kan ikke brukes samtidig\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: kan ikke låse filen %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: kan ikke åpne filen %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "ugyldig oppføring i gruppefila\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "slett linje `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "duplisert gruppeoppføring\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "ugyldig gruppenavn `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "gruppe %s: ingen bruker %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "slett medlem `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "ugyldig oppføring i shadow gruppefila\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "duplisert shadowgruppe-oppføring\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "fant ingen tilsvarende oppføring i gruppefila\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "shadow-gruppe %s: ingen administrativ bruker %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "slett administrativt medlem «%s» ?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "shadow gruppe %s: ingen bruker %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: kan ikke oppdatere fila %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: filene har blitt oppdatert, kjør mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: filene har blitt oppdatert\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: ingen endringer\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: filene har blitt oppdatert\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1041,37 +983,37 @@ msgstr "%s: klarer ikke å åpne gruppefila\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: kan ikke låse shadow-gruppefila\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: kan ikke åpne shadow-gruppefila\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: kan ikke fjerne shadow-gruppe %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: kan ikke oppdatere shadow-oppføringen for %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: kan ikke oppdatere oppføringen for gruppa %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: kan ikke oppdatere shadow-gruppefila\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: kan ikke oppdatere gruppefila\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: kan ikke slette shadow-gruppefila\n"
@@ -1091,52 +1033,52 @@ msgstr "Bruk: id\n"
 msgid " groups="
 msgstr " grupper="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Brukernavn         Port     Fra             Sist\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Brukernavn                Port     Sist\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Aldri vært innlogget**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Bruk: %s [-p] [navn]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "      %s [-p] [-h host] [-f navn]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "      %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Ugyldig tidspunkt for innlogging\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1145,7 +1087,7 @@ msgstr ""
 "\n"
 "Systemet stengt for rutinemessig vedlikehold\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1154,7 +1096,7 @@ msgstr ""
 "\n"
 "[Frakobling omgått - root-innlogging tillatt.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1163,17 +1105,17 @@ msgstr ""
 "\n"
 "Innlogging avbrutt på tid etter %d sekunder.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " på `%.100s' fra `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " på `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1182,38 +1124,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Ugyldig innlogging"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Advarsel: innlogging reaktivert etter midlertidig stenging.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Forrige login: %s på %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Forrige login: %.19s på %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " fra %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Starter rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1254,17 +1187,17 @@ msgstr "%s: feil under innlegging av post for "
 msgid "added %d entries, longest was %d\n"
 msgstr "la til %d oppføringer, lengste var %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Bruk: %s [-vf] [-p|g|sp|sg] file\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Bruk: %s [-vf] [-p|g|sp] file\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Bruk: %s [-vf] [-p|g] file\n"
@@ -1284,16 +1217,16 @@ msgstr "Bruk: sg group [[-c] command]\n"
 msgid "unknown uid: %u\n"
 msgstr "ukjent uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "ukjent gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Beklager.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "For mange grupper\n"
@@ -1303,91 +1236,91 @@ msgstr "For mange grupper\n"
 msgid "Usage: %s [input]\n"
 msgstr "Bruk: %s [input]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: kan ikke låse /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: kan ikke låse filene, prøv igjen senere\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: kan ikke åpne filer\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linje %d: ugyldig linje\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linje %d: kan ikke opprette GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linje %d: kan ikke opprette UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linje %d: kan ikke finne bruker %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linje %d: kan ikke oppdatere passord\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linje %d: mkdir feilet\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linje %d: chown feilet\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linje %d: kan ikke oppdatere oppføring\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: feil ved oppdatering av filer\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Bruk: %s [-f|-s] [navn]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "      %s [-x max] [-n min] [-w advar] [-i inakt] navn\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "      %s {-l|-u|-d|-S|-e} navn\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Gammelt passord: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Feil passord for «%s»\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1396,16 +1329,16 @@ msgstr ""
 "Skriv inn det nye passordet (minst %d, høyst %d tegn)\n"
 "Bruk en kombinasjon av store og små bokstaver, og tall.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nytt passord: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Prøv igjen.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1414,52 +1347,52 @@ msgstr ""
 "\n"
 "Advarsel: svakt passord (skriv det inn igjen for å bruke det likevel).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Passordene var ikke like, prøv igjen.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Passordet for %s kan ikke endres.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Passordet for %s kan ikke endres ennå.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: slapp opp for minne\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kan ikke utføre %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: ikke støtte for lager %s\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Du kan ikke endre skall til %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Endrer passordet til %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Passordet for %s er uendret.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Passordet er endret.\n"
@@ -1474,49 +1407,49 @@ msgstr "Bruk: %s [-q] [-r] [-s] [passord [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Bruk: %s [-q] [-r] [-s] [passord]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "ugyldig oppføring i passordfila\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "duplisert oppføring i passordfila\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "ugyldig brukernavn '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "bruker %s: ingen gruppe %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "bruker %s: mappe %s finnes ikke\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "bruker %s: programmet %s finnes ikke\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "ugyldig oppføring i shadow-passordfila\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "duplisert oppføring i shadow-passordfila\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "fant ingen tilsvarende oppføring i passordfila\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "bruker %s: seneste passordendring i fremtiden\n"
@@ -1536,17 +1469,17 @@ msgstr "%s: klarte ikke å åpne passordfila\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: klarte ikke å fjerne shadow-oppføring for %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: klarer ikke å endre passord-oppføringen for %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: klarer ikke å oppdatere shadow-fila\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: klarer ikke å oppdatere passordfila\n"
@@ -1556,40 +1489,40 @@ msgstr "%s: klarer ikke å oppdatere passordfila\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: klarer ikke å oppdatere oppføring for bruker %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: kan ikke slette shadow-passordfila\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Beklager."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: må kjøres fra en terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: feil %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Ukjent id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Du har ikke adgang til å su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Oppgi ditt eget passord.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1598,22 +1531,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorert)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Mangler skall\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "NEKTET tilgang til su til den kontoen.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Passordautentisering forbi-koblet.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Oppgi ditt EGET passord som autentisering.\n"
@@ -1628,7 +1561,7 @@ msgstr "Ingen passordfil.\n"
 msgid "No password entry for 'root'\n"
 msgstr "Ingen oppføring for «root» i passordfila\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1638,233 +1571,213 @@ msgstr ""
 "Bruk control-d for å fortsette med normal oppstart,\n"
 "(eller skriv inn root passordet for å starte maskinen i vedlikeholdsmodus):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Starter systemvedlikeholds-modus\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: bygg gruppedatabasen omigjen\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: bygg shadow-gruppedatabasen omigjen\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: ugyldig numerisk argument `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: ukjent gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: ukjent gruppe %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: klarer ikke å opprette ny «defaults»-fil\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: klarer ikke å åpne ny «defaults»-fil\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: gi nytt navn: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: gruppe `%s' er en NIS gruppe.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: for mange grupper spesifisert (maks %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Bruk: useradd [-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "              [-d hjem] [-s skall] [-c kommentar] [-m [-k mal]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "              [-f inaktiv] [-e utgå ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "              [-p passord] navn\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "      useradd -D [-g gruppe] [-b base] [-s skall]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: feil ved låsing av gruppefila\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: feil ved åpning av gruppefila\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: feil ved låsing av shadow-gruppefila\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: feil ved åpning av shadow-gruppefila\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u er ikke unik\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: kan ikke finne unikt uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: ugyldig basismappe `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: ugyldig kommentar `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: ugyldig hjemmemappe `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: ugyldig dato `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: shadow-passord kreves for -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: shadow-passord kreves for -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: ugyldig felt `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: ugyldig skall `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: ugyldig brukernavn '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: kan ikke skrive passordfila på nytt\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: kan ikke skrive shadow-passordfila på nytt\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: klarte ikke å låse passordfila\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: klarte ikke å åpne passordfila\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: klarte ikke å låse shadow-passordfila\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: klarte ikke å åpne shadow-passordfila\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: feil ved innlegging av ny passord-oppføring\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: feil under oppdatering av passord dbm-oppføring\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: feil ved innlegging av ny shadow passord-oppføring\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: feil ved oppdatering av shadow passord dbm-oppføring\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: kan ikke opprette mappa %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: klarer ikke å oppdatere oppføring for bruker %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: bruker %s finnes\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1872,206 +1785,171 @@ msgstr ""
 "%s: gruppen %s finnes - hvis du ønsker å legge til denne brukeren til denne "
 "gruppen, bruk -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: advarsel: CREATE_HOME ikke støttet, bruk -m istedenfor.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Bruk: %s [-r] navn\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: feil ved oppdatering av gruppe-oppføring\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: klarte ikke oppdatere gruppe dbm-oppføring\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: kan ikke fjerne gruppe dbm-oppføring\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: kan ikke åpne gruppefila\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: kan ikke åpne shadow-gruppefila\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: feil ved sletting av passord-oppføring\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: feil ved sletting av shadow passordoppføring\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: feil ved sletting av passord dbm-oppføring\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: feil ved sletting av shadow passord dbm-oppføring\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: brukeren %s er pålogget\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s ikke eid av %s, ikke fjernet\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: advarsel: kan ikke fjerne "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: bruker %s finnes ikke\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: bruker %s er ikke en NIS bruker\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: fjerner ikke mappe %s (det ville fjerne hjemmemappa til bruker %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: feil ved fjerning av mappe %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Bruk: %s\t[-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d hjem [-m]] [-s skall] [-c kommentar] [-l nytt_navn]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, fuzzy, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inaktiv] [-e utgå ] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passord] [-L|-U] navn\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: slapp opp for minne i update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: slapp opp for minne i update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: ingen flagg oppgitt\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: shadow-passord kreves for -e og -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu er ikke unik\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: feil ved endring av passordoppføring\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: feil ved sletting av passordoppføring\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: feil ved innlegging av passord dbm-oppføring\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: feil ved fjerning av passord dbm-oppføring\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: feil ved sletting av shadow passord-oppføring\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: feil ved sletting av shadow passord dbm-oppføring\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: mappa %s finnes\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: kan ikke lage %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: kan ikke chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: kunne ikke endre navn på mappa %s til %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: advarsel: %s er ikke eid av %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "klarte ikke å endre eier av mailbox"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "klarte ikke å endre navn på mailbox"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2080,20 +1958,20 @@ msgstr ""
 "\n"
 "%s: %s er ikke endret\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Kunne ikke låse fil"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Kunne ikke lage backup"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: kan ikke gjenopprette %s: %s (dine endringer befinner seg i %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 4fe8ac2aaef01ceda747bb2f32333e2111c535b9..9cd1f27a7e28ec130116043611bfd826bc26df60 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 4adc3f88d7eacb364f37e363e39d8a716f80cdf9..bb988581a0405fac60bd51255b1a9c7275e6f3af 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -2,24 +2,24 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-18 17:55+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-24 15:38+0100\n"
 "Last-Translator: Bart Cornelis <cobaco@linux.be>\n"
 "Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Waarschuwing: onbekende groep %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Waarschuwing: teveel groepen\n"
@@ -47,17 +47,17 @@ msgstr "  U dient contact op te nemen met de systeembeheerder.\n"
 msgid "  Choose a new password.\n"
 msgstr " U dient een nieuw wachtwoord te kiezen.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Uw wachtwoord vervalt binnen %ld dagen.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Uw wachtwoord vervalt morgen.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Uw wachtwoord vervalt vandaag.\n"
@@ -72,41 +72,31 @@ msgstr "Kan tty %s niet veranderen"
 msgid "Environment overflow\n"
 msgstr "Omgeving wordt te groot\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "U mag $%s niet veranderen\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
-"%d %s sinds u de laatste keer aangemeld heeft. De laatste %s was op %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "mislukkingen"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "mislukking"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d mislukte poging sinds u de laatste keer aangemeld heeft.\n"
+"Deze mislukte poging %s was op %s.\n"
+msgstr[1] ""
+"%d mislukte pogingen sinds u de laatste keer aangemeld heeft.\n"
+"De laatste mislukte poging %s was op %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Teveel aanmeldingen.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Wachtwoord ontsleutelt de geheime sleutel voor %s niet.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Kon de geheime sleutel van %s niet instellen: is de keyserv-daemon actief?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "U heeft nieuwe e-mails ontvangen"
@@ -119,7 +109,7 @@ msgstr "Geen e-mails"
 msgid "You have mail."
 msgstr "U heeft e-mail."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Slecht wachtwoord: %s.  "
@@ -134,20 +124,20 @@ msgstr "passwd: pam_start() is mislukt, fout %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: wachtwoord is mes succes aangepast\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Kan niet verspringen naar map '%s'\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Geen thuismap, er wordt aangemeld met HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Kan %s niet uitvoeren"
@@ -162,36 +152,32 @@ msgstr "Ongeldige hoofdmap '%s'\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kan de hoofdmap niet veranderen naar '%s'\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) is mislukt\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Kon geen ruimte toewijzen voor de configuratie-informatie.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "configuratiefout - onbekend item '%s' (waarschuw een systeembeheerder)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Wachtwoord: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Wachtwoord van %s:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo aan) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -200,157 +186,150 @@ msgstr ""
 "Gebruik: chage [-l] [-m min_dagen] [-M max_dagen] [-W waarschuwing]\n"
 "               [-I niet actief] [-E vervalt] [-d laatste_dag] gebruiker\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 "U dient de nieuwe waarde in te voeren, druk 'enter' voor de standaardwaarde\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimumleeftijd voor wachtwoord"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maximumleeftijd voor wachtwoord"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Laatste wachtwoordverandering (JJJJ-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Waarschuwing voor wachtwoordverval"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Wachtwoord niet actief"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Vervaldatum van account (JJJJ-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Laatste wachtwoord-verandering\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "nooit\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Wachtwoord vervalt\t\t\t\t\t:"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Wachtwoord niet actief\t\t\t\t\t:"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Account vervalt\t\t\t\t\t\t:"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Minimaal aantal dagen tussen wachtwoord-wijzigingen\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Maximale aantal dagen tussen wachtwoordwijzigingen\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 "Aantal dagen voor gewaarschuwd wordt dat het wachtwoord dreigt te vervallen"
 "\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: gebruik 'l' niet samen met andere vlaggen\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: toegang geweigerd.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM-authenticatie is mislukt\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: kan wachtwoordbestand niet openen\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: onbekende gebruiker %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: kan schaduw-wachtwoordenbestand niet vergrendelen"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: kan schaduw-wachtwoordenbestand niet openen"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Verouderingsinformatie voor %s wordt aangepast\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: fout bij het aanpassen van de velden\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: kan wachtwoordbestand niet bijwerken\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: kan schaduwwachtwoordbestand niet bijwerken\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Fout bij het bijwerken van de DBM-wachtwoordingang.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: kan het schaduwwachtwoordbestand niet herschrijven\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: kan het wachtwoordbestand niet herschrijven\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM-chauthtok is mislukt\n"
@@ -370,119 +349,124 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "Gebruik: %s [-f volledige_naam] [-r kamer_nr] [-w tel_werk] [-h tel_thuis]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Volledig naam"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tVolledige naam: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Kamernummer"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefoon werk"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefoon thuis"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Varia"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kan uw gebruikersnaam niet bepalen.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: kan gebruiker '%s' niet veranderen op NIS-client.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: '%s' is the NIS-master voor deze client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: toegang geweigerd.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "De gebruikersinformatie van %s wordt veranderd\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: ongeldige naam: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: ongeldig kamernummer '%s'\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: '%s' voor 'telefoon werk' is ongeldig\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: '%s' voor 'telefoon thuis' is ongeldig\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: '%s' bevat illegale karakters\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: velden zijn te lang\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Kan ID niet veranderen naar root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "Kan het wachtwoordbestand niet vergrendelen; u kunt best later nog eens "
 "proberen.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Kan het wachtwoordbestand niet openen.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s is niet gevonden in /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Fout tijdens het bijwerken van de wachtwoordingang.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Kan de aanpassingen aan het wachtwoordbestand niet vastleggen.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Kan het wachtwoordbestand niet ontgrendelen.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -506,48 +490,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: kan wachtwoordbestand niet vergrendelen\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: kan het 'schadow'-bestand niet vergrendelen\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: kan het schaduwbestand niet openen\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: op regel %d: regel is te lang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: regel %d: nieuw wachtwoord ontbreekt\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: regel %d: onbekende gebruiker %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: regel %d: kan wachtwoordingang niet bijwerken\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: fouten gedetecteerd, aanpassingen genegeerd\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: fout tijdens bijwerken schaduwbestand\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: fout tijdens bijwerken van het wachtwoordbestand\n"
@@ -557,26 +541,26 @@ msgstr "%s: fout tijdens bijwerken van het wachtwoordbestand\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Gebruik: %s [-s shell] [naam]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Aanmeldshell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "U mag de shell voor %s niet aanpassen.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "De aanmeldshell voor %s wordt aangepast\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: ongeldige ingang: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s is geen geldige shell.\n"
@@ -586,12 +570,12 @@ msgstr "%s is geen geldige shell.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Gebruik: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: WAARSCHUWING! Dient set-UID root ingesteld te zijn!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: onbekende gebruiker\n"
@@ -605,8 +589,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -619,319 +604,285 @@ msgstr ""
 "  -l, --lock-time SEC\t\tBevries accounts SEC seconden na mislukt aanmelden\n"
 "  -m, --maximum MAX\t\tstel maximaal aantal mislukte aanmeldingen in op MAX\n"
 "  -r, --reset\t\t\therbegin de tellers voor mislukte aanmeldingen\n"
-"  -u, --user LOGIN\t\tgeef faillog-record weer en onderhoud mislukking-"
+"  -t, --time AANTAL\t\t\tgeef alle faillog records van de laatste AANTAL "
+"dagen weer\n"
+"   -u, --user LOGIN\t\tgeef faillog-record weer en onderhoud mislukking-"
 "tellers\n"
 "\t\t\t\ten limieten (indien de -r, -m or -l opties gebruikt worden), maar "
 "enkel\n"
 "\t\t\t\tvoor gebruiker LOGIN\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Gebruikersnaam Mislukkingen Maximum Laatste\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s op %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Gebruiker Missingen Maximum Laatste          Op\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds over]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds slot]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Onbekende gebruiker %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Gebruik: %s [-r|-R] groep\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "         %s [-a gebruiker] groep\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "         %s [-d gebruiker] groep\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "         %s [-A gebruiker,...] [-M gebruiker,...] groep\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "         %s [-M gebruiker,...] groep\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: schaduw groepwachtwoorden zijn vereist voor -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Wie bent u?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "onbekende groep: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Gebruiker %s wordt toegevoegd aan groep %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Gebruiker %s wordt verwijderd uit groep %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: onbekende gebruiker %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Is geen tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Het wachtwoord voor groep %s wordt veranderd\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nieuw wachtwoord:"
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Nieuw wachtwoord bevestigen:"
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Wachtwoorden komen niet overeen, probeer het nog eens"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: U kunt het later nog eens proberen\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: kan geen vergrendeling verkrijgen\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: kan geen schaduwvergrendeling verkrijgen\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: kan bestand niet openen\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: kan ingang niet bijwerken\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: kan schaduwingang niet bijwerken\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: kan bestand niet herschrijven\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: kan schaduwbestand niet herschrijven\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: kan bestand niet ontgrendelen\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: kan DBM-bestanden niet bijwerken\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: kan DBM-schaduwbestanden niet bijwerken\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Gebruik: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: fout tijdens toevoegen nieuwe groepingang\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: kan geen nieuwe dbm-groepingang toevoegen\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: naam %s is niet uniek\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u is niet uniek\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: kan geen unieke gid verkrijgen\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s is geen geldige groepsnaam\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: ongeldige groep %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O vereist NAAM=WAARDE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: kan groepbestand niet herschrijven\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet herschrijven\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: kan groepbestand niet vergrendelen\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: kan groepbestand niet openen\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet vergrendelen\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet openen\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: groep %s bestaat reeds\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Gebruik: groupdel groep\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: fout bij het verwijderen van de groepingang\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: fout tijdens het verwijderen van de dbm-groepingang\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: fout tijdens het verwijderen van de schaduwgroepingang\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: fout tijdens het verwijderen van de dbm-schaduwgroepingang\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: kan de primaire groep van een gebruiker niet verwijderen.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: groep %s bestaan niet\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: groep %s is een NIS-groep\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s is de NIS-master\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Gebruik: groupmod [-g gid [-o]] [-n naam] groep\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s is niet gevonden in /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: kan geen dbm-schaduwgroepingang toevoegen\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u is geen unieke gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s is geen unieke naam\n"
@@ -941,110 +892,105 @@ msgstr "%s: %s is geen unieke naam\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Gebruik: %s [-r] [-s] [groep [gshaduw]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Gebruik: %s [-r] [-s] [groep]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nee"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s en -r zijn niet compatibel\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: kan bestand %s niet vergrendelen\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: kan bestand %s niet openen\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "ongeldige ingang in het groepbestand\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "regel '%s' verwijderen?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "dubbele groepsingang\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "ongeldige groepsnaam '%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "groep %s: geen gebruiker %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "lid '%s' verwijderen?"
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "ongeldige ingang in het schaduwgroepbestand\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "dubbele schaduwgroepingang\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "geen overeenkomende groepbestandingang\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "schaduwgroep %s: geen administratieve gebruiker %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "administratieve gebruiker '%s' verwijderen?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "schaduwgroep %s: geen gebruiker %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: kan bestand %s niet bijwerken\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: de bestanden zijn bijgewerkt; voer mkpasswd uit\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: de bestanden zijn bijgewerkt\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: geen aanpassingen\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: de bestanden zijn bijgewerkt\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1060,37 +1006,37 @@ msgstr "%s: kan groepbestand niet openen\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet openen\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet openen\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: kan schaduwgroep %s niet verwijderen\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: kan schaduwingang voor %s niet bijwerken\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: kan ingang voor groep %s niet bijwerken\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet bijwerken\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: kan groepbestand niet bijwerken\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet verwijderen\n"
@@ -1110,13 +1056,13 @@ msgstr "Gebruik: id\n"
 msgid " groups="
 msgstr " groepen="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1127,41 +1073,41 @@ msgstr ""
 "  -h, --help\t\ttoon dit bericht en sluit af\n"
 "  -t, --time DAGEN\tprint enkel lastlog-records van de laatste DAGEN dagen\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Gebruikersnaam  Poort    Vanaf            Laatste\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Gebruikersnaam         Poort    Laatste\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Heeft zich nog nooit aangemeld**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Gebruik: %s [-p] [naam]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "         %s [-p] [-h computer] [-f naam]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "         %s [-p] -r computer\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Ongeldig aanmeldtijdstip\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1170,7 +1116,7 @@ msgstr ""
 "\n"
 "Systeem gesloten wegens routineonderhoud\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1179,7 +1125,7 @@ msgstr ""
 "\n"
 "[Verbinding verbreken omzeild -- aanmelden van root is toegelaten.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1188,17 +1134,17 @@ msgstr ""
 "\n"
 "Aanmelding is na %d seconden verlopen.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " om `%.100s' vanaf `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " om `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1207,38 +1153,29 @@ msgstr ""
 "\n"
 "%s gebruikersnaam: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "gebruikersnaam"
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Gebruikersnaam onjuist"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Waarschuwing: aanmelden gereactiveerd na tijdelijke buitensluiting.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Laatst aangemeld: %s om %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Laatst aangemeld: %.19s om %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " vanaf %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "rad_login wordt opgestart\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1279,17 +1216,17 @@ msgstr "%s: fout tijdens toevoegen record voor '%s'\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "%d ingangen toegevoegd, langste was %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Gebruik: %s [-vf] [-p|g|sp|sg] bestand\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Gebruik: %s [-vf] [-p|g|sp] bestand\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Gebruik: %s [-vf] [-p|g] bestand\n"
@@ -1309,16 +1246,16 @@ msgstr "Gebruik: sg groep [[-c] commando]\n"
 msgid "unknown uid: %u\n"
 msgstr "onbekende uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "onbekende gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Sorry.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "teveel groepen\n"
@@ -1328,91 +1265,91 @@ msgstr "teveel groepen\n"
 msgid "Usage: %s [input]\n"
 msgstr "Gebruik: %s [invoer]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: kan /etc/passwd niet vergrendelen.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: kan bestanden niet vergrendelen, probeer dit later nog eens\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: kan bestanden niet openen\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: regel %d: ongeldige regel\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: regel %d: kan geen GID aanmaken\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: regel %d: kan geen UID aanmaken\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: regel %d: kan gebruiker %s niet vinden\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: regel %d: kan wachtwoord niet bijwerken\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: regel %d: mkdir is mislukt\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: regel %d: chown is mislukt\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: regel %d: kan ingang niet bijwerken\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: fout tijdens bijwerken bestanden\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Gebruik: %s [-f|-s] [naam]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "         %s [-x max] [-n min] [-w waarschuwing] [-i inact] naam\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "         %s {-l|-u|-d|-S|-e} naam\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Oud wachtwoord: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Onjuist wachtwoord voor '%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1422,16 +1359,16 @@ msgstr ""
 "Dit dient te bestaan uit een combinatie van grote letters, kleine letters en "
 "cijfers.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nieuw wachtwoord:"
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Probeer het nog eens.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1441,52 +1378,52 @@ msgstr ""
 "Waarschuwing: zwak wachtwoord (voer het nogmaals in om het toch te "
 "gebruiken).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Ze komen niet overeen; probeer het nog eens.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Het wachtwoord voor %s kan niet veranderd worden.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Sorry, het wachtwoord voor %s kan nog niet veranderd worden.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: geen geheugen over\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kan %s niet uitvoeren"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: opslagplaats %s wordt niet ondersteund\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "U mag het wachtwoord van %s niet aanpassen.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: U mag het wachtwoord van %s niet aanpassen.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Wachtwoord van %s wordt veranderd\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Het wachtwoord voor %s is niet veranderd.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Wachtwoord veranderd\n"
@@ -1501,49 +1438,49 @@ msgstr "Gebruik: %s [-q] [-r] [-s] [wachtwoord [shaduw]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Gebruik: %s [-q] [-r] [-s] [wachtwoord]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "ongeldige ingang in het wachtwoordbestand\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "dubbele wachtwoordingang\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "ongeldige gebruikersnaam '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "gebruiker %s: geen groep %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "gebruiker %s: map %s bestaat niet\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "gebruiker %s: programma %s bestaat niet\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "ongeldige ingang in het schaduwwachtwoordbestand\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "dubbele schaduwwachtwoordingang\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "geen overeenkomende ingang in het wachtwoordbestand\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "gebruiker %s: laatste wachtwoordverandering is in de toekomst\n"
@@ -1563,17 +1500,17 @@ msgstr "%s: kan 'passwd'-bestand niet openen\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: kan schaduwingang voor %s niet verwijderen\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: kan 'passwd'-ingang voor %s niet bijwerken\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: kan schaduwbestand niet bijwerken\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: kan 'passwd'-bestand niet bijwerken\n"
@@ -1583,40 +1520,40 @@ msgstr "%s: kan 'passwd'-bestand niet bijwerken\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: kan ingang voor gebruiker %s niet bijwerken\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: kan schaduwwachtwoordbestand niet verwijderen\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Sorry."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: dient uitgevoerd te worden vanaf een terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: fout %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Onbekende id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "U heeft geen authorisatie om su %s uit te voeren\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(U dient uw eigen wachtwoord in te voeren)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1625,22 +1562,22 @@ msgstr ""
 "%s: %s\n"
 "(Genegeerd)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Geen shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Toegang tot su naar die account is GEWEIGERD.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Wachtwoordauthenticatie is omzeild.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Gelieve uw EIGEN wachtwoord in te voeren voor authenticatie.\n"
@@ -1655,7 +1592,7 @@ msgstr "Geen wachtwoordbestand\n"
 msgid "No password entry for 'root'\n"
 msgstr "Geen wachtwoordingang voor 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1665,237 +1602,217 @@ msgstr ""
 "U dient control-d in te tikken om op de normale manier op te starten,\n"
 "(of het beheerderswachtwoord om de systeemonderhoudsmodus in te gaan):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Systeemonderhoudsmodus wordt opgestart\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: groepdatabase moet herbouwd worden\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: schaduwgroepdatabase moet herbouwd worden\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: ongeldig numeriek argument '%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: onbekende gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: onbekende groep %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: kan geen nieuw standaardwaardenbestand aanmaken\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: kan het nieuwe standaardwaardenbestand niet openen\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: hernoemen: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: groep '%s' is een NIS-groep.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: teveel groepen gespecificeerd (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Gebruik: useradd [-u uid [-o]] [-g groep] [-G groep,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                 [-d thuismap] [-s shell] [-c commentaar] [-m [-k "
 "sjabloon]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                 [-f niet actief] [-e vervalt ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                 [-p wachtwoord] naam\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "         useradd -D [-g groep] [-b basis] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: fout tijdens vergrendelen groepbestand\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: fout tijdens openen groepbestand\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: fout tijdens vergrendelen schaduwgroepbestand\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: fout tijdens openen schaduwgroepbestand\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u is niet uniek\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: kan geen unieke uid verkrijgen\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: ongeldige basismap '%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: ongeldige commentaar '%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: ongeldige thuismap '%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: ongeldige datum '%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: schaduwwachtwoorden zijn vereist voor -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: schaduwwachtwoorden zijn vereist voor -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: ongeldig veld `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: ongeldige shell '%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: ongeldige gebruikersnaam '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: kan wachtwoordbestand niet herschrijven\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: kan schaduwwachtwoordbestand niet herschrijven\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: kan wachtwoordbestand niet vergrendelen\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s; kan wachtwoordbestand niet openen\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: kan schaduwwachtwoordbestand niet vergrendelen\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: kan schaduwwachtwoordbestand niet openen\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: fout tijdens toevoegen nieuwe wachtwoordingang\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: fout tijdens bijwerken dbm-wachtwoordingang\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: fout tijdens toevoegen schaduwwachtwoordingang\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: fout tijdens bijwerken dbm-schaduwwachtwoordingang\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: kan map %s niet aanmaken\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Er bestaat geen groep met de naam 'mail', bijgevolg wordt de mailspool "
 "aangemaakt met modus 0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Kan geen mailspool aanmaken voor gebruiker %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: gebruiker %s bestaat\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1903,209 +1820,174 @@ msgstr ""
 "%s: groep %s bestaat - om deze gebruiker aan die groep toe te voegen dient u "
 "-g te gebruiken.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: waarschuwing: CREATE_HOME is niet ondersteund, u dient in plaats hiervan "
 "-m te gebruiken.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Gebruik: %s [-r] naam\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ":%s: fout tijdens bijwerken groepingang\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: kan dbm-groepingang niet bijwerken\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: kan dbm-groepingang niet verwijderen\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: kan groepbestand niet openen\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: kan schaduwgroepbestand niet openen\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: fout tijdens verwijderen wachtwoordingang\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: fout tijdens verwijderen schaduwwachtwoordingang\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: fout tijdens verwijderen dbm-wachtwoordingang\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: fout tijdens verwijderen dbm-schaduwwachtwoordingang\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: gebruiker %s is momenteel niet aangemeld\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s is niet van %s, wordt niet verwijderd\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: waarschuwing: kan niet verwijderen "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: gebruiker %s bestaat niet\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: gebruiker %s is een NIS-gebruiker\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: map %s wordt niet verwijderd (zou thuismap van gebruiker %s "
 "verwijderen)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: fout tijdens verwijderen van map %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Gebruik: %s\t[-u uid [-o]] [-g groep] [-G groep,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d thuismap [-m]] [-s shell] [-c commentaar] [-l nieuwe_naam]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactierf] [-e vervalt] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p wachtwoord] [-L|-U] naam\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: geheugen is op in update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: geheugen is op in update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: geen vlaggen gegeven\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: schaduwwachtwoorden zijn vereist voor -e en -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu is niet uniek\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: fout tijdens aanpassen wachtwoordingang\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: fout tijdens verwijderen wachtwoordingang\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: fout tijdens toevoegen dbm-wachwoordingang\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: fout tijdens verwijderen dbm-wachtwoordingang\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: fout tijdens verwijderen schaduwwachtwoordingang\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: fout tijdens verwijderen dbm-schaduwwachtwoordingang\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: map %s bestaat\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: kan %s niet aanmaken\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: kan chown %s niet uitvoeren\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: kan map %s niet hernoemen naar %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: waarschuwing: %s is niet van %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "aanpassen van de eigenaar van de e-mailbox is mislukt"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "hernoemen van de e-mailbox is mislukt"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2114,20 +1996,20 @@ msgstr ""
 "\n"
 "%s: %s is onveranderd\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Kon bestand niet vergrendelen"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Kon geen reservekopie maken"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: kan %s niet herstellen: %s (uw aanpassingen zijn in %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 2eee6143cc1e46597bb698c30311c9cb0f1c4755..6bf2fd0943cb90df211e464507f9f1cb80b8e595 100644 (file)
Binary files a/po/nn.gmo and b/po/nn.gmo differ
index 321ebbd2fc49c38cf5dae0812f913d30d61e32f7..e9ae002636569ba4deb374337eb889e8bbec9b2e 100644 (file)
--- a/po/nn.po
+++ b/po/nn.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-06-03 21:41+0200\n"
 "Last-Translator: Håvard Korsvoll <korsvoll@skulelinux.no>\n"
 "Language-Team: Norwegian (Nynorsk) <i18n-nn@lister.ping.uio.no>\n"
@@ -14,14 +14,14 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.3.1\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Åtvaring: ukjent gruppe %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Åtvaring: for mange grupper\n"
@@ -49,17 +49,17 @@ msgstr "  Ta kontakt med systemadministrator.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Lag eit nytt passord.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Passordet ditt vil utgå om %ld dagar.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Passordet ditt vil utgå i morgon.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Passordet ditt vil utgå i dag.\n"
@@ -74,39 +74,27 @@ msgstr "Klarer ikkje skifta tty %s"
 msgid "Environment overflow\n"
 msgstr "Miljø overflyt\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Du klarer ikkje endra $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s sidan førre innlogging. Førre var %s på %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "mislukka forsøk"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "mislukka forsøk"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s sidan førre innlogging. Førre var %s på %s.\n"
+msgstr[1] "%d %s sidan førre innlogging. Førre var %s på %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "For mange innloggingar.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Passordet dekrypterer ikkje hemmeleg nøkkel for %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Klarte ikkje setja %s sin hemmelege nøkkel: køyrer keyserv-nissen?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Du har ny e-post."
@@ -119,7 +107,7 @@ msgstr "Ingen e-post."
 msgid "You have mail."
 msgstr "Du har e-post."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Feil passord: %s.  "
@@ -134,20 +122,20 @@ msgstr "passwd: pam_start() feila, feil %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Klarer ikkje cd til «%s»\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Inga mappe, loggar inn med HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Klarer ikkje køyra %s"
@@ -162,35 +150,31 @@ msgstr "Ugyldig rotmappe «%s»\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Klarer ikkje endra rotmappe til «%s»\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) feila\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Klarte ikkje finna plass for oppsettsinformasjon.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "oppsettsfeil - ukjent element «%s» (gje melding til administrator)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Passord: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s sitt passord: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Ekko på) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -199,154 +183,147 @@ msgstr ""
 "Bruk: chage [-l] [-m min_dagar] [-M maks_dagar] [-W åtvare]\n"
 "            [-I inaktiv] [-E utgår] [-d siste_dag] brukar\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Skriv inn den nye verdien eller trykk Enter for standard\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimum alder på passord"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maksimum alder på passord"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Førre passordendring (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Åtvaring for utgått passord"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Passord inaktivt"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Dato for når kontoen utgår (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Førre passordendring (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Aldri\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Passord utgår:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Passord inaktiv:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Konto utgår:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: ta ikkje med «l» med andre flagg\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: nekta tilgang\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM-autentisering feila\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: klarer ikkje opna passordfil\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: ukjend brukar %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: klarer ikkje låsa skuggepassordfila"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: klarer ikkje opna skuggepassordfila"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Endrar aldringsformasjonen for %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: feil ved endring av felt\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: klarer ikkje oppdatere passordfil\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: klarer ikkje oppdatere skuggepassordfil\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Feil ved oppdatering av DBM passordoppføring.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: klarer ikkje skriva ny skuggepassordfil\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: klarer ikkje skriva ny passordfil\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok feila\n"
@@ -365,117 +342,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Bruk: %s [-f fullt_namn] [-r romnr] [-w tlf_arb] [-h tlf_heime]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Fullt namn"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tFullt namn: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Romnummer"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefon, arbeid"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefon, heime"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Anna"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Klarer ikkje avgjere brukarnamnet ditt.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: klarer ikkje endra brukar «%s» på NIS-klient.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: «%s» er NIS-hovud for denne klienten.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: nekta tilgang\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Endrar brukarinformasjon for %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: ugyldig namn: «%s»\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: ugyldig romnummer: «%s»\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: ugyldig telefonnummer, arbeid: «%s»\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: ugyldig telefonnummer, heime: «%s»\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: «%s» inneheld ulovlege teikn\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: felta er for lange\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Klarer ikkje endra ID til root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Klarer ikkje låsa passordfila, prøv igjen seinare.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Klarer ikkje opna passordfila.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s ikkje funne i /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Feil ved oppdatering av passordet.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Klarer ikkje utføra endringar i passordfila.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Klarer ikkje låsa opp passordfila.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -492,48 +474,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: klarer ikkje låsa passordfil\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: klarer ikkje låsa skuggepassordfila\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: klarer ikkje opna skuggepassordfila\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linje %d: linja er for lang\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linje %d: manglar nytt passord\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linje %d: ukjent brukar %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linje %d: klarer ikkje oppdatere passordet\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: feil funne, endringar er ikkje utført\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: feil ved oppdatering av skuggepassordfila\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: feil ved oppdatering av passordfila\n"
@@ -543,26 +525,26 @@ msgstr "%s: feil ved oppdatering av passordfila\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Bruk: %s [-s skal] [namn]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Innloggingskal"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Du treng ikkje endra skal for %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Endra innloggingskal for %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Ugyldig inntasting: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s er eit ugyldig skal.\n"
@@ -572,12 +554,12 @@ msgstr "%s er eit ugyldig skal.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Bruk: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: ÅTVARING! Må vera set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: ukjent brukar\n"
@@ -591,320 +573,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Brukarnamn Feiltak   Maksimum Siste\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s på %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds igjen]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lås]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Ukjent brukar: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Bruk: %s [-r|-R] gruppe\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "      %s [-a brukar] gruppe\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "      %s [-d brukar] gruppe\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "      %s [-A brukar,...] [-M brukar,...] gruppe\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "      %s [-M brukar,...] gruppe\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: skuggepassord for gruppe krevst for -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Kven er du?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "ukjent gruppe: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Legg brukaren %s til gruppa %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Fjernar brukaren %s frå gruppa %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: ukjent medlem %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Ikkje ein tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Endrar passordet for gruppa %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nytt passord: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Gjenta det nye passordet: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Passorda er ikkje like, prøv igjen"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Prøv igjen seinare\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: klarer ikkje få lås\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: klarer ikkje få lås på skuggefil\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: klarer ikkje opna fil\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: klarer ikkje oppdatere oppføring\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: klarer ikkje oppdatere skuggeoppføring\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: klarer ikkje skriva ny fila\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: klarer ikkje skriva ny skuggefil\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: klarer ikkje låsa opp fil\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: klarer ikkje oppdatere DBM-filer\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: klarer ikkje oppdatere DBM-skuggefiler\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Bruk: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: feil ved oppretting av ny gruppeoppføring\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: klarer ikkje leggja til ny oppføring for dbm-gruppe\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: namn %s er ikkje unikt\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u er ikkje unikt\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: klarer ikkje få unikt gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s er ikkje eit gyldig gruppenamn\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: ugyldig gruppe %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O krev NAME=VERDI\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: klarer ikkje skriva ny gruppefil\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: klarer ikkje skriva ny skuggegruppefil\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: klarer ikkje låsa gruppefil\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: klarer ikkje opna gruppefil\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: klarer ikkje låsa skuggegruppefil\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: klarer ikkje opna skuggegruppefil\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: gruppa %s finst allereie\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Bruk: goupdel gruppe\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: feil ved fjerning av gruppeoppføring\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: feil ved fjerning av dbm-oppføring for gruppe\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: feil ved fjerning av oppføring for skuggegruppe\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: feil ved fjerning av dbm-oppføring for skuggegruppe\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: klarer ikkje fjerna primærgruppa til brukaren.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: gruppe %s eksisterer ikkje\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: gruppe %s er ei NIS-gruppe\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s er NIS-hovudet\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Bruk: groupmod [-g gid [-o]] [-n namn] gruppe\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s ikkje funne i /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: klarer ikkje leggja til ny oppføring for dbm-skuggegruppe\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u er ikkje ein unik gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s er ikkje eit unikt namn\n"
@@ -914,110 +861,105 @@ msgstr "%s: %s er ikkje eit unikt namn\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Bruk: %s [-r] [-s] [gruppe [gskugge]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Bruk: %s [-r] [-s] [gruppe]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nei"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s og -r er inkompatible\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: klarer ikkje låse fila %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: klarer ikkje opna fila %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "ugyldig oppføring for gruppefil\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "slett linja «%s»? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "duplisert gruppeoppføring\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "ugyldig gruppenamn «%s»\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "gruppe %s: ingen brukar %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "slett medlem «%s»?"
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "ugyldig oppføring av skuggegruppefil\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "duplisert oppføring for skuggegruppe\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "ingen passande oppføring for gruppefil\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "skuggegruppe %s: ingen administratorbrukar %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "slett administratormedlem «%s»?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "skuggegruppe %s: ingen brukar %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: klarer ikkje oppdatere fila %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: filene er oppdaterte; køyr mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: filene er oppdaterte\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: ingen endringar\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: filene er oppdaterte\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1033,37 +975,37 @@ msgstr "%s: klarer ikkje opna gruppefil\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: klarer ikkje låsa skuggegruppefil\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: klarer ikkje opna skuggegruppefil\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: klarer ikkje fjerna skuggegruppe %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: klarer ikkje oppdatere skuggeoppføring for %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: klarer ikkje oppdatere oppføring for gruppa %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: klarer ikkje oppdatere skuggegruppefil\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: klarer ikkje oppdatere gruppefil\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: klan ikkje slette skuggegruppefil\n"
@@ -1083,52 +1025,52 @@ msgstr "Bruk: id\n"
 msgid " groups="
 msgstr " grupper="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Brukarnamn       Port     Frå              Siste \n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Brukarnamn              Port     Siste \n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Aldri vore innlogga**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Bruk: %s [-p] [namn]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "      %s [-p] [-h vert] [-f namn]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "      %s [-p] -r vert\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Ugyldig innloggingstid\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1137,7 +1079,7 @@ msgstr ""
 "\n"
 "Systemet stengt for rutinemessig vedlikehald\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1146,7 +1088,7 @@ msgstr ""
 "\n"
 "[Fråkopling omgått -- innlogging av root er tillete.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1155,17 +1097,17 @@ msgstr ""
 "\n"
 "Innlogging gjekk ut på tid etter %d sekund.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " på «%.100s» frå «%.200s»"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " på «%.100s»"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1174,39 +1116,30 @@ msgstr ""
 "\n"
 "%s brukarnamn: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "brukarnamn: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Feil innlogging"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 "Åtvaring: innlogging gjort mogeleg igjen etter mellombels utestenging.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Førre innlogging: %s på %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Førre inlogging: %.19s på %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " frå %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Startar rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1247,17 +1180,17 @@ msgstr "%s: feil ved innlegging av post for "
 msgid "added %d entries, longest was %d\n"
 msgstr "lagt til %d oppføringar, den lengste var %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Bruk: %s [-vf] [-p|g|sp|sg] fil\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Bruk: %s [-vf] [-p|g|sp] fil\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Bruk: %s [-vf] [-p|g] fil\n"
@@ -1277,16 +1210,16 @@ msgstr "Bruk: sg gruppe [[-c] kommando]\n"
 msgid "unknown uid: %u\n"
 msgstr "ukjent uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "ukjent gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Årsak.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "for mange grupper\n"
@@ -1296,91 +1229,91 @@ msgstr "for mange grupper\n"
 msgid "Usage: %s [input]\n"
 msgstr "Bruk: %s [inndata]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: klarer ikkje låsa /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: klarer ikkje låsa filer, prøv igjen seinare\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: klarer ikkje opna filer\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linje %d: ugyldig linje\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linje %d: klarer ikkje laga GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linje %d: klarer ikkje laga UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linje %d: klarer ikkje finne brukar %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linje %d: klarer ikkje oppdatere passord\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linje %d: mkdir feila\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linje %d: chown feila\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linje %d: kan ikkje oppdatere oppføring\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: feil ved oppdatering av filer\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Bruk: %s [-f|-s] [namn]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "      %s [-x maks] [-n min] [-w åtvar] [-i inaktiv] namn\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "      %s {-l|-u|-d|-S|-e} namn\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Gamalt passord:"
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Feil passord for «%s»\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1389,16 +1322,16 @@ msgstr ""
 "Skriv inn det nye passordet (minimum %d, maksimum %d teikn)\n"
 "Bruk ein kombinasjon av store og små bokstavar og tal.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nytt passord: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Prøv igjen.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1408,52 +1341,52 @@ msgstr ""
 "Åtvaring: Svakt passord (skriv det inn ein gong til for å bruka det "
 "likevel).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Passorda er ikkje like, prøv igjen.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Passordet for %s kan ikkje endrast.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Passordet for %s kan ikkje endrast enno.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: tomt for minne\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kan ikkje køyre %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: arkiv %s er ikkje støtta\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Du treng ikkje endra skal for %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Enrar passord for %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Passordet til %s er ikkje endra.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Passord er endra.\n"
@@ -1468,49 +1401,49 @@ msgstr "Bruk: %s [-q] [-r] [-s] [passord [skugge]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Bruk: %s [-q] [-r] [-s] [passord]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "Ugyldig oppføring i passordfila\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "duplisert oppføring i passordfila\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "ugyldig brukarnamn «%s»\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "brukar %s: inga gruppe %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "brukar %s: mappe %s finst ikkje\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "brukar %s: program %s finst ikkje\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "ugyldig oppføring i skuggepassordfila\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "duplisert oppføring i skuggepassordfila\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "ingen oppføringar i passordfila som passar\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "brukar %s: siste passordendring i framtida\n"
@@ -1530,17 +1463,17 @@ msgstr "%s: klarer ikkje opna passordfil\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: klarer ikkje fjerna oppføring for %s i skuggepassordfila\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: klarer ikkje oppdatere oppføring i passordfila for %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: klarer ikkje oppdatere skuggepassordfil\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: klarer ikkje oppdatere passordfil\n"
@@ -1550,40 +1483,40 @@ msgstr "%s: klarer ikkje oppdatere passordfil\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: klarer ikkje oppdatere oppføring for brukar %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: klarer ikkje sletta skuggepassordfil\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Årsak."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: må køyrast frå ein terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: feil %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Ukjent id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Du er ikkje autorisert til su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Skriv inn ditt eige passord.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1592,22 +1525,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorert)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Ingen skal\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Tilgang til su for den kontoen er AVVIST.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Passordautentisering er forbigått.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Oppgje ditt EIGE passord for autentisering.\n"
@@ -1622,7 +1555,7 @@ msgstr "Inga passordfil\n"
 msgid "No password entry for 'root'\n"
 msgstr "Inga passordoppføring for «root»\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1632,233 +1565,213 @@ msgstr ""
 "Trykk Ctrl-d for å halda fram med normal oppstart,\n"
 "(eller oppgje root-passord for systemvedlikehald):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Startar modus for systemvedlikehald\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: bygg gruppedatabasen på ny\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: bygg skuggegruppedatabasen på ny\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: ugyldig nummerisk argument «%s»\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: ukjent gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: ukjent gruppe %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: klarer ikkje opprette fil for standardverdiar\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: klarer ikkje opna fil for standardverdiar\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: gje nytt namn: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: gruppe «%s» er ei NIS-gruppe.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: for mange grupper spesifisert (maks %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Bruk: useradd [-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "              [-d heim] [-s skal] [-c kommentar] [-m [-k mal]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "              [-f inaktiv] [-e utgår]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "              [-p passord] namn\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "      useradd -D [-g gruppe] [-b startmappe] [-s skal]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: feil ved låsing av gruppefil\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: feil ved opning av gruppefil\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: feil ved låsing av skuggegruppefil\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: feil ved opning av skuggegruppefil\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u er ikkje unik\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: klarer ikkje finne unik uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: ugyldig startmappe «%s»\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: ugyldig kommentar «%s»\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: ugyldig heimemappe «%s»\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: ugyldig dato «%s»\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: skuggepassord krevst for -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: skuggepassord krevst for -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: ugyldig felt «%s»\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: ugyldig skal «%s»\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: ugyldig brukarnamn «%s»\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: klarer ikkje skriva ny passordfil\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: klarer ikkje skriva ny skuggepassordfil\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: klarer ikkje låsa passordfil\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: klarer ikkje opna passordfil\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: klarer ikkje låsa skuggepassordfil\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: klarer ikkje opna skuggepassordfil\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: feil når passordoppføring blei lagt til\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: feil ved oppdatering av dbm-oppføring av passord\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: feil når oppføring av skuggepassord blei lag til\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: feil ved oppdatering av dbm-oppføring av skuggepassord\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: kan ikkje oppretta mappa %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: klarer ikkje oppdatere oppføring for brukar %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: brukar %s finst\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1866,206 +1779,171 @@ msgstr ""
 "%s: gruppa %s finst - viss du ønskjer å leggja brukaren til denne gruppa, "
 "bruk -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: åtvaring: CREATE_HOME ikkje støtta, bruk -m istaden.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Bruk: %s [-r] namn\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: feil ved oppdatering av gruppeoppføring\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: klarer ikkje oppdatere dbm-oppføring for gruppe\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: klarer ikkje fjerna dbm-oppføring for gruppe\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: klarer ikkje opna gruppefila\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: klarer ikkje opna skuggepassordfila\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: feil ved sletting av passordoppføring\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: feil ved sletting av skuggepassordoppføring\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: feil ved sletting av passord dbm-oppføring\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: feil ved sletting av dbm-oppføring av skuggepassord\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: brukaren %s er pålogga\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s ikkje eigd av %s, ikkje fjerna\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: åtvaring: kan ikkje fjerna "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: brukar %s finst ikkje\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: brukar %s er ikkje ein NIS brukar\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: fjernar ikkje mappa %s (det ville fjerna heimemappa til brukar %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: feil ved fjerning av mappe %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Bruk: %s\t[-u uid [-o]] [-g gruppe] [-G gruppe,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d heim [-m]] [-s skal] [-c kommentar] [-l nytt_namn]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inaktiv] [-e utgår] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passord] [-L|-U] namn\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: slapp opp for minne i update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: slapp opp for minne i update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: ingen flagg oppgjeve\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: skuggepassord krevst for -e og -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu er ikkje unik\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: feil ved endring av passordoppføring\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: feil ved sletting av passordoppføring\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: feil ved innlegging av  dbm-oppføring for passord\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: feil ved fjerning av dbm-oppføring for passord\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: feil ved sletting av oppføring for skuggepassord\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: feil ved sletting av dbm-oppføring for skuggepassord\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: mappa %s finst\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: kan ikkje oppretta %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: kan ikkje chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: klarte ikkje endra namn på mappa %s til %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: åtvaring: %s er ikkje eigd av %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "klarte ikke å endra eigar av mailbox"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "klarte ikkje endra namn på mailbox"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2074,20 +1952,20 @@ msgstr ""
 "\n"
 "%s: %s er ikkje endra\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Klarte ikkje låsa fil"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Klarte ikkje laga reservekopi"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: klarer ikkje gjenoppretta %s: %s (endringane dine er i %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 658da280843bd63adad8126f925383a548e10b06..ddc893a5849141d278c0220d77414a09abb445a5 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index e34503b9548a6f427f6cf4ddcf25a0497c3f8682..80744fb0a365de47f0eb3c066db508dff6b2dbdd 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,22 +5,24 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow-4.0.7\n"
+"Project-Id-Version: shadow-4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-02-29 00:27+01:00\n"
-"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+"Last-Translator: Tomasz Kłoczko <kloczek@pld.org.pl>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Ostrzeżenie: nieznana grupa %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Ostrzeżenie: zbyt wiele grup\n"
@@ -48,17 +50,17 @@ msgstr "  Skontaktuj się z administratorem systemu.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Wybierz nowe hasło.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Twoje hasło straci ważność w ciągu %ld dni.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Jutro twoje hasło straci ważność.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Dziś twoje hasło straci ważność.\n"
@@ -73,41 +75,34 @@ msgstr "Nie można zmienić tty %s"
 msgid "Environment overflow\n"
 msgstr "Przepełnienie środowiska\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Nie możesz zmieniać $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
-"%d %s od ostatniego logowania.  Ostatnie logowanie: dnia %s na terminalu %"
-"s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "niepowodzenia"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "niepowodzenie"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d nieudana próba logowania od ostatniego logowania.\n"
+"Ostatnie logowanie: dnia %s na terminalu %s.\n"
+msgstr[1] ""
+"%d nieudane próby logowania od ostatniego logowania.\n"
+"Ostatnie logowanie: dnia %s na terminalu %s.\n"
+msgstr[2] ""
+"%d nieudanych prób logowania od ostatniego logowania.\n"
+"Ostatnie logowanie: dnia %s na terminalu %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Zbyt wiele otwartych sesji.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Tym hasłem nie można odszyfrować tajnego klucza dla %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Nie można ustawić tajnego klucza dla %s: czy serwer kluczy działa?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Masz nową pocztę."
@@ -120,7 +115,7 @@ msgstr "Nie masz poczty."
 msgid "You have mail."
 msgstr "Masz pocztę."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Złe hasło: %s.  "
@@ -135,20 +130,20 @@ msgstr "passwd: pam_start() nie powiodło się, błąd %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: hasło zostało zmienione\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Nie można zmienić katalogu na \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Brak katalogu, loguję z HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Nie można uruchomić %s"
@@ -163,36 +158,32 @@ msgstr "Nieprawidłowy katalog główny \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Nie można zmienić głównego katalogu na \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) nie powiodło się\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Nie można przydzielić miejsca dla informacji o konfiguracji.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "błąd w konfiguracji - nieznana pozycja '%s' (powiadom administratora)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Hasło: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Hasło użytkownika %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo on) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -202,154 +193,147 @@ msgstr ""
 "              [-I nieaktywne] [-E utrata_ważności]\n"
 "              [-d ostatni_dzień] użytkownik\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Wpisz nową wartość lub wciśnij ENTER by przyjąć wartość domyślną\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimalny wiek hasła"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maksymalny wiek hasła"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Ostatnia zmiana hasła (RRRR-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Ostrzeżenie o utracie ważności hasła"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Hasło nieaktywne"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data utraty ważności konta (RRRR-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Ostatnia zmiana hasła\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "nigdy\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Hasło traci ważność\t\t\t\t\t: "
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Hasło nieaktywne\t\t\t\t\t: "
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Konto traci ważność\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Minimalna ilość dni pomiędzy zmianami hasła\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Maksymalna ilość dni pomiędzy zmianami hasła\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Liczba dni ostrzeżenia, zanim ważność hasła upłynie\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: nie łącz \"l\" z innymi flagami\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: odmowa dostępu.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: błąd podczas uwierzytelniania przez PAM\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: nie można otworzyć pliku z hasłami\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: nieznany użytkownik %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Zmieniam informację o użytkowniku %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: błąd podczas zmieniania pól\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: nie można zaktualizować pliku z hasłami\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: nie można zaktualizować pliku z ukrytymi hasłami\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Błąd podczas aktualizacji bazy haseł DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: nie można przepisać pliku z ukrytymi hasłami\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: nie można przepisać pliku z hasłami\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthtok nie powiodło się\n"
@@ -369,117 +353,122 @@ msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 "Użycie: %s [-f imię_nazwisko] [-r nr_pokoju] [-w tel_praca] [-h tel_dom]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Imię i nazwisko"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tImię i nazwisko: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Numer pokoju"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefon do pracy"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefon domowy"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Inne"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Nie można ustalić twojej nazwy użytkownika.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: nie można zmienić użytkownika `%s' na kliencie NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' jest nadrzędnym serwerem NIS dla tego klienta.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Operacja niedozwolona.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Zmieniam informację o użytkowniku %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nieprawidłowa nazwa: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: nieprawidłowy numer pokoju: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: nieprawidłowy numer telefonu do pracy: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: nieprawidłowy numer telefonu domowego: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" zawiera nieprawidłowe znaki\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: pola zbyt długie\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Nie można zmienić ID na root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Nie można zablokować pliku z hasłami; spróbuj później.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Nie można otworzyć pliku z hasłami.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: nie znaleziono %s w /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Błąd podczas aktualizacji wpisu do bazy haseł.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Wprowadzenie zmian do pliku passwd jest niemożliwe.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Nie można usunąć blokady z pliku z hasłami.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -504,48 +493,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: nie można zablokować pliku z hasłami\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linia %d: linia zbyt długa\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linia %d: brakuje nowego hasła\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linia %d: nieznany użytkownik %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linia %d: nie można zaktualizować wpisu do bazy haseł\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: wykryto błąd, zignorowano modyfikacje\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: błąd podczas aktualizacji pliku z ukrytymi hasłami\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: błąd podczas aktualizacji pliku z hasłami\n"
@@ -555,26 +544,26 @@ msgstr "%s: błąd podczas aktualizacji pliku z hasłami\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Użycie: %s [-s powłoka] [nazwa]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Powłoka logowania"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Nie możesz zmieniać powłoki dla %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Zmieniam powłokę logowania dla %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Nieprawidłowy wpis: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s jest nieprawidłową powłoką.\n"
@@ -584,12 +573,12 @@ msgstr "%s jest nieprawidłową powłoką.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Użycie: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: OSTRZEŻENIE! Program musi posiadać SUID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: nieznany użytkownik\n"
@@ -603,8 +592,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -618,318 +608,282 @@ msgstr ""
 "logowaniu\n"
 "  -m, --maximum MAX\t\tustaw maksymalną ilość niepoprawnych logowań na MAX\n"
 "  -r, --reset\t\t\twyzeruj licznik niepoprawnych logowań\n"
+"  -t, --time DNI\t\twyświetlaj rekordy nie starsze niż DNI\n"
 "  -u, --user LOGIN\t\twyświetlaj rekordy lub zarządzaj licznikami\n"
 "\t\t\t\ti limitami faillog (w połaczeniu z opcjami -r, -m lub -l) tylko\n"
 "\t\t\t\tdla użytkownika o loginie LOGIN\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Użytkownik    Błędy Maksimum  Ostatnio\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s na %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Login       Nieudane Maks.   Ostanio                  Na\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [pozostało %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [blokada %lds]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Nieznany użytkownik: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Użycie: %s [-r|-R] grupa\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "        %s [-a użytkownik] grupa\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "        %s [-d użytkownik] grupa\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "        %s [-A użytkownik,...] [-M użytkownik,...] grupa\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "        %s [-M użytkownik,...] grupa\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: plik z ukrytymi hasłami grup wymagany dla -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Kim jesteś?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "nieznana grupa: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Dodaję nowego użytkownika %s do grupy %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Usuwam użytkownika %s z grupy %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: nieznany członek %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: To nie tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Zmieniam hasło dla grupy %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nowe hasło: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Wpisz hasło ponownie: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Nie zgadzają się; spróbuj ponownie"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Spróbuj ponownie później\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: nie można zablokować\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: nie można otworzyć pliku\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: nie można zaktualizować wpisu\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: nie można zaktualizować wpisu do pliku z ukrytymi hasłami\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: nie można przepisać pliku\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: nie można przepisać pliku z ukrytymi hasłami\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: nie można usunąć blokady z pliku\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: nie można zaktualizować plików DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: nie można zaktualizować pliku DBM z ukrytymi hasłami\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Użycie: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: błąd podczas dodawania nowej grupy\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: nie można dodać nowego wpisu do bazy dbm grup\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: nazwa %s nie jest niepowtarzalny\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: uid %u nie jest niepowtarzalny\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: nie można uzyskać niepowtarzalnego gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s: nie jest prawidłową nazwą grupy\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: nieprawidłowa grupa %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O wymaga ZMIENNA=WARTOŚĆ\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: nie można przepisać pliku z grupami\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: nie można przepisać pliku z ukrytymi hasłami grup\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: nie można zablokować pliku z grupami\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: nie można otworzyć pliku z grupami\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami grup\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami grup\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grupa %s istnieje\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Użycie: groupdel grupa\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: błąd podczas usuwania grupy\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm o grupie\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: błąd podczas usuwania wpisu z pliku z ukrytymi hasłami grup\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm z pliku z ukrytymi hasłami grup\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: nie można usunąć podstawowej grupy użytkowników.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: grupa %s nie istnieje\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: grupa %s jest grupą NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s jest głównym serwerem NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Użycie: groupmod [-g gid [-o]] [-n nazwa] grupa\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: nie znaleziono %s w /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-"%s: nie można dodać nowego wpisu dbm do pliku z ukrytymi hasłami grup\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u nie jest niepowtarzalnym gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s nie jest niepowtarzalną nazwą\n"
@@ -939,112 +893,107 @@ msgstr "%s: %s nie jest niepowtarzalną nazwą\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Użycie: %s [-r] [-s] [grupa [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Użycie: %s [-r] [-s] [grupa]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nie"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s i -r są niekompatybilne\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: nie można zablokować pliku %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: nie można otworzyć pliku %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "nieprawidłowy wpis do pliku grup\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "usunąć linię `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "powtórzony wpis w pliku grup\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nieprawidłowa nazwa grupy `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupa %s: nie ma użytkownika %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "skasować członka `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "nieprawidłowy wpis w pliku z ukrytymi hasłami grup\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "powtórzony wpis w pliku z ukrytymi hasłami grup\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "brak pasującego wpisu w pliku grup\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr ""
 "grupa %s: użytkownik administracyjny %s z pliku ukrytych haseł grup nie "
 "istnieje\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "usunąć członka administracyjnego `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grupa %s: użytkownik %s z pliku ukrytych haseł grup nie istnieje\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: nie można zaktualizować pliku %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: pliki zostały zaktualizowane; uruchom mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: pliki zostały zaktualizowane\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: bez zmian\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: pliki zostały zaktualizowane\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1060,37 +1009,37 @@ msgstr "%s: nie można otworzyć pliku z grupami\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami grup\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami grup\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: nie można usunąć grupy %s z pliku ukrytych haseł grup\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: nie można zaktualizować wpisu w pliku z ukrytymi hasłami dla %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: nie można zaktualizować wpisu dla grupy %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: nie można zaktualizować pliku z ukrytymi hasłami grup\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: nie można zaktualizować pliku z grupami\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: nie można skasować pliku z ukrytymi hasłami grup\n"
@@ -1110,13 +1059,13 @@ msgstr "Użycie: id\n"
 msgid " groups="
 msgstr " grupy="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1128,41 +1077,41 @@ msgstr ""
 "  -h, --help\t\t\twyświetlenie tego opisu i zakończenie\n"
 "  -t, --time DAYS\twyświetl tylko rekordy lastlog nei starsze niż DAYS dni\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Użytkownik       Port     Z                Ostatnio\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Użytkownik             Port     Ostatnio\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nigdy nie zalogowany**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Użycie: %s [-p] [nazwa]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "        %s [-p] [-h host] [-f nazwa]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "        %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Nieprawidłowy czas logowania\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1171,7 +1120,7 @@ msgstr ""
 "\n"
 "System zamknięty do rutynowej konserwacji.\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1180,7 +1129,7 @@ msgstr ""
 "\n"
 "[Rozłączenie pominięte -- zezwolenie na logowanie się roota.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1189,17 +1138,17 @@ msgstr ""
 "\n"
 "Limit czasu logowania przekroczony po %d sekundach.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " na `%.100s' z `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " na `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1208,38 +1157,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Nieprawidłowe logowanie"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Ostrzeżenie: logowanie ponownie odblokowanie po czasowej blokadzie.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Ostatnie logowanie: %s na %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Ostatnie logowanie: %s na %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " z %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Startuję rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1281,17 +1221,17 @@ msgstr "%s: błąd podczas dodawania rekordu dla %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "dodano %d wpisów, najdłuższy był %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Użycie: %s [-vf] [-p|g|sp|sg] plik\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Użycie: %s [-vf] [-p|g|sp] plik\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Użycie: %s [-vf] [-p|g] plik\n"
@@ -1311,16 +1251,16 @@ msgstr "Użycie: sg grupa [[-c] polecenie]\n"
 msgid "unknown uid: %u\n"
 msgstr "nieznany uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "nieznany gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Wybacz.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "zbyt wiele grup\n"
@@ -1330,91 +1270,91 @@ msgstr "zbyt wiele grup\n"
 msgid "Usage: %s [input]\n"
 msgstr "Użycie: %s [wejście]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: nie można zablokować /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: nie można zablokować plików, spróbuj później\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: nie można otworzyć plików\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linia %d: nieprawidłowa linia\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linia %d: nie można utworzyć GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linia %d: nie można utworzyć UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linia %d: nie można znaleźć użytkownika %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linia %d: nie można zaktualizować pliku z hasłami\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linia %d: mkdir nie powiodło się\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linia %d: chown nie powiodło się\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linia %d: nie można zaktualizować wpisu\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: błąd podczas aktualizowania plików\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Użycie: %s [-f|-s] [nazwa]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "        %s [-x maks] [-n min] [-w ostrz] [-i nieakty] nazwa\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "        %s {-l|-u|-d|-S|-e} nazwa\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Stare hasło: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Nieprawidłowe hasło `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1423,16 +1363,16 @@ msgstr ""
 "Wpisz nowe hasło (minimum %d, maksimum %d znaków)\n"
 "Proszę użyj kombinacji wielkich i małych znaków oraz cyfr.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nowe hasło: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Spróbuj ponownie.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1441,52 +1381,52 @@ msgstr ""
 "\n"
 "Ostrzeżenie: słabe hasło (wpisz je ponowie jeśli jednak chcesz go użyć).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Nie zgadzają się; spróbuj ponownie.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Hasło dla %s nie może być zmienione.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Wybacz, hasło dla %s nie może być jeszcze zmienione.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: brak pamięci\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Nie można wykonać %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: repozytorium %s nie jest obsługiwane\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Nie możesz zmieniać hasła dla %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Nie możesz przeglądać lub zmieniać informacji o haśle dla %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Zmieniam hasło dla %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Hasło dla %s pozostaje niezmienione.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Hasło zmienione.\n"
@@ -1501,49 +1441,49 @@ msgstr "Użycie: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Użycie: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "nieprawidłowy wpis do pliku z hasłami\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "powtórzony wpis w pliku z hasłami\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "nieprawidłowa nazwa użytkownika '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "użytkownik %s: brak grupy %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "użytkownik %s: katalog %s nie istnieje\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "użytkownik %s: program %s nie istnieje\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "nieprawidłowy wpis w pliku z hasłami\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "powtórzony wpis w pliku z ukrytymi hasłami\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "brak pasującego wpisu w pliku z hasłami\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "użytkownik %s: ostatnia zmiana hasła w przyszłości\n"
@@ -1563,17 +1503,17 @@ msgstr "%s: nie można otworzyć pliku z hasłami\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: nie można usunąć wpisu z pliku z ukrytymi hasłami dla %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: nie można zaktualizować wpisu w pliku z hasłami dla %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: nie można zaktualizować pliku z ukrytymi hasłami\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: nie można zaktualizować pliku z hasłami\n"
@@ -1583,40 +1523,40 @@ msgstr "%s: nie można zaktualizować pliku z hasłami\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: nie można zaktualizować wpisu dla użytkownika %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: nie można skasować pliku z ukrytymi hasłami\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Wybacz."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: musisz uruchamiać z terminala\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: błąd %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Nieznany id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Nie masz autoryzacji by używać su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Wpisz swoje własne hasło.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1625,22 +1565,22 @@ msgstr ""
 "%s: %s\n"
 "(Zignorowano)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Brak powłoki\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Dostęp do polecenia su z tego konta ZABRONIONY.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Uwierzytelnianie na podstawie hasła pominięte.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Proszę wpisz swoje WŁASNE hasło jako hasło uwierzytelniające.\n"
@@ -1655,7 +1595,7 @@ msgstr "Brak pliku z hasłami\n"
 msgid "No password entry for 'root'\n"
 msgstr "Brak wpisu do bazy haseł dla 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1665,441 +1605,386 @@ msgstr ""
 "Naciśnij control-d by kontynuować normalny start\n"
 "(lub podaj hasło roota by przejść do trybu konserwacji systemu):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Wchodzę w tryb konserwacji systemu\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: przebuduj bazę grup\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: przebuduj bazę ukrytych haseł grup\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: nieprawidłowy argument numeryczny `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: nieznany gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: nieznana grupa %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: nie można utworzyć nowego pliku z ustawieniami domyślnymi\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: nie można otworzyć nowego pliku z ustawieniami domyślnymi\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: zmiana nazwy: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: grupa `%s' jest grupą NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: podano zbyt wiele grup (maks %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Użycie: useradd [-u uid [-o]] [-g grupa] [-G grupa,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                [-d kat_dom] [-s powłoka] [-c komentarz] [-m [-k wzór]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                [-f nieaktywne] [-e utrata_ważności]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                [-p hasło] nazwa\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "        useradd -D [-g grupa] [-b baza] [-s powłoka]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: błąd podczas blokowania pliku z grupami\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: błąd podczas otwierania pliku z grupami\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: błąd podczas blokowania pliku z ukrytymi hasłami grup\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: błąd podczas otwierania pliku z ukrytymi hasłami grup\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u nie jest niepowtarzalny\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: nie można uzyskać niepowtarzalnego uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: nieprawidłowy katalog bazowy `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: nieprawidłowy komentarz `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: nieprawidłowy katalog domowy `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: nieprawidłowa data `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: ukryte hasła wymagane dla -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: ukryte hasła wymagane dla -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: nieprawidłowe pole `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: nieprawidłowa powłoka `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: nieprawidłowa nazwa użytkownika '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: nie można przepisać pliku z hasłami\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: nie można przepisać pliku z ukrytymi hasłami\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: nie można zablokować pliku z hasłami\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: nie można otworzyć pliku z hasłami\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: nie można zablokować pliku z ukrytymi hasłami\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: błąd podczas dodawania nowego wpisu do pliku z hasłami\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: błąd podczas aktualizacji wpisu dbm w pliku z hasłami\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: błąd podczas dodawania nowego wpisu do pliku z ukrytymi hasłami\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: błąd podczas aktualizacji wpisu dbm w pliku z ukrytymi hasłami\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: nie można utworzyć katalogu %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Nie istnieje grupa \"mail\", tworzenie skrzynki z uprawnieniami 0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Nie można utworzyć skrzynki pocztowej dla użytkownika %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: użytkownik %s istnieje\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 "%s: grupa %s istnieje - aby dodać tego użytkownika do tej grupy, użyj -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: uwaga: CREATE_HOME nie jest obsługiwane, użyj opcji -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Użycie: %s [-r] nazwa\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: błąd podczas aktualizacji wpisu grupy\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: nie można zaktualizować wpisu dbm w pliku z grupami\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: nie można usunąć wpisu dbm z pliku z grupami\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: nie można otworzyć pliku z grupami\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: nie można otworzyć pliku z ukrytymi hasłami grup\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: błąd podczas usuwania wpisu z pliku z hasłami\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: błąd podczas usuwania wpisu z pliku z ukrytymi hasłami\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm z pliku z hasłami\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm z pliku z ukrytymi hasłami\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: użytkownik %s jest aktualnie zalogowany\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: właścicielem %s nie jest %s, nie usuwam\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: ostrzeżenie: nie można usunąć "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: użytkownik %s nie istnieje\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: użytkownik %s jest użytkownikiem NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: nie usuwam katalogu %s (usunęłoby to katalog domowy użytkownika %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: błąd podczas usuwania katalogu %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Użycie: %s\t[-u uid [-o]] [-g grupa] [-G grupa,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d kat_dom [-m]] [-s powłoka] [-c komentarz] [-l nowa_nazwa]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f nieaktywne] [-e utrata_ważności] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p hasło] [-L|-U] nazwa\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: zabrakło pamięci w update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: zabrakło pamięci w update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: nie podano flag\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: ukryte hasła wymagane dla -e i -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu nie jest niepowtarzalny\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: błąd podczas zmiany wpisu w pliku z hasłami\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: błąd podczas usuwania wpisu z pliku z hasłami\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: błąd podczas dodawania wpisu dbm do pliku z hasłami\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm z pliku z hasłami\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: błąd podczas usuwania wpisu z pliku z ukrytymi hasłami\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: błąd podczas usuwania wpisu dbm z pliku z ukrytymi hasłami\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: katalog %s istnieje\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: nie można utworzyć %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: nie można zmienić właściciela %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: nie można zmienić nazwy katalogu z %s na %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: ostrzeżenie: właścicielem %s nie jest %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "zmiana właściciela skrzynki pocztowej nie powiodła się"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "zmiana nazwy skrzynki pocztowej nie powiodła się"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2108,20 +1993,20 @@ msgstr ""
 "\n"
 "%s: %s jest niezmieniony\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Nie można zablokować pliku"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Nie można wykonać kopii zapasowej"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: nie można odzyskać %s: %s (twoje zmiany są w %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 01fa984ac496888b448b7f686cfdfa2d0e0f1f8b..a888523a9ed7e03d66c78c008f48108889323048 100644 (file)
Binary files a/po/pt.gmo and b/po/pt.gmo differ
index 923d45c91a032fa2e8000f990ae51200f1bb0c4b..4f21a3e97647d7dd7bf407fe46eee2869c1a26f8 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -1,25 +1,25 @@
 # Portuguese (Portugal) Translation Project (traduz@debianpt.org)
 # Nuno Sénica <njs@av.it.pt>, 2004
-#
+# 18-04-2005 - Miguel Figueiredo <elmig@debianpt.org> - 5f1u
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow 4.0.7\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2005-01-16 10:28+0000\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-17 22:55+0000\n"
 "Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n!=1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Aviso: grupo desconhecido %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Aviso: demasiados grupos\n"
@@ -47,17 +47,17 @@ msgstr "  Contacte o administrador do sistema.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Escolha uma nova password.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "A sua password vai caducar em %ld dias.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "A sua password vai caducar amanhã.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "A sua password caduca hoje.\n"
@@ -72,40 +72,27 @@ msgstr "Foi impossível mudar o tty %s"
 msgid "Environment overflow\n"
 msgstr "Overflow do ambiente\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Não pode alterar $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s desde o último login. A última vez foi %s em %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "falhas"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "falha"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d falha desde o último login. O último foi %s em %s.\n"
+msgstr[1] "%d falhas desde o último login. O último foi %s em %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Demasiados logins.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "A password não desencripta a chave secreta para %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Não pode definir a chave secreta de %s: está a correr o daemon keyserv?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Tem novo correio."
@@ -118,7 +105,7 @@ msgstr "Não tem correio."
 msgid "You have mail."
 msgstr "Tem correio."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Password inválida: %s.  "
@@ -133,20 +120,20 @@ msgstr "passwd: o pam_start() falhou, erro %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: a password foi actualizada com sucesso\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Não foi possível mudar para a directoria \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Directoria não encontrada, a entrar para HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Não foi possível executar %s"
@@ -161,36 +148,32 @@ msgstr "Directoria de raíz inválida \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Não é possível mudar a directoria de raiz para \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "O malloc(%d) falhou\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Não foi possível alocar o espaço para a informação de configuração.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "erro de configuração - item '%s' desconhecido (notifique o administrador)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Password: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Password de %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo ligado) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -199,155 +182,148 @@ msgstr ""
 "Utilização: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "                  [-I inactive] [-E expire] [-d last_day] utilizador\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Introduza o novo valor, ou pressione ENTER para o valor por defeito\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Idade Mínima da Password"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Idade Máxima da Password"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Última Alteração da Password (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Aviso de Caducidade da Password"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Password Inactiva"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data de Caducidade da Conta (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Última alteração da password\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr "nunca\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "A password caduca em\t\t\t\t\t: "
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Password inactiva\t\t\t\t\t: "
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "A conta caduca em\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr "Número mínimo de dias entre alterações de password\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Número máximo de dias entre alterações de password\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr "Número de dias de aviso antes da password expirar\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: não incluir \"l\" com outras flags\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: acesso negado.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: A autenticação PAM falhou\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: não é possível abrir o ficheiro de passwords\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: utilizador desconhecido %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr ""
 "%s: não é possível obter acesso exclusivo ao ficheiro de passwords shadow"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: não é possível abrir o ficheiro de passwords shadow"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "A alterar a informação de envelhecimento de %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: erro na alteração de campos\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: não é possível actualizar o ficheiro de passwords\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: não é possível actualizar o ficheiro de passwords shadow\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Erro na actualização do registo da password DBM\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: não é possível reescrever o ficheiro de passwords shadow\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: não é possível reescrever o ficheiro de passwords\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: falhou chauthtok de PAM\n"
@@ -368,120 +344,125 @@ msgstr ""
 "Utilização: %s [-f nome_completo] [-r no_sala] [-w telefone_trabalho] [-h "
 "telefone_casa]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nome Completo"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNome Completo: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Número da Sala"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefone do Trabalho"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefone de Casa"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Outra Informação"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Não é possível determinar o seu nome de utilizador.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: não é possível alterar o utilizador `%s' no cliente NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' é o NIS master por este cliente.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: acesso negado.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "A alterar a informação de utilizador de %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nome inválido: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: número de sala inválido: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: telefone do trabalho inválido: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: telefone de casa inválido: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" contém caracteres não permitidos.\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: valores demasiado grandes\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Não é possível alterar o ID para root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "Não é possível obter acesso exclusivo ao ficheiro de passwords; tente de "
 "novo mais tarde.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Não é possível abrir o ficheiro de passwords.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s não foi encontrado em /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Erro ao actualizar o registo da password.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr ""
 "Não é possível gravar as alteração efectuadas ao ficheiros de passwords.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Não é possível libertar o ficheiro de passwords.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -505,48 +486,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: não é possível obter acesso exclusivo ao ficheiro de passwords\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: não é possível obter acesso exclusivo ao ficheiro shadow\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: não é possível abrir o ficheiro shadow\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linha %d: linha demasiado grande\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linha %d: falta a nova password\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linha %d: utilizador %s desconhecido\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linha %d: não é possível actualizar o registo da password\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: foi detectado um erro, as alterações foram ignoradas\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: erro a actualizar o ficheiro shadow\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: erro a actualizar o ficheiro de passwords\n"
@@ -556,26 +537,26 @@ msgstr "%s: erro a actualizar o ficheiro de passwords\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Utilização: %s [-s shell] [nome]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Shell de Login"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Não pode alterar a shell de %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "A alterar a shell de entrada de %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Entrada inválida: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s é uma shell inválida.\n"
@@ -585,12 +566,12 @@ msgstr "%s é uma shell inválida.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Utilização: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: AVISO! Tem de ter o UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: utilizador desconhecido\n"
@@ -604,8 +585,9 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
@@ -619,318 +601,283 @@ msgstr ""
 "  -m, --maximum MAX\t\tdefinir contadores de máximo de logins falhados para "
 "MAX\n"
 "  -r, --reset\t\t\tesvazia os contadores de login falhados\n"
+"  -t, --time DIAS\t\tmostrar registos do faillog mais recentes do que DIAS\n"
 "  -u, --user LOGIN\t\tmostra o registo de faillog ou contadores de falhas \n"
 "\t\t\t\tmantidos e limites (se utilizado com as opções -r, -m ou -l) \n"
 "\t\t\t\tapenas para o utilizador com o login LOGIN\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Utilizador   Falhas  Máximo  Último\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s em %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Login       Falhas   Máximo  Última                   Em\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [faltam %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lock]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Utilizador Deconhecido: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Utilização: %s [-r|-R] grupo\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "            %s [-a utilizador] grupo\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "            %s [-d utilizador] grupo\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "            %s [-A utilizador,...] [-M utilizador,...] grupo\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "            %s [-M utilizador,...] grupo\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: passwords shadow de grupo necessárias para -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Quem é você?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "grupo desconhecido: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "A adicionar o utilizador %s ao grupo %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "A remover o utilizador %s do grupo %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: membro desconhecido %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Não é um tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "A alterar a password para o grupo %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nova Password: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Re-introduza a nova password: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Não coincidem; tente de novo"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Tente de novo mais tarde\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: não é possível obter acesso exclusivo\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: não é possível obter acesso exclusivo a shadow\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: não é possível abrir o ficheiro\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: não é possível actualizar o registo\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: não é possível actualizar o registo do shadow\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: não é possível reescrever o ficheiro\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: não é possível reescrever o ficheiro de shadow\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: não é possível libertar o ficheiro\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: não é possível actualizar os ficheiros DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: não é possível actualizar os ficheiros de shadow DBM\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Utilização: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: erro a adicionar o registo do novo grupo\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: não é possível adicionar o registo do novo grupo dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: o nome %s não é único\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u não é único\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: não é possível obter um gid único\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s não é um nome válido para o grupo\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: grupo %s inválido\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O necessita de NAME=VALUE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: não é possível reescrever o ficheiro dos grupos\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: não é possível reescrever o ficheiro de shadow dos grupos\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: não é possível obter acesso exclusivo ao ficheiro dos grupos\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: não é possível abrir o ficheiro dos grupos\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr ""
 "%s: não é possivel obter acesso exclusivo ao ficheiro de shadow dos grupos\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: não é possível abrir o ficheiro de shadow dos grupos\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: o grupo %s já existe\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Utilização: groupdel grupo\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: erro ao remover o registo do grupo\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: erro ao remover o registo do grupo dbm\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: erro ao remover o registo de shadow do grupo\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: erro ao remover o registo de shadow do grupo dbm\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: não é possível remover o grupo primário do utilizador.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: o grupo %s não existe.\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: o grupo %s é um grupo NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s é o NIS master\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Utilização: groupmod [-g gid [-o]] [-n nome] grupo\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s não foi encontrado em /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: não é possível adicionar um novo registo shadow do grupo dbm\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u não é um gid único\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s não é um nome único\n"
@@ -940,110 +887,105 @@ msgstr "%s: %s não é um nome único\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Utilização: %s [-r] [-s] [grupo [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Utilização: %s [-r] [-s] [grupo]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Não"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s e -r são incompatíveis\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: não é possível obter acesso exclusivo ao ficheiro %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: não é possível abrir o ficheiro %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "um registo no ficheiro dos grupos é inválido\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "apagar a linha `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "registo de grupo duplicado\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "o nome de grupo `%s' é inválido\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupo %s: não existe o utilizador %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "apagar o membro `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "o registo no ficheiro de shadow dos grupos é inválido\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "registo de grupo em shadow duplicado\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "o registo coincidente para esse grupo não foi encontrado\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "grupo shadow %s: o utilizador %s não administrador\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "apagar o membro administrador `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grupo shadow %s: o utilizador %s não existe\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: não é possível actualizar o ficheiro %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: os ficheiros foram actualizados; execute mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: os ficheiros foram actualizados\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: não houve alterações\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: os ficheiros foram actualizados\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1060,37 +1002,37 @@ msgid "%s: can't lock shadow group file\n"
 msgstr ""
 "%s: não é possível obter acesso exclusivo ao ficheiro de shadow dos grupos\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: não é possível abrir o ficheiro de shadow dos grupos\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: não é possível remover o grupo shadow %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: não é possível actualizar o registo de shadow de %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: não é possível actualizar o registo do grupo %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: não é possível actualizar o ficheiro de shadow do grupo\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: não é possível actualizar o ficheiro do grupo\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: não é possível apagar o ficheiro de shadow dos grupos.\n"
@@ -1110,13 +1052,13 @@ msgstr "Utilização: id\n"
 msgid " groups="
 msgstr " grupos="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1127,41 +1069,41 @@ msgstr ""
 "  -h, --help\t\tmostra esta mensagem e sai\n"
 "  -t, --time DIAS\tmostra apenas registos de lastlog mais recentes que DIAS\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Utilizador        Porto       De             Último\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Utilizador              Port     Último\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nunca entrou no sistema**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Utilização: %s [-p] [nome]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "            %s [-p] [-h host] [-f nome]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "            %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Tempo de login inválido\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1170,7 +1112,7 @@ msgstr ""
 "\n"
 "Sistema encerrado para manutenção de rotina\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1179,7 +1121,7 @@ msgstr ""
 "\n"
 "[Encerramento ultrapassado -- entrada de root permitida.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1188,17 +1130,17 @@ msgstr ""
 "\n"
 "Tempo de login caducou após %d segundos de inactividade.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " em `%.100s' de `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " em `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1207,38 +1149,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login incorrecto"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Aviso: o login foi novamente permitido após um tempo de bloqueio.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Última entrada no sistema: %s em %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Última entrada no sistema: %.19s em %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " de %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "A iniciar rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1257,9 +1190,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: não é possível abrir os ficheiros DBM para %s\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: o inicio com "
+msgstr "%s: a linha que começa por %.16s... é demasiado longa\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1281,17 +1214,17 @@ msgstr "%s: erro a adicionar o registo para %s\n"
 msgid "added %d entries, longest was %d\n"
 msgstr "foram adicionados %d registos, o maior foi o %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Utilização: %s [-vf] [-p|g|sp|sg] ficheiro\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Utilização: %s [-vf] [-p|g|sp] ficheiro\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Utilização: %s [-vf] [-p|g] ficheiro\n"
@@ -1311,16 +1244,16 @@ msgstr "Utilização: sg grupo [[-c] comando]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid desconhecido: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid desconhecido: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Desculpe.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "demasiados grupos\n"
@@ -1330,92 +1263,92 @@ msgstr "demasiados grupos\n"
 msgid "Usage: %s [input]\n"
 msgstr "Utilização: %s [input]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: não é possível obter acesso exclusivo a /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 "%s: não é possível obter acesso excluviso a ficheiros, tente mais tarde\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: não é possível abrir ficheiros\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linha %d: linha inválida\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linha %d: não é possível criar o GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linha %d: não é possível criar o UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linha %d: não é possivel encontrar o utilizador %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linha %d: não é possível actualizar a password\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linha %d: o mkdir falhou\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linha %d: o chown falhou\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linha %d: não é possível actualizar o registo\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: erro ao actualizar ficheiros\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Utilização: %s [-f|-s] [nome]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "            %s [-x max] [-n min] [-w aviso] [-i inactivo] nome\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "            %s {-l|-u|-d|-S|-e} nome\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Password antiga: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Password incorrecta para `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1425,16 +1358,16 @@ msgstr ""
 "Por favor utilize um combinação de letras maiúsculas, minúsculas e de "
 "números.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nova password: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Tente de novo.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1443,52 +1376,52 @@ msgstr ""
 "\n"
 "Aviso: password fraca (introduza-a de novo para usá-la mesmo assim).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Não coincidem; tente de novo.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "A password para %s não pode ser alterada.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Desculpe, mas a password para %s ainda não pode ser alterada.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: falta de memória\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Não é possível executar %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: o repositório %s não é suportado\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Não pode alterar a password para %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Não pode ver ou alterar a informação da password para %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "A alterar a password de %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "A password de %s não foi alterada.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Password alterada.\n"
@@ -1503,49 +1436,49 @@ msgstr "Utilização: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Utilização: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "registo no ficheiro de passwords inválido\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "registo de password duplicado\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "o nome de utilizador '%s' é inválido\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "utilizador %s: o grupo %u não existe\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "utilizador %s: a directoria %s não existe\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "utilizador %s: o programa %s não existe\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "registo no ficheiro de shadow de passwords inválido\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "registo de shadow da password duplicado\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "registo no ficheiro de passwords não coincidente\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "utilizador %s: a última alteração de password foi no futuro\n"
@@ -1565,17 +1498,17 @@ msgstr "%s: não é possível abrir o ficheiro passwd\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: não é possível remover o registo shadow de %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: não é possível actualizar o registo em passwd de %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: não é possível actualizar o ficheiro shadow\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: não é possível actualizar o ficheiro passwd\n"
@@ -1585,40 +1518,40 @@ msgstr "%s: não é possível actualizar o ficheiro passwd\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: não é possível actualizar o registo do utilizador %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: não é possível apagar o ficheiro de shadow de passwords\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Desculpe."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: deve ser executado a partir de um terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: erro %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id desconhecido: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Não está autorizado a fazer su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Introduza a sua password.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1627,22 +1560,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorado)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Sem shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Acesso a su para essa conta foi NEGADO.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Autenticação por password foi ultrapassada.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Por favor introduza a SUA password como autenticação.\n"
@@ -1657,7 +1590,7 @@ msgstr "Ficheiro de passwords não existe\n"
 msgid "No password entry for 'root'\n"
 msgstr "Não está definida nenhuma password para 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1667,239 +1600,219 @@ msgstr ""
 "Pressione control-d para continuar com o arranque normal,\n"
 "(ou introduza a password de root para manutenção do sistema):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "A Entrar no Modo de Manutenção do Sistema\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: reconstrução da base de dados dos grupos\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: reconstrução da base de dados de shadow dos grupos\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: argumento numérico inválido `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: gid %s desconhecido\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: grupo %s desconhecido\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: não é possível criar ficheiro de configurações por defeito\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: não é possível abrir ficheiro de configurações por defeito\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: renomear: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: o grupo `%s' é um grupo NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: estão especificados demasiados grupos (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Utilização: useradd [-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                    [-d home] [-s shell] [-c comentário] [-m [-k template]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                    [-f inactivo] [-e caduca]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                    [-p passwd] nome\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "            useradd -D [-g grupo] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: erro ao tentar obter acesso exclusivo ao ficheiro dos grupos\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: erro ao tentar abrir o ficheiro dos grupos\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 "%s: erro ao tentar obter acesso exclusivo ao ficheiro de shadow dos grupos\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: erro ao tentar abrir o ficheiro de shadow dos grupos\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u não é único\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: não é possível obter um uid único\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: a directoria base `%s' é inválida\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: o comentário `%s' é inválido\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: a directoria home `%s' é inválida\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: a data `%s' é inválida\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: é necessário shadow passwords para -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: é necessário shadow passwords para -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: o campo `%s' é inválido\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: a shell `%s' é inválida\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: o nome de utilizador '%s' é inválido\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: não foi possível reescrever o ficheiro de passwords\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: não foi possível reescrever o ficheiro de shadow de passwords\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: não foi possível obter acesso exclusivo ao ficheiro de passwords\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: não foi possível abrir o ficheiro de passwords\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 "%s: não é possível obter acesso exclusivo ao ficheiro de shadow de "
 "passwords\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: não é possível abrir o ficheiro de shadow de passwords\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: erro ao adicionar o registo da nova password\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: erro ao actualizar o registo de passwords dbm\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: erro ao adicionar o registo da nova password de shadow\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: erro ao actualizar o registo da nova password de shadow dbm\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: não é possível criar a directoria %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 "Não existe nenhum grupo chamado \"mail\", criando spool de mail com modo "
 "0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Não foi possível criar spool de mail para o utilizador %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: o utilizador %s existe\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1907,208 +1820,173 @@ msgstr ""
 "%s: o grupo %s existe - se pretende adicionar este utilizador a esse grupo, "
 "utilize -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: aviso: CREATE_HOME não é suportado, por favor em vez disso utilize -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Utilização: %s [-r] nome\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: erro ao actualizar o registo do grupo\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: não é possível actualizar o registo do grupo dbm\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: não é possível remover o registo do grupo dbm\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: não é possível abrir o ficheiro dos grupos\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: não é possível abrir o ficheiro de shadow dos grupos\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: erro ao apagar o registo da password\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: erro ao apagar o registo da password de shadow\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: erro ao apagar o registo dbm da password\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: erro ao apagar o registo dbm da password de shadow\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: o utilizador %s está actualmente no sistema\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: o %s não pertence a %s, não será removido\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: aviso: não é possível remover "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: o utilizador %s não existe\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: o utilizador %s é um utilizador NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: a directoria %s não será removida (iria remover a home do utilizador %"
 "s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: erro ao remover a directoria %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Utilização: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s shell] [-c comentário] [-l novo_nome]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactivo] [-e caduca] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passwd] [-L|-U] nome\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: falta de memória em update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: falta de memória em update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: não foram especificadas flags\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: é necessária passwords shadow para -e e -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: o uid %lu não é único\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: erro ao alterar o registo de password\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: erro ao remover o registo de password\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: erro ao adicionar o registo dbm de password\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: erro ao apagar o registo dbm de password\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: erro ao remover o registo de password de shadow\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: erro ao apagar o registo dbm de password de shadow\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: a directoria %s existe\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: não é possível criar %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: não é possível efectuar o chown a %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: não é possível renomear a directoria %s para %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: aviso: o %s não pertence a %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "a alteração do dono da caixa de correio falhou"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "falha ao renomear a caixa do correio"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2117,20 +1995,20 @@ msgstr ""
 "\n"
 "%s: o %s não foi alterado\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Não é possível obter acesso exclusivo ao ficheiro"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Não é possível efectuar cópia de segurança"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: não é possível restaurar %s: %s (a suas alterações estão em %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index a29f07bdb00a796ad3a7c81b314ef5a163ef776d..9c050e20cea78812b67d4d8a8bea583be727971a 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 0f81a35871708ce5ec3aba316d7efc5aa4de85f3..fc5df3abec97393bdd9b94cadba8cec74a831192 100644 (file)
@@ -6,21 +6,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-06-12 17:16-0300\n"
 "Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
 "Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Aviso : grupo desconhecido %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Aviso : muitos grupos\n"
@@ -48,17 +48,17 @@ msgstr "  Entre em contato com o adminisrador do sistema.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Escolha uma nova senha.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Sua senha irá expirar em %ld dias.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Sua senha irá expirar amanhã.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Sua senha irá expirar hoje.\n"
@@ -73,41 +73,27 @@ msgstr "Não foi possível mudar tty %s"
 msgid "Environment overflow\n"
 msgstr "Overflow de ambiente\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Você não pode mudar $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d desde o último login. O último foi %s em %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "falhas"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "falha"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d desde o último login. O último foi %s em %s.\n"
+msgstr[1] "%d desde o último login. O último foi %s em %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Muitos logins.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "A senha não desencripta a chave secreta para %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Não foi possível definir a chave secreta de %s : o daemon servidor de chaves "
-"está em execução ?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Você possui novas mensagens."
@@ -120,7 +106,7 @@ msgstr "Sem mensagens."
 msgid "You have mail."
 msgstr "Você possui mensagens."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Senha ruim : %s.  "
@@ -135,20 +121,20 @@ msgstr "passwd : pam_start() falhou, erro %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd : %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Não foi possível entrar em \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Sem diretório pessoal, logando com HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Não foi possível executar %s"
@@ -163,36 +149,32 @@ msgstr "Diretório raíz \"%s\" inválido\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Não foi possível mudar o diretório raíz para \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) falhou\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Não foi possível alocar espaço para a informação de configuração.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "erro de configuração - item '%s' desconhecido (notifique o administrador)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Senha : "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Senha de %s : "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo ligado) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -201,154 +183,147 @@ msgstr ""
 "Uso : chage [-l] [-m mínimo_dias] [-M máximo_dias] [-W aviso]\n"
 "            [-I inativo] [-E expira] [-d último_dia] usuário\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Informe o novo valor ou pressione ENTER para aceitar o padrão\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Idade Mínima da Senha"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Idade Máxima da Senha"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Última Mudança de Senha (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Aviso de Expiração de Senha"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Senha Inativa"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data de Expiração de Senha (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Última Mudança de Senha (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Nunca\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Senha Expira :\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Senha Inativa :\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Conta Expira :\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, fuzzy, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Número máximo de tentativas excedido (%d)\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s : não inclua \"l\" com outras flags\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s : permissão negada\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s : autenticação PAM falhou\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s : não foi possível abrir o arquivo de senhas\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s : usuário %s desconhecido\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s : não foi possível obter lock em arquivos de senhas shadow"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s : não foi possível abrir arquivo de senhas shadow"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Mudando a informação de idade para %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s : erro modificando campos\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s : não foi possível atualizar arquivo de senhas\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s : não foi possível atualizar arquivos de senhas shadow\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Erro atualizando a entrada de senha DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s : não foi possível reescrever arquivo de senhas shadow\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s : não foi possível reescrever arquivo de senhas\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s : chauthok PAM falhou\n"
@@ -369,119 +344,124 @@ msgstr ""
 "Uso : %s [-f nome_completo] [-r número_sala] [-w fone_rabalho] [-h "
 "fone_doméstico]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nome Completo"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNome Completo : %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Número da Sala"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Fone de Trabalho"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Fone Doméstico"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Outro"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s : Não foi possível determinar seu nome de usuário.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s : não foi possível mudar o usuário `%s' no cliente NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s : `%s' é o mestre NIS para este cliente.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s : permissão negada\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Modificando as informações de usuário para %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s : nome inválido : \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s : número de sala inválido : \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s : fone de trabalho inválido : \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s : fone doméstico inválido : \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s : \"%s\" contém caracteres ilegais\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s : campos muito extensos\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Não foi possível mudar o ID para root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 "Não foi possível fazer local em arquivo de senhas; tente novamente mais "
 "tarde.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Não foi possível abrir arquivo de senhas.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s : %s não encontrado em /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Erro atualizando a entrada de senha.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Não foi possível gravar as mudanças no arquivo de senhas.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Não foi possível remover o locak do arquivo de senhas.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -498,48 +478,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s : não foi possível obter lock em arquivo de senhas\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s : nao foi possível obter lock em arquivo shadow\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s : não foi possível abrir arquivo shadow\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s : linha %d : linha muito extensa\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s : linha %d : nova senha faltando\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s : linha %d : usuário %s desconhecido\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s : linha %d : não foi possível atualizar entrada de senha\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s : erro detectado, mudanças ignoradas\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s : erro atualizando arquivo shadow\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s : erro atualizando arquivo de senhas\n"
@@ -549,26 +529,26 @@ msgstr "%s : erro atualizando arquivo de senhas\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Uso : %s [-s shell] [nome]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Shell de Login"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Você não pode mudar o shell para %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Mudando o shell de login para %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s : Entrada inválida : %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s é um shell inválido.\n"
@@ -578,12 +558,12 @@ msgstr "%s é um shell inválido.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Uso : expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s : AVISO ! Deve ser set-UID root !\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s : usuário desconhecido\n"
@@ -597,320 +577,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Nome de Usuário   Falhas   Máximo   Último\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s em %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds restante]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lock]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Usuário Desconhecido : %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Uso : %s [-r|-R] grupo\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "      %s [-a usuário] grupo\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "      %s [-d usuário] grupo\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "      %s [-A usuário,...] [-M usuário,...] grupo\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "      %s [-M usuário,...] grupo\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s : senhas de grupo shadow requeridas para -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Quem é você ?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "grupo desconhecido : %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Adicionando usuário %s ao grupo %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Removendo usuário %s do grupo %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s : membro %s desconecido\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s : Não é um tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Mudando a senha para o grupo %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nova Senha : "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Informe a nova senha novamente : "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "As senhas não são iguais; tente novamente"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s : Tente novamente mais tarde\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s : não foi possível obter lock\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s : nõ foi possível obter lock shadow\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s : não foi possível abrir arquivo\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s : não foi possível atualizar entrada\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s : não foi possível atualizar entrada shadow\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s : não foi possível regravar arquivo\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s : não foi possível regravar arquivo shadow\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s : não foi possível remover o lock do arquivo\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s : não foi possível atualizar arquivos DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s : não foi possível atualizar arquivos shadow DBM\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Uso : groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s : erro adicionando nova entrada de grupo\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s : não foi possível adicionar nova entrada de grupo dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s : o nome %s não é único\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s : o gid %u não é único\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s : não foi possível obter gid único\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s : %s não é um nome de grupo válido\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s : grupo %s inválido\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s : -O requer NOME=VALOR\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s : não foi possível regravar arquivo de grupo\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s : não foi possível regravar arquivo de grupo shadow\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s : não foi possível obter lock em arquivo de grupo\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s : não foi possível abrir arquivo de grupo\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s : não foi possível obter lock em arquivo de grupo shadow\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s : não foi possível abrir arquivo de grupo shadow\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s : grupo %s existe\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Uso : groupdel grupo\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s : erro removendo entrada de grupo\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s : erro removendo entrada de grupo dbm\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s : erro removendo entrada de grupo shadow\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s : erro removendo entrada de grupo shadow dbm\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s : não foi possível remover grupo primário do usuário.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s : grupo %s não existe\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s : grupo %s é um grupo NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s : %s é o mestre NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Uso : groupmod [-g gid [-o]] [-n nome] grupo\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s : %s não encontrado em /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s : não foi possível adicionar nova entrada de grupo shadow dbm\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s : %u não é um gid único\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s : %s não é um nome único\n"
@@ -920,110 +865,105 @@ msgstr "%s : %s não é um nome único\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Uso : %s [-r] [-s] [grupo [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Uso : %s [-r] [-s] [grupo]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Não"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s : -s e -r são incompatíveis\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s : não foi possível obter lock no arquivo %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s : não foi possível abrir arquivo %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "entrada inválida no arquivo de grupo\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "remover a linha `%s' ? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "entrada de grupo duplicada\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nome de grupo `%s' inválido\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupo %s : nenhum usuário %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "remover membro `%s' ? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "entrada inválida no arquivo de grupo shadow\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "entrada de grupo shadow duplicada\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "entrada no arquivo de grupo não casa\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "grupo shadow %s : nenhum usuário administrativo %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "remover membro administrativo `%s' ? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "grupo shadow %s : nenhum usuário %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s : não foi possível atualizar arquivo %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s : os arquivos foram atualizados; execute mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s : os arquivos foram atualizados\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s : nenhuma mudança\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s : os arquivos foram atualizados\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1039,37 +979,37 @@ msgstr "%s : não foi possível abrir arquivo de grupo\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s : não foi possível obter lock em arquivo de grupo shadow\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s : não foi possível abrir arquivo de grupo shadow\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s : não foi possível remover grupo shadow %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s : não foi possível atualizar entrada shadow para %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s : não foi possível atualizar entrada para grupo %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s : não foi possível atualizar arquivo de grupo shadow\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s : não foi possível atualizar arquivo de grupo\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s : não foi possível remover arquivo de grupo shadow\n"
@@ -1089,52 +1029,52 @@ msgstr "Uso : id\n"
 msgid " groups="
 msgstr " grupos="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Nome de Usuário         Porta     De             Último\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Nome de Usuário               Porta    Último\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nunca logou**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Uso : %s [-p] [nome]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "      %s [-p] [-h host] [-f nome]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "      %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Hora de login inválida\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1143,7 +1083,7 @@ msgstr ""
 "\n"
 "Sistema fechado para manutenção de rotina\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1152,7 +1092,7 @@ msgstr ""
 "\n"
 "[Disconexão contornada -- login de root permitido.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1161,17 +1101,17 @@ msgstr ""
 "\n"
 "Login falhou após %d segundos de espera.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " em `%.100s' de `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " em `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1180,38 +1120,29 @@ msgstr ""
 "\n"
 "%s login : "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login : "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Login incorreto"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Aviso : login rehabilitado após travamento temporário.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Último login : %s em %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Último login : %.19s em %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " de %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Iniciando rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1252,17 +1183,17 @@ msgstr "%s : erro adicionando registro para "
 msgid "added %d entries, longest was %d\n"
 msgstr "adicionadas %d entradas. a maior foi %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Uso : %s [-vf] [-p|g|sp|sg] arquivo\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Uso : %s [-vf] [-p|g|sp] arquivo\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Uso : %s [-vf] [-p|g] arquivo\n"
@@ -1282,16 +1213,16 @@ msgstr "Uso : sg group [[-c] comando]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid desconhecido : %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid desconhecido : %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Desculpe.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "muitos grupos\n"
@@ -1301,92 +1232,92 @@ msgstr "muitos grupos\n"
 msgid "Usage: %s [input]\n"
 msgstr "Uso : %s [entrada]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s : não foi possível obter de /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 "%s : não foi possível obter lock de arquivos, tente novamente mais tarde\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s : não foi possível abrir arquivos\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s : linha %d : linha inválida\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s : linha %d : não foi possível criar GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s : linha %d : não foi possível criar UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s : linha %d : não foi possível encontrar usuário %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s : linha %d : não foi possível atualizar a senha\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s : linha %d : mkdir falhou\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s : linha %d : chown falhou\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s : linha %d : não foi possível atualizar entrada\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s : erro atualizando arquivos\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Uso : %s [-f|-s] [nome]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "      %s [-x máximo] [-n mínimo] [-w aviso] [-i inativo] nome\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "      %s {-l|-u|-d|-S|-e} nome\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Senha antiga : "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Senha incorreta para `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1396,16 +1327,16 @@ msgstr ""
 "Por favor, use uma combinação de letras em maiúsculas e minúsculas \n"
 "e de números.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nova senha : "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Tente novamente.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1414,52 +1345,52 @@ msgstr ""
 "\n"
 "Aviso : senha fraca (informe-a novamente para usá-la de qualquer forma).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "As senhas não são iguais; tente novamente.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "A senha para %s não pode ser modificada.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Desculpe, a senha para %s ainda não pode ser modificada.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s : sem memória\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s : Não foi possível executar %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s : repositório %s não suportado\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Você não pode mudar o shell para %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Modificando a senha para %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "A senha para %s não foi modificada.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Senha modificada.\n"
@@ -1474,49 +1405,49 @@ msgstr "Uso : %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Uso : %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "entrada de arquivo de senha inválida\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "entrada de senha duplicada\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "nome de usuário '%s' inválido\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "usuário %s : nenhum grupo %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "usuário %s : diretório %s não existe\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "usuário %s : programa %s não existe\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "entrada de arquivos de senhas shadow inválida\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "entrada de senha shadow inválida\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "entrada de arquivo de senha não casa\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "usuário %s : última mudança de senha no futuro\n"
@@ -1536,17 +1467,17 @@ msgstr "%s : não foi possível abrir arquivo passwd.\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s : não foi possível remover entrada shadow para %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s : não foi possível atualizar entrada passwd para %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s : não foi possível atualizar arquivo shadow\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s : não foi possível atualizar arquivo passwd\n"
@@ -1556,40 +1487,40 @@ msgstr "%s : não foi possível atualizar arquivo passwd\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s : não foi possível atualizar entrada para usuário %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s : não foi possível remover arquivo de senhas shadow\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Desculpe."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s : deve ser executado a partir de um terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s : pam_start : erro %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id desconhecido : %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Você não está autorizado a usar o su para %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "{Informe sua própria senha.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1598,22 +1529,22 @@ msgstr ""
 "%s : %s\n"
 "(Ignorado)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Sem shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Acesso ao su para esta conta NEGADO.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Autenticação por senha contornada.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Por favor, informe sua PRÓPRIA senha como autenticação.\n"
@@ -1628,7 +1559,7 @@ msgstr "Sem arquivo de senhas\n"
 msgid "No password entry for 'root'\n"
 msgstr "Nenhuma entrada de senha para 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1638,234 +1569,214 @@ msgstr ""
 "Digite Control-D para continuar com a inicialização normal, \n"
 "(ou forneça a senha de root para administração do sistema) :"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Entrando em Modo de Manutenção do Sistema\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s : reconstrua a base de dados de grupos\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s : recosntrua a base de dados de grupos shadow\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s : argumento numérico `%s' inválido\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s : gid %s desconhecido\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s : grupo %s desconhecido\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s : não foi possível criar novo arquivo de padrões\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s : não foi possível abrir novo arquivo de padrões\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s : rename : %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s : grupo `%s' é um grupo NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s : muitos grupos especificados *máimo %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Uso : useradd [-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "              [-d home] [-s shell] [-c comentário] [-m [-k template]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "              [-f inativo] [-e expira ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "              [-p passwd] nome\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "      useradd -D [-g grupo] [-b base] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s : erro obtendo lock em arquivo de grupo\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s : erro abrindo arquivo de grupo\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s : erro obtendo lock em arquivo de grupo shadow\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s : erro abrindo arquivo de grupo shadow\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s : o uid %u não é único\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s : não foi possível obter uid único\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s : diretório base `%s'inválido\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s : comentário `%s' inválido\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s : diretório home `%s' inválido\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s : data `%s' inválida\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s : senhas shadow necessárias para -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s : senhas shadow necessárias para -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s : campo `%s' inválido\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s : shell `%s' inválida\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s : nome de usuário '%s' inválido\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s : não foi possível reescrever arquivo de senhas\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s : não foi possível reescrever arquivo de senhas shadow\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s : não foi possível obter lock em arquivo de senhas\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s : não foi possível abrir arquivo de senhas\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s : não foi possível obter lock em arquivo de senhas shadow\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s : não foi possível abrir arquivo de senhas shadow\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s : erro adicionando nova entrada de senha\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s : erro atualizando entrada de senha dbm\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s : erro adicionando nova entrada de senha shadow\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s : erro atualizando entrada de senha shadow dbm\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s : não foi possível criar diretório %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s : não foi possível atualizar entrada para usuário %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s : usuário %s existe\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1873,205 +1784,170 @@ msgstr ""
 "%s : grupo %s existe - caso você ueira adicionar esse usuário a esse \n"
 "grupo, utilize -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s : aviso CREATE_HOME não é suportado, por favor, utilize -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Uso : %s [-r] nome\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s : erro atualizando entrada de grupo\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s : não foi possível atualizar entrada de grupo dbm\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s : não foi possível remover entrada de grupo dbm\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s : não foi possível abrir arquivo de grupo\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s : não foi possível abrir arquivo de grupo shadow\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s : erro removendo entrada de senha\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s : erro removendo entrada de senha shadow\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s : erro removendo entrada de senha dbm\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s : erro removendo entrada de senha shadow dbm\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s : o usuário %s está logado no momento\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s : %s não é propriedade de %s, não removendo\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s : aviso : não foi possível remover "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s : usuário %s não existe\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s : usuário %s é um usuário NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s : não removendo diretório %s (removeria o home do usuário %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s : erro removendo diretório %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Uso : %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d home [-m]] [-s shell] [-c comentário] [-l novo_nome]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inativo] [-e expira] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passwd] [-L|-U] nome\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s : sem memória em update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s : sem memória em update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s : nenhuma flag informada\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s : senhas shadow necessárias para -e e -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s : o uid %lu não é único\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s : erro modificando entrada de senha\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s : erro removendo entrada de senha\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s : erro adicionando entrada de senha dbm\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s : erro removendo entrada passwd dbm\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s erro removendo entrada de senha shadow\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s : erro removendo entrada de passwd shadow dbm\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s : diretório %s existe\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s : não foi possível criar %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s : não foi possível executar chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s : não foi possível renomear diretório %s para %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s : aviso : %s não é propriedade de %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "falha au mudar o dono da caixa-postal"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "falha ao renomear caixa-postal"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2080,20 +1956,20 @@ msgstr ""
 "\n"
 "%s : %s não foi modificado\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Não foi possível obter lock em arquivo"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Não foi possível fazer backup"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s : não foi possível restaurar %s : %s (suas mudanças estão em %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index af81b7e253c363e3902591db236f4e1e18dd4224..b4434f910c24596ad64ce597c0300393490900ab 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index 63092522a938980f498cb4e109f947c634df185b..3bf1c0dcb196f08bec7bddd7dbc1fe0b3349afe1 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -8,14 +8,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ro\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-12-14 18:17+0200\n"
 "Last-Translator: Sorin Batariuc <sorin@bonbon.net>\n"
 "Language-Team: Romanian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.3.1\n"
 
 #: libmisc/addgrps.c:56
@@ -23,7 +23,7 @@ msgstr ""
 msgid "Warning: unknown group %s\n"
 msgstr "Avertisment: grup necunoscut %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Avertisment: prea multe grupuri\n"
@@ -51,17 +51,17 @@ msgstr "  Contactaţi administratorul de sistem.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Alegeţi o parolă nouă.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Parola vă va expira în %ld zile.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Parola vă va expira mâine.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Parola vă va expira azi.\n"
@@ -76,39 +76,29 @@ msgstr "Nu pot schimba tty %s"
 msgid "Environment overflow\n"
 msgstr "Inundaţie de mediu\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Nu puteţi schimba $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d eşuare de la ultima autentificare.  Ultima oară a fost %s în %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d eşuare de la ultima autentificare.  Ultima oară a fost %s în %s.\n"
+msgstr[1] ""
+"%d eşuare de la ultima autentificare.  Ultima oară a fost %s în %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Prea multe autentificări.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Parola nu decriptează cheia secretă pentru %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Nu pot atribui cheia secretă pentru %s: demonul keyserv este pornit?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Aveţi mesaje noi."
@@ -121,7 +111,7 @@ msgstr "N-aveţi mesaje."
 msgid "You have mail."
 msgstr "Aveţi mesaje."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Parolă incorectă: %s.  "
@@ -136,20 +126,20 @@ msgstr "passwd: eşuare pam_start(), eroare %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Nu pot schimba directorul către \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Fără director personal, autentificat cu HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Nu pot executa %s"
@@ -164,36 +154,32 @@ msgstr "Director rădăcină invalid \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Nu pot schimba directorul rădăcină la \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "eşuare malloc(%d)\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Nu pot aloca spaţiu pentru informaţiile despre configurare.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "eroare de configurare - articol necunoscut '%s' (anunţaţi administratorul)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Parola: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Parola %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Ecou activat) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, fuzzy, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -202,154 +188,147 @@ msgstr ""
 "Utilizare: %s [-l] [-m min_zile] [-M max_zile] [-W avertiza]\n"
 "\t[-I inactivă] [-E expiră] [-d ultima_zi] utilizator\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Introduceţi noua valoare, sau apăsaţi ENTER pentru cea implicită\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Vârsta minimă a parolei"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Vârsta maximă a parolei"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Ultima schimbare de parolă (AAAA-LL-ZZ)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Avertisment de expirare a parolei"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Parolă inactivă"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Data expirării contului (AAAA-LL-ZZ)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Ultima schimbare de parolă (AAAA-LL-ZZ)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Niciodată\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Parola expiră:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Parolă inactivă:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Contul expiră:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, fuzzy, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Numărul maxim de încercări a fost atins (%d)\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: nu include \"l\" cu alte semnalizatoare\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: permisiune refuzată\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: autentificare PAM eşuată\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s; nu pot deschide fişierul de conturi utilizatori\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: utilizator necunoscut %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s nu pot încuia fişierul de parole criptate"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: nu pot deschide fişierul de parole criptate"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Modific informaţia de temporalitate pentru %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: eroare la modificarea câmpurilor\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: nu pot actualiza fişierul de conturi utilizatori\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: nu pot actualiza fişierul de parole criptate\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Eroare la actualizarea intrării contului utilizator DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: nu pot rescrie fişierul de parole criptate\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: nu pot rescrie fişierul de conturi utilizatori\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: eşuare chauthtok PAM\n"
@@ -370,117 +349,122 @@ msgstr ""
 "Utilizare: %s [-f nume_complet] [-r nr_cameră] [-w cale_lucru] [-h "
 "cale_acasă]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Nume complet"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tNume complet: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Număr cameră"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefon birou"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefon acasă"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Altele"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Nu vă pot determina numele de utilizator.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: nu pot schimba utilizatorul `%s' pe un client NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' este stăpânul NIS pentru acest client.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: permisiune refuzată\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Modificare informaţii utilizator pentru %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: nume nevalid: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: număr de cameră nevalid: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: număr telefon de birou nevalid: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: număr telefon acasă nevalid: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" conţine caractere ilegale\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: câmpuri prea lungi\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Nu pot schimba identificatorul la root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Nu pot încuia fişierul de conturi utilizatori; încercaţi mai târziu.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Nu pot deschide fişierul de conturi utilizatori.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: nu s-a găsit %s în /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Eroare la actualizarea intrării contului utilizator.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Nu pot face modificările în fişierul de conturi utilizatori.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Nu pot descuia fişierul de conturi utilizatori.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -504,48 +488,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: nu pot încuia fişierul de conturi utilizator\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: nu pot închide fişierul de parole criptate\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: nu pot deschide fişierul de parole criptate\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: linia %d: linie prea lungă\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: linia %d: lipseşte noua parolă\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: linia %d: utilizator necunoscut %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: linia %d: nu pot actualiza intrarea contului utilizator\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: detectată o eroare, schimbările sunt ignorate\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: eroare la actualizarea fişierului de parole criptate\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: eroare la actualizarea fişierului de conturi utilizatori\n"
@@ -555,26 +539,26 @@ msgstr "%s: eroare la actualizarea fişierului de conturi utilizatori\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Utilizare: %s [-s consolă] [nume]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Autentificare consolă"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Nu puteţi schimba consola pentru %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Schimb consola de autentificare pentru %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Intrare nevalidă: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s este o consolă nevalidă.\n"
@@ -584,12 +568,12 @@ msgstr "%s este o consolă nevalidă.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Utilizare: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: AVERTISMENT!  Trebuie atribuit UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: utilizator necunoscut\n"
@@ -603,320 +587,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Nume utilizator   Eşuări  Maximum  Ultima\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s pe %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds rămase]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds rămase]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Utilizator necunoscut: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, fuzzy, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "utilizare: %s [-r|-R] grup\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a utilizator] grup\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d utilizator] grup\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A utilizator,...] [-M utilizator,...] grup\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M utilizator,...] grup\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: sunt cerute parole criptate de grup pentru -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Cine sunteţi?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "grup necunoscut: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Adăugare utilizator %s la grupul %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Ştergere utilizator %s din grupul %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: membru necunoscut %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: nu este un tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Schimbare parolă pentru grupul %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Parola nouă: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Reintroduceţi noua parolă: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Acestea nu se potrivesc, mai încercaţi odată"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Mai încercaţi mai târziu\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: nu pot obţine închiderea\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: nu pot obţine închiderea criptată\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: nu pot deschide fişierul\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: nu pot actualiza intrarea\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: nu pot actualiza intrarea criptată\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: nu pot rescrie fişierul\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: nu pot rescrie fişierul de parole criptate\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: nu pot descuia fişierul\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: nu pot actualiza fişierele DBM\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: nu pot actualiza fişierele criptate DBM\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, fuzzy, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "utilizare: groupadd [-g id_grup [-o]] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: eroare la adăugarea unei noi intrări de grup\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: nu pot adăuga o nouă intrare de grup dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: numele %s nu este unic\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: id grup %u nu este unic\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: nu pot prelua id unic de grup\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, fuzzy, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s nu este un nume de grup valid\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: grup nevalid %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O cere NAME=VALUE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: nu pot rescrie fişierul de grupuri\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: nu pot rescrie fişierul de parole criptate pentru grupuri\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: nu pot încuia fişierul de grupuri\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: nu pot deschide fişierul de grupuri\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: nu pot încuia fişierul de parole criptate pentru grupuri\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: nu pot deschide fişierul de parole criptate pentru grupuri\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grupul %s există\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, fuzzy, c-format
 msgid "Usage: groupdel group\n"
 msgstr "utilizare: groupdel grup\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: eroare la ştergerea intrării de grup\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: eroare la ştergerea intrării dbm de grup\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: eroare la ştergerea intrării parolei criptate de grup\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: eroare la ştergerea intrării parolei criptate dbm de grup\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: nu pot şterge grupul primar al utilizatorului.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: grupul %s nu există\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: grupul %s este un grup NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s este stăpân NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, fuzzy, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "utilizare: groupmod [-g id_grup [-o]] [-n nume] grup\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s nu s-a găsit în /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: nu pot adăuga o nouă intrare de parolă criptată pentru dbm grup\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u nu este un id unic de grup\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s nu este un nume unic\n"
@@ -926,110 +875,105 @@ msgstr "%s: %s nu este un nume unic\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Utilizare: %s [-r] [-s] [grup [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Utilizare: %s [-r] [-s] [grup]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nu"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s şi -r sunt incompatibile\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: nu pot încuia fişierul %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: nu pot deschide fişierul %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "intrare nevalidă în fişierul de grupuri\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "şterg linia `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "intrare de grup dublată\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "nume de grup nevalid `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupul %s: nici un utilizator %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "şterg membrul `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "intrare nevalidă în fişierul de parole criptate de grupuri\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "intrare dublată de parolă criptată de grup\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "nici o potrivire pentru intrarea din fişierul de grupuri\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "parola criptată a grupului %s: nici un utilizator administrativ %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "şterg membrul administrativ `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "parola criptată a grupului %s: nici un utilizator %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: nu pot actualiza fişierul %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: fişierele au fost actualizate, pornesc mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: fişierele au fost actualizate\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: fără schimbări\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: fişierele au fost actualizate\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1045,37 +989,37 @@ msgstr "%s: nu pot deschide fişierul de grupuri\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: nu pot încuia fişierul de parole criptate de grupuri\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: nu pot deschide fişierul de parole criptate de grupuri\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: nu pot şterge parola criptată pentru grupul %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: nu pot actualiza intrarea parolei criptate pentru %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: nu pot actualiza intrarea pentru grupul %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: nu pot actualiza fişierul de parole criptate de grupuri\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: nu pot actualiza fişierul de grupuri\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: nu pot şterge fişierul de parole criptate de grupuri\n"
@@ -1095,13 +1039,13 @@ msgstr "utilizare: id\n"
 msgid " groups="
 msgstr " grupuri="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, fuzzy, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1113,41 +1057,41 @@ msgstr ""
 "  -m, --md5\t\tfolosesc criptarea MD5 în loc de DES când parola\n"
 "\t\t\tfurnizată nu este criptată\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Nume utilizator       Port      De la          Cel mai recent\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Nume utilizator                Port      Cel mai recent\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Niciodată autentificat**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, fuzzy, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "utilizare: %s [-p] [nume]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h gazdă] [-f nume]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r gazdă\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Timp de autentificare nevalid\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1156,7 +1100,7 @@ msgstr ""
 "\n"
 "Sistem închis pentru întreţinere de rutină\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1165,7 +1109,7 @@ msgstr ""
 "\n"
 "[Fază de deconectare trecută -- autentificare permisă pentru root.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1174,17 +1118,17 @@ msgstr ""
 "\n"
 "Timp expirat pentru autentificare după %d secunde.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " în `%.100s' din `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " în `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1193,38 +1137,29 @@ msgstr ""
 "\n"
 "%s autentificat: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "autentificare: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "autentificare incorectă"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Avertisment: autentificare reactivată după închiderea temporară.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Ultima autentificare: %s în %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Ultima autentificare: %.19s în %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " de la %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Pornire rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1265,17 +1200,17 @@ msgstr "%s: eroare la adăugare înregistrare pentru "
 msgid "added %d entries, longest was %d\n"
 msgstr "adăugate %d intrări, cea mai lungă a fost %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Utilizare: %s [-vf] [-p|g|sp|sg] fişier\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Utilizare: %s [-vf] [-p|g|sp] fişier\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Utilizare: %s [-vf] [-p|g] fişier\n"
@@ -1295,16 +1230,16 @@ msgstr "utilizare: sg grup [[-c] comanda]\n"
 msgid "unknown uid: %u\n"
 msgstr "id utilizator necunoscut: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "id grup necunoscut: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Scuze.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "prea multe grupuri\n"
@@ -1314,91 +1249,91 @@ msgstr "prea multe grupuri\n"
 msgid "Usage: %s [input]\n"
 msgstr "Utilizare: %s [input]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: nu pot încuia /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: nu pot încuia fişierele, încercaţi mai târziu\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: nu pot deschide fişierele\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: linia %d: linie nevalidă\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: linia %d: nu pot crea ID grup\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: linia %d: nu pot crea ID utilizator\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: linia %d: nu pot găsi utilizatorul %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: linia %d: nu pot actualiza parola\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: linia %d: eşuare mkdir\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: linia %d: eşuare chown\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: linia %d: nu pot actualiza intrarea\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: eroare la actualizarea fişierelor\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, fuzzy, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "utilizare: %s [-f|-s] [nume]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x max] [-n min] [-w avertism] [-i inactiv] nume\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} nume\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Parola veche: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Parolă incorectă pentru `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1407,16 +1342,16 @@ msgstr ""
 "Introduceţi noua parolă (minimum %d, maximum %d caractere)\n"
 "Vă rog utilizaţi o combinaţie de litere mari şi mici şi numere.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Parola nouă: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Mai încercaţi.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1426,52 +1361,52 @@ msgstr ""
 "Avertisment: parolă slabă (mai introduceţi-o odată pentru a o folosi "
 "oricum).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Nu se potrivesc, mai încercaţi odată.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Parola pentru %s nu poate fi schimbată.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Scuze, parola pentru %s încă nu poate fi schimbată.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: nu mai este memorie\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: nu pot executa %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: depozitul %s nu este suportat\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Nu puteţi schimba consola pentru %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Schimbare parolă pentru %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Parola pentru %s este neschimbată.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Parolă schimbată.\n"
@@ -1486,49 +1421,49 @@ msgstr "Utilizare: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Utilizare: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "intrare nevalidă în fişierul de parole\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "intrare de parolă dublată\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "nume de utilizator nevalid '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "utilizatorul %s: fără grup %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "utilizatorul %s: directorul %s nu există\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "utilizatorul %s: programul %s nu există\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "intrare nevalidă în fişierul de parole criptate\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "intrare dublată de parolă criptată\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "nici o potrivire la intrările fişierului de conturi utilizatori\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "utilizatorul %s: ultima schimbare de parolă s-a făcut în viitor\n"
@@ -1548,17 +1483,17 @@ msgstr "%s: nu pot deschide fişierul de conturi utilizator\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: nu pot şterge intrarea de parolă criptată pentru %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: nu pot actualiza intrarea contului pentru %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: nu pot actualiza fişierul de parole criptate shadow\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: nu pot actualiza fişierul de conturi utilizator passwd\n"
@@ -1568,40 +1503,40 @@ msgstr "%s: nu pot actualiza fişierul de conturi utilizator passwd\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: nu pot actualiza intrarea pentru utilizatorul %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: nu pot şterge fişierul de parole criptate shadow\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Scuze."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: trebuie pornit de la un terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: eroare %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Identificator necunoscut: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Nu sunteţi autorizat pentru su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Introduceţi propria parolă.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1610,22 +1545,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorat)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Fără consolă\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Acces INTERZIS către su spre acest cont.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Autentificare cu parolă ocolită.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Vă rog introduceţi PROPRIA parolă pentru autentificare.\n"
@@ -1640,7 +1575,7 @@ msgstr "Fără fişier de conturi utilizatori passwd\n"
 msgid "No password entry for 'root'\n"
 msgstr "Fără intrare de parolă pentru 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1650,235 +1585,215 @@ msgstr ""
 "Apăsaţi ctrl-d pentru pornire normală,\n"
 "(sau daţi parola de root pentru depanarea sistemului):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Intrare în modul de întreţinere sistem\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: reconstruirea bazei de date de grupuri\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: reconstruirea bazei de date de parole criptate pentru grupuri\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: argument numeric nevalid `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: id grup necunoscut %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: grup necunoscut %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: nu pot crea noile fişiere implicite\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: nu pot deschide noile fişiere implicite\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: redenumesc: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: grupul `%s' este un grup NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: prea multe grupuri specificate (maximum %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, fuzzy, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "utilizare: %s\t[-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, fuzzy, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "\t\t[-d acasă] [-s consolă] [-c comentariu] [-m [-k şablon]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, fuzzy, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "\t\t[-f inactivă] [-e expiră ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, fuzzy, c-format
 msgid "               [-p passwd] name\n"
 msgstr "[-p passwd] nume\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, fuzzy, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       %s\t-D [-g grup] [-b base] [-s consolă]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: eroare la închiderea fişierului de grupuri\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: eroare la deschiderea fişierului de grupuri\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 "%s: eroare la închiderea fişierului de parole criptate pentru grupuri\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 "%s: eroare la deschiderea fişierului de parole criptate pentru grupuri\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s; id utilizator %u nu este unic\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: nu pot aloca un id utilizator unic\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: director de bază nevalid `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: comentariu nevalid `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: director personal nevalid `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: dată nevalidă `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: parole criptate cerute pentru -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s; parole criptate cerute pentru -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: fişier nevalid `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: consolă nevalidă `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: nume utilizator nevalid '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: nu pot rescrie fişierul de conturi utilizator\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: nu pot rescrie fişierul de parole criptate\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: nu pot încuia fişierul de conturi utilizatori\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: nu pot deschide fişierul de conturi utilizatori\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: nu pot încuia fişierul de parole criptate\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: nu pot deschide fişierul de parole criptate\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: eroare la adăugarea unei noi intrări de cont utilizator\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: eroare la actualizare intrare cont utilizator dbm\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: eroare la adăugarea unei noi intrări de parolă criptată\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: eroare la actualizarea intrării parolei criptate dbm\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: nu pot crea directorul %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: nu pot actualiza intrarea pentru utilizatorul %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: utilizatorul %s există\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1886,207 +1801,172 @@ msgstr ""
 "%s: grupul %s există - dacă vreţi să adăugaţi un utilizator la acest grup, "
 "folosiţi -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: avertisment: CREATE_HOME nu este suportat, vă rog folosiţi -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, fuzzy, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "utilizare: %s [-r] nume\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: eroare la actualizarea intrărilor de grupuri\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: nu pot actualiza intrarea grupurilor dbm\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: nu pot şterge intrarea grupurilor dbm\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: nu pot deschide fişierul de grupuri\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: nu pot deschide fişierul de parole criptate pentru grupuri\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: eroare la ştergerea intrării contului utilizator\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: eroare la ştergerea intrării parolei criptate\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: eroare la ştergerea contului utilizator dbm\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: eroare la ştergerea intrării parolei criptate dbm\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: utilizatorul %s este autentificat în acest moment\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s nu aparţine de %s, nu se şterge\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: avertisment: nu pot şterge "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: utilizatorul %s nu există\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: utilizatorul %s este un utilizator NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 "%s: nu se şterge directorul %s (s-ar şterge directorul personal al "
 "utilizatorului %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: eroare la ştergerea directorului %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, fuzzy, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "utilizare: %s\t[-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d acasă [-m]] [-s consolă] [-c comentariu] [-l nume_nou]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, fuzzy, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inactivă] [-e expiră ] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passwd] [-L|-U] nume\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: nu mai este memorie pentru update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: nu mai este memorie pentru update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: nu s-au dat semnalizatoare\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: parole criptate necesare pentru -e şi -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: id utilizator %lu nu este unic\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: eroare la schimbarea intrării contului utilizator\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: eroare la ştergerea intrării contului utilizator\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: eroare la adăugarea intrării contului utilizator dbm\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: eroare la ştergerea intrării contului utilizator dbm\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: eroare la ştergerea intrării parolei criptate\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: eroare la ştergerea intrării parolei criptate dbm\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: directorul %s există\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: nu pot crea %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: nu pot schimba proprietarul %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: nu pot redenumi directorul %s în %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: avertisment: %s nu este deţinut de către %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "eşuare în schimbarea proprietarului căsuţei poştale"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "eşuare în redenumirea căsuţei poştale"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2095,20 +1975,20 @@ msgstr ""
 "\n"
 "%s: %s este neschimbat\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "N-am putut încuia fişierul"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "N-am putut face o copie de rezervă"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: nu pot reface %s: %s (schimbările dvs. sunt în %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 2b461a8f29fa218675d33c524e1261bc1414a1fa..f1852b3dd985bc38204cf91dc5d37a01334f4efc 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 43cd157213eafeaa6dc6de6423c7ea259d0c895a..796680d1920712c78ca07adf53e6420adb2dcee4 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -2,20 +2,22 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 3.0.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2000-04-05 11:00:00+0200\n"
 "Last-Translator: Sergey Kubushin <ksi@ksi-linux.com>\n"
 "Language-Team: RU <ru@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Предупреждение: неизвестная группа %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Предупреждение: слишком много групп\n"
@@ -43,17 +45,17 @@ msgstr "  Свяжитесь с системным администраторо
 msgid "  Choose a new password.\n"
 msgstr "  Выберите новый пароль.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Срок действия вашего пароля истечет через %ld дней.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Срок действия вашего пароля заканчивается завтра.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Срок действия вашего пароля заканчивается сегодня.\n"
@@ -68,39 +70,28 @@ msgstr "Не могу поменять tty %s"
 msgid "Environment overflow\n"
 msgstr "Переполнение окружения\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Вы не можете изменить $%s\n"
 
-#: libmisc/failure.c:230
-#, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s с последнего логина, который был %s на %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "неудачи"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "неудача"
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s с последнего логина, который был %s на %s.\n"
+msgstr[1] "%d %s с последнего логина, который был %s на %s.\n"
+msgstr[2] "%d %s с последнего логина, который был %s на %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Слишком много логинов.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Password не дешифрует секретный ключ для %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Не могу установить секретный ключ для %s: запущен ли демон keyserv?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Для вас есть новая почта."
@@ -113,7 +104,7 @@ msgstr "Почты нет."
 msgid "You have mail."
 msgstr "Для вас есть почта."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Неверный пароль: %s.  "
@@ -128,20 +119,20 @@ msgstr "passwd: неудача pam_start(), ошибка %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Не могу перейти в \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Нет каталога, логинимся с HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Не могу исполнить %s"
@@ -156,36 +147,32 @@ msgstr "Неверный корневой каталог \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Не могу изменить корневой каталог на \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "неудача malloc(%d)\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Нет места для информации о конфигурации.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "ошибка конфигурации - неизвестная запись '%s' (сообщите администратору)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Пароль: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Пароль %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Эхо вкл.) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -194,154 +181,147 @@ msgstr ""
 "Запуск: chage [-l] [-m мин_дней] [-M макс_дней] [-W предупр.]\n"
 "              [-I неактивн.] [-E дата окончания] [-d посл_день] юзер\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, fuzzy, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Введите новое значение или return для значения по умолчанию\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Минимальный \"возраст\" пароля"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Максимальный \"возраст\" пароля"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Последнее изменение пароля (ГГГГ-ММ-ДД)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Предупреждения об окончании срока действия пароля"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Пароль неактивен"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Дата окончания срока действия аккаунта (ГГГГ-ММ-ДД)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Последнее изменение пароля (ГГГГ-ММ-ДД)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Никогда\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Пароль истекает:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Пароль дезактивируется:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Аккаунт истекает:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: не включайте \"l\" с другими опциями\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: доступ запрещен\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, fuzzy, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: ошибка добавления метода аутентикации\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: не могу открыть файл паролей\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: неизвестный пользователь %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, fuzzy, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: не могу заблокировать shadow-файл паролей\n"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, fuzzy, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: не могу открыть shadow-файл паролей\n"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Изменяем параметры времени действия для %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: ошибка изменения полей\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: не могу обновить файл паролей\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: не могу обновить shadow-файл паролей\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Ошибка обновления записи в базе данных паролей.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: не могу переписать shadow-файл паролей\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: не могу переписать файл паролей\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, fuzzy, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: не могу разблокировать файл\n"
@@ -360,117 +340,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Запуск: %s [-f полное_имя] [-r комната] [-w раб_тел] [-h дом_тел]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Полное имя"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tПолное имя: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Номер комнаты"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Рабочий телефон"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Дом. телефон"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Прочее"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Не могу определить вашего имени пользователя.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: не могу изменить пользователя `%s' на клиенте NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' - NIS-мастер для этого клиента.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: доступ запрещен\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Изменяем информацию о пользователе %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: неверное имя: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: неверный номер комнаты: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: неверный рабочий телефон: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: неверный дом. телефон: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" содержит недопустимые символы\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: слишком длинные поля\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Не могу изменить ID root'а.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Не могу заблокировать файл паролей; попробуйте позже.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Не могу открыть файл паролей.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s не найден в /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Ошибка обновления записи пароля.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Не могу записать изменения файла паролей.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Не могу разблокировать файл паролей.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -487,48 +472,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: не могу заблокировать файл паролей\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: не могу заблокировать файл shadow\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: не могу открыть файл shadow\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: строка %d: слишком длинная строка\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: строка %d: новый пароль отсутствует\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: строка %d: неизвестный пользователь %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: строка %d: не могу обновить запись пароля\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: обнаружена ошибка, изменения игнорируются\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: ошибка обновления файла shadow\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: ошибка обновления файла паролей\n"
@@ -538,26 +523,26 @@ msgstr "%s: ошибка обновления файла паролей\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Запуск: %s [-s шелл] [имя]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Шелл при входе"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Вы не можете изменить шелл для %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Изменяем шелл при входе для %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Неверная запись: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s - неверный шелл.\n"
@@ -567,12 +552,12 @@ msgstr "%s - неверный шелл.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Запуск: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: ПРЕДУПРЕЖДЕНИЕ! Должно быть set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: неизвестный пользователь\n"
@@ -586,320 +571,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Имя        Неудач    Максимум Последн.\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s на %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds ост.]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds lock]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Неизвестный пользователь: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Запуск: %s [-r|-R] группа\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "        %s [-a юзер] группа\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "        %s [-d юзер] группа\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "        %s [-A юзер,...] [-M юзер,...] группа\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "        %s [-M юзер,...] группа\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: для -A требуются shadow-пароли групп\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Кто вы?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "неизвестная группа: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Добавляю пользователя %s в группу %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Удаляю пользователя %s из группы %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: неизвестный член %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Не tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Изменяем пароль для группы %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Новый пароль: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Еще раз новый пароль: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Они не совпадают; попробуйте снова"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Попробуйте позже\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: не могу заблокировать\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: не могу заблокировать shadow\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: не могу открыть файл\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: не могу обновить запись\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: не могу обновить shadow-запись\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: не могу переписать файл\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: не могу переписать файл shadow\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: не могу разблокировать файл\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: не могу обновить файлы базы данных\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: не могу обновить shadow-файлы базы данных\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Запуск: groupadd [-g gid [-o]] [-f] группа\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: ошибка добавления новой записи группы\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: не могу добавить новую запись группы в базу данных\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: имя %s не уникально\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, fuzzy, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %ld не уникален\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: не могу получить уникальный gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s недопустимо как имя группы\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: неверная группа %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O требует ИМЯ=ЗНАЧЕНИЕ\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: не могу переписать файл групп\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: не могу переписать shadow-файл групп\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: не могу заблокировать файл групп\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: не могу открыть файл групп\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: не могу заблокировать shadow-файл групп\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: не могу открыть shadow-файл групп\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: группа %s уже существует\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Запуск: groupdel группа\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: ошибка удаления записи группы\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: ошибка удаления записи группы из базы данных\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: ошибка удаления shadow-записи группы\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: ошибка удаления shadow-записи группы из базы данных\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: не могу удалить первичную группу пользователя.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: группа %s не существует\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: группа %s - группа NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s - NIS-мастер\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Запуск: groupmod [-g gid [-o]] [-n имя] группа\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s не найден в /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: не могу добавить новую shadow-запись группы в базу данных\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, fuzzy, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %ld - не уникальный gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s - не уникальное имя\n"
@@ -909,110 +859,105 @@ msgstr "%s: %s - не уникальное имя\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Запуск: %s [-r] [-s] [группа [shadow-группа]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Запуск: %s [-r] [-s] [группа]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Нет"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: не могу заблокировать файл %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: не могу открыть файл %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "неверная запись файла групп\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "удалить строку `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "дублирующаяся запись группы\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "неверное имя группы `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "группа %s: нет пользователя %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "удалить члена `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "неверная shadow-запись в файле групп\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "дублирующаяся shadow-запись в файле групп\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "соответствующей записи в файле групп нет\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "shadow-группа %s: нет административного пользователя %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "удалить административного члена `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "shadow-группа %s: нет пользователя %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: не могу обновить файл %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: файлы были обновлены; запустите mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: файлы были обновлены\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: изменений нет\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: файлы были обновлены\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1028,37 +973,37 @@ msgstr "%s: не могу открыть файл групп\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: не могу заблокировать shadow-файл групп\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: не могу открыть shadow-файл групп\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: не могу удалить shadow-группу %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: не могу обновить shadow-запись для %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: не могу обновить запись для группы %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: не могу обновить shadow-файл групп\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: не могу обновить файл групп\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: не могу удалить shadow-файл групп\n"
@@ -1078,52 +1023,52 @@ msgstr "Запуск: id\n"
 msgid " groups="
 msgstr " группы="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Имя              Порт     Откуда           Последн.\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Имя                     Порт     Последн.\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Никогда не логинился***"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Запуск: %s [-p] [имя]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "        %s [-p] [-h хост] [-f имя]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "        %s [-p] -r хост\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Недопустимое время для логина\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1132,7 +1077,7 @@ msgstr ""
 "\n"
 "Система закрыта на плановое обслуживание\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1141,7 +1086,7 @@ msgstr ""
 "\n"
 "[Рассоединение пропущено -- root'овый логин разрешен.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1150,17 +1095,17 @@ msgstr ""
 "\n"
 "Таймаут логина в течение %d секунд.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " на `%.100s' с `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " на `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1169,38 +1114,29 @@ msgstr ""
 "\n"
 "%s login: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Неудачная попытка"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Предупреждение: логины снова открыты после временного закрытия.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Последний логин: %s на %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Последний логин: %.19s на %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, fuzzy, c-format
 msgid " from %.*s"
 msgstr " с %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Запускаю rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1241,17 +1177,17 @@ msgstr "%s: ошибка добавления записи для "
 msgid "added %d entries, longest was %d\n"
 msgstr "добавлено %d записей, самая длинная - %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Запуск: %s [-vf] [-p|g|sp|sg] файл\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Запуск: %s [-vf] [-p|g|sp] файл\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Запуск: %s [-vf] [-p|g] файл\n"
@@ -1271,16 +1207,16 @@ msgstr "Запуск: sg группа [[-c] команда]\n"
 msgid "unknown uid: %u\n"
 msgstr "неизвестный uid: %d\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, fuzzy, c-format
 msgid "unknown gid: %lu\n"
 msgstr "неизвестный gid: %ld\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Извините.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "слишком много групп\n"
@@ -1290,91 +1226,91 @@ msgstr "слишком много групп\n"
 msgid "Usage: %s [input]\n"
 msgstr "Запуск: %s [ввод]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: не могу заблокировать /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: не могу заблокировать файлы; попробуйте позже\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: не могу открыть файлы\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: строка %d: неверная строка\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: строка %d: не могу создать GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: строка %d: не могу создать UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: строка %d: не могу найти пользователя %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: строка %d: не могу обновить пароль\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: строка %d: неудача mkdir\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: строка %d: неудача chown\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: строка %d: не могу обновить запись\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: ошибка обновления файлов\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Запуск: %s [-f|-s] [имя]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "        %s [-x макс] [-n мин] [-w предупр] [-i неакт] имя\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "        %s {-l|-u|-d|-S|-e} имя\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Старый пароль: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Неверный пароль для `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1383,16 +1319,16 @@ msgstr ""
 "Введите новый пароль (минимум %d, максимум %d символов)\n"
 "Используйте комбинацию больших и маленьких латинских букв и цифр.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Новый пароль: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Попробуйте еще раз.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1402,52 +1338,52 @@ msgstr ""
 "Предупреждение: слабый пароль (введите его еще раз если все-таки хотите "
 "его).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Они не совпадают; попробуйте еще раз.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Пароль для %s изменить нельзя.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Извините, пароль для %s пока изменить нельзя.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: нехватка памяти\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Не могу исполнить %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: хранилище %s не поддерживается\n"
 
-#: src/passwd.c:914
-#, c-format
-msgid "You may not change the password for %s.\n"
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Вы не можете изменить пароль для %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Изменяем пароль для %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Пароль для %s НЕ изменен.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Пароль изменен.\n"
@@ -1462,49 +1398,49 @@ msgstr "Запуск: %s [-q] [-r] [-s] [пароль [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Запуск: %s [-q] [-r] [-s] [пароль]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "неверная запись в файле паролей\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "дублирующаяся запись пароля\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, fuzzy, c-format
 msgid "invalid user name '%s'\n"
 msgstr "неверное имя пользователя `%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, fuzzy, c-format
 msgid "user %s: no group %u\n"
 msgstr "пользователь %s: нет группы %d\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "пользователь %s: каталог %s не существует\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "пользователь %s: программа %s не существует\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "неверная запись в shadow-файле паролей\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "дублирующаяся запись в shadow-файле паролей\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "соответствующей записи в файле паролей нет\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "пользователь %s: последнее изменение пароля в будущем\n"
@@ -1524,17 +1460,17 @@ msgstr "%s: не могу открыть файл паролей\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: не могу удалить shadow-запись для %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: не могу обновить запись пароля для %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: не могу обновить shadow-файл\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: не могу обновить файл паролей\n"
@@ -1544,40 +1480,40 @@ msgstr "%s: не могу обновить файл паролей\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: не могу обновить запись для пользователя %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: не могу удалить shadow-файл паролей\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Извините."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: должно быть запущено с терминала\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: ошибка %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Неизвестный id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Вам не разрешено делать su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Введите ваш собственный пароль.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1586,22 +1522,22 @@ msgstr ""
 "%s: %s\n"
 "(Игнорировано)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Нет шелла\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Доступ к su с этого аккаунта ЗАПРЕЩЕН.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Аутентикация по паролю пропущена.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Введите ваш СОБСТВЕННЫЙ пароль для аутентикации.\n"
@@ -1616,7 +1552,7 @@ msgstr "Нет файла паролей\n"
 msgid "No password entry for 'root'\n"
 msgstr "Нет записи пароля для 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1626,437 +1562,382 @@ msgstr ""
 "Введите control-d для продолжения нормальной загрузки,\n"
 "(или пароль root'а для обслуживания системы):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Вход в режим обслуживания системы\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: перестроение базы данных групп\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: перестроение базы данных shadow-групп\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: неверный числовой аргумент `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: неизвестный gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: неизвестная группа %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: не могу создать новый файл умолчаний\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, fuzzy, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: не могу создать новый файл умолчаний\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: переименование: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: группа `%s' - группа NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: задано слишком много групп (макс. %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Запуск: useradd [-u uid [-o]] [-g группа] [-G группа,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "                [-d дом.] [-s шелл] [-c коммент.] [-m [-k шаблоны]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                [-f неактивн.] [-e истекает]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                [-p пароль] имя\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "        useradd -D [-g группа] [-b база] [-s шелл]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: ошибка блокировки файла групп\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: ошибка открытия файла групп\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: ошибка блокировки shadow-файла групп\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: ошибка открытия shadow-файла групп\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, fuzzy, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %d не уникален\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: не могу получить уникальный uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: неверный базовый каталог `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: неверный комментарий `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: неверный домашний каталог `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: неверная дата `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: для -e требуются shadow-пароли\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: для -f требуются shadow-пароли\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: неверное поле `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: неверный шелл `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, fuzzy, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: неверное имя пользователя `%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: не могу переписать файл паролей\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: не могу переписать shadow-файл паролей\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: не могу заблокировать файл паролей\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: не могу открыть файл паролей\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: не могу заблокировать shadow-файл паролей\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: не могу открыть shadow-файл паролей\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: ошибка добавления новой записи пароля\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: ошибка обновления записи базы данных паролей\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: ошибка добавления новой shadow-записи пароля\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: ошибка обновления shadow-записи базы данных паролей\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: не могу создать каталог %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: не могу обновить запись для пользователя %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: пользователь %s уже существует\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: предупреждение: CREATE_HOME не поддерживается, используйте -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Запуск: %s [-r] имя\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: ошибка обновления записи группы\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: не могу обновить запись базы данных групп\n"
-
-#: src/userdel.c:214
-#, fuzzy, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: не могу обновить запись базы данных групп\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: не могу открыть файл групп\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: не могу открыть shadow-файл групп\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: ошибка удаления записи пароля\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: ошибка удаления shadow-записи пароля\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: ошибка удаления записи базы данных паролей\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: ошибка удаления shadow-записи базы данных паролей\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: пользователь %s в настоящее время в системе\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s не принадлежит %s, не удаляю\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: предупреждение: не могу удалить "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: пользователь %s не существует\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: пользователь %s - пользователь NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: не удаляю каталог %s (предполагалось удаление каталога юзера %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: ошибка удаления каталога %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Запуск: %s\t[-u uid [-o]] [-g группа] [-G группа,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d дом. [-m]] [-s шелл] [-c коммент.t] [-l новое_имя]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f неактивн.] [-e истекает] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p пароль] [-L|-U] имя\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: нехватка памяти в update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: нехватка памяти в update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: опции не заданы\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: для -e и -f требуются shadow-пароли\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, fuzzy, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %ld не уникален\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: ошибка изменения записи пароля\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: ошибка удаления записи пароля\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: ошибка добавления записи пароля\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: ошибка удаления записи базы данных паролей\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: ошибка удаления shadow-записи пароля\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: ошибка удаления shadow-записи базы данных паролей\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: каталог %s уже существует\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: не могу создать %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: не могу сделать chown %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: не могу переименовать каталог %s в %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: предупреждение %s не принадлежит %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "неудача изменения принадлежности почтового ящика"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "неудача переименования почтового ящика"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2065,20 +1946,20 @@ msgstr ""
 "\n"
 "%s: %s НЕ изменено\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Не могу заблокировать файл"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Не могу создать резервную копию"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: не могу восстановить %s: %s (ваши изменения в %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 5d239180d5eb217717af9ca666b7accb71242035..507fcde7fcaf49c9adae0e53e42db388547752b5 100644 (file)
@@ -8,20 +8,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr ""
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr ""
@@ -49,17 +50,17 @@ msgstr ""
 msgid "  Choose a new password.\n"
 msgstr ""
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr ""
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr ""
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr ""
@@ -74,39 +75,27 @@ msgstr ""
 msgid "Environment overflow\n"
 msgstr ""
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr ""
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr ""
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr ""
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr ""
@@ -119,7 +108,7 @@ msgstr ""
 msgid "You have mail."
 msgstr ""
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr ""
@@ -134,20 +123,20 @@ msgstr ""
 msgid "passwd: %s\n"
 msgstr ""
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr ""
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr ""
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr ""
@@ -162,189 +151,178 @@ msgstr ""
 msgid "Can't change root directory to \"%s\"\n"
 msgstr ""
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr ""
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr ""
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr ""
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr ""
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "             [-I inactive] [-E expire] [-d last_day] user\n"
 msgstr ""
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr ""
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr ""
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr ""
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr ""
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr ""
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr ""
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr ""
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr ""
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr ""
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr ""
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr ""
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr ""
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr ""
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr ""
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr ""
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr ""
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr ""
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr ""
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr ""
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr ""
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr ""
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr ""
@@ -361,117 +339,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr ""
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr ""
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr ""
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr ""
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr ""
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr ""
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr ""
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr ""
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr ""
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr ""
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr ""
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr ""
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr ""
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr ""
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr ""
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr ""
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr ""
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr ""
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr ""
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -488,48 +471,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr ""
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr ""
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr ""
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr ""
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr ""
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr ""
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr ""
@@ -539,26 +522,26 @@ msgstr ""
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr ""
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr ""
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr ""
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr ""
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr ""
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr ""
@@ -568,12 +551,12 @@ msgstr ""
 msgid "Usage: expiry {-f|-c}\n"
 msgstr ""
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr ""
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr ""
@@ -587,320 +570,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr ""
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
+msgid "Login       Failures Maximum Latest                   On\n"
 msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr ""
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr ""
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr ""
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr ""
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr ""
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr ""
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr ""
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr ""
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr ""
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr ""
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr ""
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr ""
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr ""
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr ""
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr ""
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr ""
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr ""
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr ""
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr ""
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr ""
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr ""
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr ""
 
-#: 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr ""
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr ""
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr ""
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr ""
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr ""
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr ""
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr ""
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr ""
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr ""
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr ""
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr ""
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr ""
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr ""
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr ""
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr ""
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr ""
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr ""
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr ""
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr ""
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr ""
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr ""
@@ -910,110 +858,105 @@ msgstr ""
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr ""
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr ""
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr ""
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr ""
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr ""
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr ""
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr ""
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr ""
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr ""
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr ""
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr ""
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr ""
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr ""
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr ""
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr ""
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
+msgid "%s: the files have been updated\n"
 msgstr ""
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr ""
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr ""
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1029,37 +972,37 @@ msgstr ""
 msgid "%s: can't lock shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr ""
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr ""
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr ""
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr ""
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr ""
@@ -1079,121 +1022,112 @@ msgstr ""
 msgid " groups="
 msgstr ""
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr ""
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr ""
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr ""
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr ""
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr ""
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr ""
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr ""
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
 "System closed for routine maintenance\n"
 msgstr ""
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr ""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr ""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 
-#: src/login.c:819
-msgid "login: "
-msgstr ""
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr ""
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr ""
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr ""
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr ""
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr ""
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1234,17 +1168,17 @@ msgstr ""
 msgid "added %d entries, longest was %d\n"
 msgstr ""
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr ""
@@ -1264,16 +1198,16 @@ msgstr ""
 msgid "unknown uid: %u\n"
 msgstr ""
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr ""
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr ""
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr ""
@@ -1283,159 +1217,159 @@ msgstr ""
 msgid "Usage: %s [input]\n"
 msgstr ""
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr ""
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr ""
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr ""
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr ""
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr ""
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr ""
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr ""
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr ""
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr ""
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr ""
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr ""
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr ""
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr ""
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr ""
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr ""
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr ""
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr ""
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr ""
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr ""
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr ""
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr ""
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr ""
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr ""
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr ""
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr ""
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr ""
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr ""
@@ -1450,49 +1384,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr ""
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr ""
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr ""
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr ""
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr ""
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr ""
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr ""
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr ""
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1512,17 +1446,17 @@ msgstr ""
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr ""
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr ""
@@ -1532,62 +1466,62 @@ msgstr ""
 msgid "%s: can't update entry for user %s\n"
 msgstr ""
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr ""
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr ""
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr ""
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr ""
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr ""
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr ""
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr ""
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
 "(Ignored)\n"
 msgstr ""
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr ""
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr ""
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr ""
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr ""
@@ -1602,464 +1536,409 @@ msgstr ""
 msgid "No password entry for 'root'\n"
 msgstr ""
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr ""
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr ""
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr ""
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr ""
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr ""
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr ""
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr ""
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr ""
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr ""
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr ""
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr ""
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr ""
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr ""
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr ""
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr ""
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr ""
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr ""
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr ""
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr ""
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr ""
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr ""
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr ""
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr ""
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr ""
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr ""
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ""
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr ""
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr ""
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr ""
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr ""
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr ""
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr ""
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr ""
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr ""
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr ""
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr ""
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr ""
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr ""
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr ""
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr ""
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr ""
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr ""
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr ""
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr ""
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr ""
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr ""
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr ""
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr ""
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr ""
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr ""
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
 "%s: %s is unchanged\n"
 msgstr ""
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr ""
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr ""
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 573f182692eb9568e2b385aee6298f0d38d0c1db..5b0157f71755832a7ae913b3f17397df29ecec32 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index d1a28b480161c8cde078eda9fe81153f4e001d36..be2adb4951de9c0642930f0ded0d94a9749d6465 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -2,22 +2,23 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow\n"
+"Project-Id-Version: shadow 4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2004-05-18 06:30+0200\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-25 11:14+0200\n"
 "Last-Translator: Peter KLFMANiK Mann <Peter.Mann@tuke.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural= (n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Varovanie: skupina %s je neznáma\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Varovanie: príliš mnoho skupín\n"
@@ -45,17 +46,17 @@ msgstr "  Kontaktujte správcu systému.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Zvoľte nové heslo.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Za %ld dní uplynie platnosť vášho hesla.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Zajtra uplynie platnosť vášho hesla.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Dnes uplynie platnosť vášho hesla.\n"
@@ -70,39 +71,34 @@ msgstr "Nedá sa zmeniť TTY %s"
 msgid "Environment overflow\n"
 msgstr "Preplnenie prostredia\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Nemôžete zmeniť $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s od posledného prihlásenia.  Posledné bolo %s na %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "zlyhaní"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "zlyhanie"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d chybný pokus o prihlásenie od posledného prihlásenia.\n"
+"Bol to %s na %s.\n"
+msgstr[1] ""
+"%d chybné pokusy o prihlásenie od posledného prihlásenia.\n"
+"Posledné bolo %s na %s.\n"
+msgstr[2] ""
+"%d chybných pokusov o prihlásenie od posledného prihlásenia.\n"
+"Posledné bolo %s na %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Príliš mnoho prihlásení.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Týmto heslom sa nedá dešifrovať tajný kľúč pre %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Nedá sa nastaviť tajný kľúč pre %s. Je spustený keyserv démon?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Máte novú poštu."
@@ -115,7 +111,7 @@ msgstr "Nemáte žiadnu poštu."
 msgid "You have mail."
 msgstr "Máte poštu."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Heslo %s je chybné. "
@@ -130,20 +126,20 @@ msgstr "passwd: volanie pam_start() zlyhalo, chyba %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr "passwd: heslo bolo úspešne zmenené\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Aktuálny adresár sa nedá nastaviť na \"%s\".\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Žiadny adresár, nastavujem HOME na /"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "%s sa nedá spustiť."
@@ -158,36 +154,32 @@ msgstr "Chybný koreňový adresár \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Koreňový adresár sa nedá zmeniť na \"%s\".\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "volanie malloc(%d) zlyhalo\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Nemôžem vyhradiť dostatok miesta pre konfiguračné údaje.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "konfiguračná chyba - neznámy predmet '%s' (informujte správcu systému)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Heslo: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Heslo používateľa %s:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo zapnuté)"
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -196,156 +188,149 @@ msgstr ""
 "Použitie: chage [-l] [-m min_dní] [-M max_dní] [-W varovanie]\n"
 "                [-I nečinnosť] [-E uplynutie] [-d posledný_deň] používateľ\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 "Zadajte novú hodnotu alebo stlačte ENTER pre použitie predvolenej hodnoty\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minimálna doba platnosti hesla"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Maximálna doba platnosti hesla"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Posledná zmena hesla (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Varovanie o uplynutí doby platnosti hesla"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Nečinné heslo"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Uplynutie platnosti účtu (YYYY-MM-DD)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "Posledná zmena hesla (YYYY-MM-DD)"
+msgstr "Posledná zmena hesla\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
-msgstr "Nikdy\n"
+msgstr "nikdy\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "Platnosť hesla uplynie:\t"
+msgstr "Platnosť hesla uplynie\t\t\t\t\t: "
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "Nečinné heslo:\t"
+msgstr "Nečinné heslo\t\t\t\t\t: "
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Platnosť účtu uplynie:\t"
+msgstr "Platnosť účtu uplynie\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Minimálny počet dní medzi zmenami hesla\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Maximálny počet dní medzi zmenami hesla\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "Počet dní upozornenia pred vypršaním platnosti hesla\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: nepoužívajte \"l\" s ostatnými príznakmi\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: odmietnutý prístup\n"
+msgstr "%s: odmietnutý prístup.\n"
 
 #  c-format
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM autentifikácia zlyhala\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: súbor s heslami sa nedá otvoriť\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: používateľ %s je neznámy\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: súbor s tieňovými heslami sa nedá zamknúť"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: súbor s tieňovými heslami sa nedá otvoriť"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Mením časové informácie pre používateľa %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: chyba pri zmene položiek\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: súbor s heslami sa nedá aktualizovaťt\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá aktualizovať\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Chyba pri aktualizácii DBM databázy hesiel.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá prepísať\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: súbor s heslami sa nedá prepísať\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM metóda chauthok zlyhala\n"
@@ -368,117 +353,122 @@ msgstr ""
 "telefón_do_zamestnania]\n"
 "\t[-h telefón_domov]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Celé meno"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tCelé meno: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Číslo miestnosti"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Telefón do zamestnania"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Telefón domov"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Ostatné"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: vaše používateľské meno sa nedá zistiť.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: na NIC klientovi sa nedá zmeniť používateľ `%s'.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' je hlavným NIS serverom pre tohto klienta\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Odmietnutý prístup.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Mením informácie o používateľovi %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: chybné meno: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: chybné číslo miestnosti: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: telefónne číslo do zamestnania (\"%s\") je chybné\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: telefónne číslo domov (\"%s\") je chybné\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" obsahuje chybné znaky\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: položka je príliš dlhá\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "ID sa nedá zmeniť na root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Nedá sa zamknúť súbor s heslami; skúste to neskôr.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Súbor s heslami sa nedá otvoriť.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s sa nenachádza v /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Chyba pri aktualizácii záznamu hesla.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Nedajú sa vykonať zmeny v súbore s heslami.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Súbor s heslami sa nedá odomknúť.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -489,54 +479,61 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"Použitie: chpasswd [voľby]\n"
+"\n"
+"Voľby:\n"
+"  -e, --encrypted\tzadané heslá sú zakódované\n"
+"  -h, --help\t\tvypíše túto nápovedu a ukončí sa\n"
+"  -m, --md5\t\tpoužije MD5 kódovanie namiesto DES, ak zadané\n"
+"\t\t\theslá nie sú zakódované\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
 msgstr "%s: súbor s heslami sa nedá zamknúť\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá zamknúť\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá otvoriť\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: riadok %d je príliš dlhý\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: riadok %d: chýba nové heslo\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: riadok %d: používateľ %s je neznámy\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: riadok %d: záznam hesla sa nedá aktualizovať\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: zistená chyba, zmeny budú zamietnuté\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: chyba pri aktualizácii súboru s tieňovými heslami\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: chyba pri aktualizácii súboru s heslami\n"
@@ -546,26 +543,26 @@ msgstr "%s: chyba pri aktualizácii súboru s heslami\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Použitie: %s [-s shell] [meno]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Predvolený shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Nemôžete zmeniť shell pre %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Mením predvolený shell pre %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Chybná položka: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "Shell %s je neplatný.\n"
@@ -575,12 +572,12 @@ msgstr "Shell %s je neplatný.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Použitie: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: VAROVANIE! Musí mať oprávnenie root-a!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: neznámy používateľ\n"
@@ -594,323 +591,298 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
+"Použitie: faillog [voľby]\n"
+"\n"
+"Voľby:\n"
+"  -a, --all\t\t\tzobrazí faillog záznamy všetkých používateľov\n"
+"  -h, --help\t\t\tzobrazí túto nápovedu a ukončí sa\n"
+"  -l, --lock-time SEC\t\tpo chybnom prihlásení zablokuje účet na SEC sekúnd\n"
+"  -m, --maximum MAX\t\tnastaví maximálny počet chybných prihlásení na MAX\n"
+"  -r, --reset\t\t\tvynuluje počítadlá chybných prihlásení\n"
+"  -t, --time DAYS\t\tzobrazí faillog záznamy nie staršie ako DAYS dní\n"
+"  -u, --user LOGIN\t\tzobrazí faillog záznam alebo nastaví počítadlá "
+"chybných prihlásení\n"
+"\t\t\t\ta limitov (iba s použitím volieb -r, -m or -l)\n"
+"\t\t\t\tpre používateľa s loginom LOGIN\n"
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Meno       Chýb      Maximum  Posledný\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s na %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Login       Chybné   Najviac Posledné                 Na\n"
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds ostalo]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds zámok]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Používateľ %s je neznámy.\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Použitie: %s [-r|-R] skupina\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a používateľ] skupina\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d používateľ] skupina\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A používateľ,...] [-M používateľ,...] skupina\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M používateľ,...] skupina\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: prepínač -A funguje iba s tieňovými heslami skupín\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Kto ste?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "skupina %s je neznáma\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Pridávam používateľa %s do skupiny %s.\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Odstraňujem používateľa %s zo skupiny %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: člen %s je neznámy\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Nejedná sa o tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Mením heslo skupiny %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nové heslo: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Zadajte znova nové heslo: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Nezhodujú sa; skúste to znova"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Skúste to neskôr\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: nedá sa získať zámok\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: nedá sa získať zámok pre súbor s tieňovými heslami\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: nedá sa otvoriť súbor\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: položka sa nedá aktualizovať\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: položka súboru s tieňovými heslami sa nedá aktualizovať\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: súbor sa nedá prepísať\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá prepísať\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: súbor sa nedá odomknúť\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: súbory s DBM databázami sa nedajú aktualizovať\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: súbory s DBM databázami tieňových hesiel sa nedajú aktualizovať\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Použitie: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: chyba pri pridávaní položky do súboru so skupinami\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: nedá sa pridať nová položka do súboru s dbm databázami skupín\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: meno %s nie je jedinečné\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: uid %u nie je jedinečné\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: nedá sa vytvoriť jedinečné gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s nie je platným názvom skupiny\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: chybná skupina %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: prepínač -O vyžaduje argument typu MENO=HODNOTA\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: súbor so skupinami sa nedá prepísať\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá prepísať\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: súbor so skupinami sa nedá zamknúť\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: súbor so skupinami sa nedá otvoriť\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá zamknúť\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá otvoriť\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: skupina %s už existuje\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Použitie: groupdel skupina\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru so skupinami\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: chyba pri odstraňovaní položky zo súboru s dbm databázou skupín\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru s tieňovými skupinami\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-"%s: chyba pri odstraňovaní položky zo súboru s dbm databázou tieňových "
-"skupín\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: primárna skupina používateľa sa nedá odstrániť\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: skupina %s neexistuje\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: skupina %s je NIS skupinou\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s je hlavným NIS serverom\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Použitie: groupmod [-g gid [-o]] [-n meno] skupina\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s sa nenachádza v /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-"%s: nedá sa pridať položka do súboru s dbm databázou tieňových skupín\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: gid %u nie je jedinečné\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: meno %s nie je jedinečné\n"
@@ -921,110 +893,105 @@ msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 "Použitie: %s [-r] [-s] [súbor_so_skupinami [súbor_s_tieňovými_skupinami]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Použitie: %s [-r] [-s] [súbor_so_skupinami]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nie"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s a -r nie sú zlučiteľné\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: súbor %s sa nedá zamknúť\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: súbor %s sa nedá otvoriť\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "chybná položka v súbore so skupinami\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "zmazať riadok `%s'?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "v súbore so skupinami sa vyskytuje zdvojená položka\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "meno skupiny `%s' je chybné\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "skupina %s: používateľ %s neexistuje\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "zmazať člena `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "chybná položka v súbore s tieňovými skupinami\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "v súbore s tieňovými skupinami sa vyskytuje zdvojená položka\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "v súbore so skupinami neexistuje zodpovedajúca položka\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "tieňová skupina %s: administrátor %s neexistuje\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "zmazať administrátora `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "tieňová skupina %s: používateľ %s neexistuje\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: súbor %s sa nedá aktualizovať\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: súbory boli aktualizované; spusťte mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: súbory boli aktualizované\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: bezo zmien\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: súbory boli aktualizované\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1040,37 +1007,37 @@ msgstr "%s: súbor so skupinami sa nedá otvoriť\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá zamknúť\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá otvoriť\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: položka tieňovej skupiny %s sa nedá odstrániť\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: položka %s súboru s tieňovými heslami sa nedá aktualizovať\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: položka skupiny %s sa nedá odstrániť\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá aktualizovať\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: súbor s heslami sa nedá aktualizovať\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: súbor s tieňovými heslami skupín sa nedá zmazať\n"
@@ -1090,52 +1057,59 @@ msgstr "Použitie: id\n"
 msgid " groups="
 msgstr " skupiny="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"Použitie: lastlog [voľby]\n"
+"\n"
+"Voľby:\n"
+"  -u, --login LOGIN\tvypíše posledné prihlásenia používateľa uvedeného ako "
+"LOGIN\n"
+"  -h, --help\t\tzobrazí túto nápovedu a ukončí sa\n"
+"  -t, --time DAYS\tvypíše posledné prihlásenia nie staršie ako DAYS dní\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Používateľ       Port     Z                Naposledy\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Používateľ              Port     Naposledy\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Nebol nikdy prihlásený**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Použitie: %s [-p] [meno]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "          %s [-p] [-h počítač] [-f meno]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "          %s [-p] -r počítač\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Chybný čas prihlásenia\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1144,7 +1118,7 @@ msgstr ""
 "\n"
 "Systém je uzavretý kvôli pravidelnej údržbe.\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1153,7 +1127,7 @@ msgstr ""
 "\n"
 "[Odpojenie vynechané -- používateľ root sa môže prihlásiť.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1162,17 +1136,17 @@ msgstr ""
 "\n"
 "Uplynul časový limit (%d sekúnd) na prihlásenie.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " na `%.100s' z `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " na `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1181,38 +1155,29 @@ msgstr ""
 "\n"
 "Prihlasovacie meno na %s: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "Prihlasovacie meno: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Chybné prihlásenie"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Varovanie: po dočasnom zákaze je prihlasovánie opäť povolené.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Posledné prihlásenie: %s na %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Posledné prihlásenie: %.19s na %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " z %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Spúšťam rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1229,9 +1194,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: súbory s DBM databázami pre %s sa nedajú otvoriť\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: začiatok s "
+msgstr "%s: riadok začínajúci %.16s... je príliš dlhý\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1239,31 +1204,31 @@ msgid "%s: error parsing line \"%s\"\n"
 msgstr "%s: chyba pri spracovaní riadku \"%s\"\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "pridávam záznam pre meno"
+msgstr "pridávam záznam pre meno %s\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: chyba pri pridávaní záznamu pre meno"
+msgstr "%s: chyba pri pridávaní záznamu pre %s\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
 msgstr "počet pridaných položiek: %d; dĺžka najväčšej: %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Použitie: %s [-vf] [-p|g|sp|sg] súbor\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Použitie: %s [-vf] [-p|g|sp] súbor\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Použitie: %s [-vf] [-p|g] súbor\n"
@@ -1283,16 +1248,16 @@ msgstr "Použitie: sg skupina [[-c] príkaz]\n"
 msgid "unknown uid: %u\n"
 msgstr "uid %u je neznáme\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "gid %lu je neznáme\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Ľutujem.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "príliš mnoho skupín\n"
@@ -1302,91 +1267,91 @@ msgstr "príliš mnoho skupín\n"
 msgid "Usage: %s [input]\n"
 msgstr "Použitie: %s [vstup]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: súbor /etc/passwd sa nedá zamknúť\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: súbory sa nedajú zamknúť, skúste to neskôr znova\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: súbory sa nedajú otvoriť\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: riadok %d: chybný riadok\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: riadok %d: nedá sa vytvoriť GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: riadok %d: nedá sa vytvoriť UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: riadok %d: nedá sa nájsť používateľ %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: riadok %d: heslo sa nedá aktualizovať\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: riadok %d: volanie mkdir zlyhalo\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: riadok %d: volanie chown zlyhalo\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: riadok %d: položka sa nedá aktualizovať\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: chyba pri aktualizácii súborov\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Použitie: %s [-f|-s] [meno]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "          %s [-x max] [-n min] [-w varovanie] [-i nečinnosť] meno\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "          %s {-l|-u|-d|-S|-e} meno\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Staré heslo: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Chybné heslo pre `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1395,16 +1360,16 @@ msgstr ""
 "Zadajte nové heslo (počet znakov v intervale %d až %d).\n"
 "Použijte kombináciu veľkých a malých písmen s číslicami.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nové heslo: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Skúste to znova.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1413,52 +1378,52 @@ msgstr ""
 "\n"
 "Varovanie: slabé heslo (ak ho chcete naozaj použiť, znova ho zadajte).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Nezhodujú sa; skúste to znova.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Heslo pre %s sa nedá zmeniť.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Ľutujem, ale heslo pre %s sa ešte nedá zmeniť.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: nedostatok pamäti\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: %s sa nedá spustiť"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: skladisko %s nie je podporované\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Nemôžete meniť heslo pre %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Nemôžete prezerať alebo meniť informácie o hesle pre %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Mením heslo používateľovi %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Heslo používateľa %s nebolo zmenené.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Heslo bolo zmenené.\n"
@@ -1474,49 +1439,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Použitie: %s [-q] [-r] [-s] [súbor_s_heslami]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "chybná položka v súbore s heslami\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "duplikovaná položka v súbore s heslami\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "chybné používateľské meno '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "používateľ %s: skupina %u neexistuje\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "používateľ %s: adresár %s neexistuje\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "používateľ %s: program %s neexistuje\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "chybná položka v súbore s tieňovými heslami\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "duplikovaná položka v súbore s tieňovými heslami\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "chýba položka v súbore s heslami\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "používateľ %s: posledná zmena hesla v budúcnosti\n"
@@ -1536,17 +1501,17 @@ msgstr "%s: súbor s heslami sa nedá otvoriť\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: položka súboru s heslami pre používateľe %s sa nedá odstrániť\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: položka súboru s heslami pre používateľe %s sa nedá aktualizovať\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá aktualizovať\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: súbor s heslami sa nedá aktualizovať\n"
@@ -1556,40 +1521,40 @@ msgstr "%s: súbor s heslami sa nedá aktualizovať\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: položka pre používateľa %s sa nedá aktualizovať\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: nemôžete zmazať súbor s tieňovými heslami\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Ľutujem."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: musí byť spustené z terminálu\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: chyba %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Id %s je neznáme.\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Nie ste oprávnení používať su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Zadajte vaše heslo.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1598,22 +1563,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorujem)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Žiadny shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Z tohto účtu je prístup k su ZAKÁZANÝ.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Overenie hesla vynechané.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Pre overenie zadajte VAŠE vlastné heslo.\n"
@@ -1628,7 +1593,7 @@ msgstr "Súbor s heslami neexistuje\n"
 msgid "No password entry for 'root'\n"
 msgstr "V databáze nie je položka pre používateľa 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1638,235 +1603,215 @@ msgstr ""
 "Stlačte control-d pre normálne spustenie systému,\n"
 "(alebo zadajte heslo používateľa root pre údržbu systému):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Vstupujem do režimu údržby systému\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: vytvorte znovu databázu skupín\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: vytvorte znovu databázu tieňových skupín\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: chybný číselný argument `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: gid %s je neznáme\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: skupina %s je neznáma\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: nedá sa vytvoriť nový súbor s predvolenými hodnotami\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: nedá sa otvoriť nový súbor s predvolenými hodnotami\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: premenovať: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: skupina `%s' je NIS skupinou.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: bolo zadaných príliš veľa skupín (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Použitie: useradd [-u uid [-o]] [-g skupina [-G skupina,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                  [-d domáci_adresár] [-s shell] [-c komentár] [-m [-k "
 "šablóna]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                  [-f nečinnosť] [-e uplynutie_lehoty]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                  [-p heslo] meno\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "          useradd -D [-g skupina] [-b základný_adresár] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: chyba pri zamykaní súboru so skupinami\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: chyba pri otváraní súboru so skupinami\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: chyba pri zamykaní súboru s tieňovými heslami\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: chyba pri otváraní súboru s tieňovými heslami\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s uid %u nie je jedinečné\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: nemôžem získať jedinečné uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: chybný základný adresár `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: chybný komentár `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: chybný domáci adresár `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: chybný dátum `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: prepínač -e vyžaduje tieňové heslá\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: prepínač -f vyžaduje tieňové heslá\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: chybná položka `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: chybný shell `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: chybné používateľské meno `%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: súbor s heslami sa nedá prepísať\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá prepísať\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: súbor s heslami sa nedá zamknúť\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: súbor s heslami sa nedá otvoriť\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá zamknúť\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: súbor s tieňovými heslami sa nedá otvoriť\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: chyba pri vytváraní novej položky v súbore s heslami\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: chyba pri aktualizácii položky dbm databázy hesiel\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: chyba pri vytváraní novej položky v súbore s tieňovými heslami\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: chyba pri aktualizácii položky dbm databázy tieňových hesiel\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: nedá sa vytvoriť adresár %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr "Skupina \"mail\" nejestvuje, vytvára sa mail spool s právami 0600.\n"
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "Nedá sa vytvoriť mail spool pre používateľa %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: používateľ %s už existuje\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1874,205 +1819,170 @@ msgstr ""
 "%s: skupina %s už existuje - ak chcete pridať tohto používateľa do tejto "
 "skupiny, použijte -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: varovanie: CREATE_HOME nie je podporované, použijte prepínač -m.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Použitie: %s [-r] meno\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: položka súboru so skupinami sa nedá aktualizovať\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: položka dbm databázy skupín sa nedá aktualizovať\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: položka dbm databázy skupín sa nedá odstrániť\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: súbor so skupinami sa nedá otvoriť\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: súbor s tieňovými skupinami sa nedá otvoriť\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru s heslami\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru s tieňovými heslami\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: chyba pri odstraňovaní položky z dbm databázy hesiel\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: chyba pri odstraňovaní položky z dbm databázy tieňových hesiel\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: používateľ %s je práve prihlásený\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: vlastníkom %s nie je %s, nemažem ho\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: varovanie: nemôžem zmazať "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: používateľ %s neexistuje\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: používateľ %s je NIS používateľom\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: adresár %s nebudem mazať (je to domáci adresár používateľa %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: chyba pri mazaní adresára %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Použitie: %s\t[-u uid [-o]] [-g skupina [-G skupina,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d domáci_adresár [-m]] [-s shell] [-c komentár] [-l nové_meno]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f nečinnosť] [-e uplynutie_lehoty] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p heslo] [-L|-U] meno\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s nedostatok pamäti v update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: nedostatok pamäti v update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: žiadne prepínače\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: prepínače -e a -f vyžadujú tieňové heslá\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s uid %lu nie je jedinečné\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: chyba pri zmene položky v súbore s heslami\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru s heslami\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: chyba pri pridávaní položky do dbm databázy hesiel\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: chyba pri odstraňovaní položky z dbm databázy hesiel\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: chyba pri odstraňovaní položky zo súboru s tieňovými heslami\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: chyba pri odstraňovaní položky z dbm databázy tieňových hesiel\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: adresár %s už existuje\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: %s sa nedá vytvoriť\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: volanie chown pre %s zlyhalo\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: adresár %s sa nedá premenovať na %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: varovanie: vlastníkom %s nie je %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "chyba pri zmene vlastníka schránky"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "chyba pri premenovaní schránky"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2081,20 +1991,20 @@ msgstr ""
 "\n"
 "%s: %s je bezo zmien\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Súbor sa nedá zamknúť"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Zálohovanie sa nedá vykonať"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: %s sa nedá obnoviť: %s (zmeny sú v %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index e07d0002e68215fa33020bfa1ac32e34e72f1dd7..6ab2ae8dc85d4f2a2b087eb25681236727e9ecf8 100644 (file)
Binary files a/po/sq.gmo and b/po/sq.gmo differ
index b26539fa012655a87c4eeead2b53ca06898b8627..66f95ed567f2ca62433073193616b695db301f7c 100644 (file)
--- a/po/sq.po
+++ b/po/sq.po
@@ -8,20 +8,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 4.0.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-11-20 03:28+0100\n"
 "Last-Translator: Elian Myftiu <pinguini AT fastwebnet DOT it>\n"
 "Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Kujdes: grup i panjohur %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Kujdes: ka shumë grupe\n"
@@ -49,17 +50,17 @@ msgstr "   Kontakto administratorin e sistemit.\n"
 msgid "  Choose a new password.\n"
 msgstr "   Zgjidh një fjalëkalim të ri.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr ""
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr ""
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr ""
@@ -74,39 +75,27 @@ msgstr ""
 msgid "Environment overflow\n"
 msgstr ""
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr ""
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr ""
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr ""
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr ""
@@ -119,7 +108,7 @@ msgstr ""
 msgid "You have mail."
 msgstr ""
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr ""
@@ -134,20 +123,20 @@ msgstr ""
 msgid "passwd: %s\n"
 msgstr ""
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr ""
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr ""
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr ""
@@ -162,189 +151,178 @@ msgstr ""
 msgid "Can't change root directory to \"%s\"\n"
 msgstr ""
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr ""
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr ""
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr ""
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr ""
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
 "             [-I inactive] [-E expire] [-d last_day] user\n"
 msgstr ""
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr ""
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr ""
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr ""
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr ""
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr ""
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr ""
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr ""
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, c-format
 msgid "never\n"
 msgstr ""
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Fjalëkalimi yt nuk është aktiv."
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr ""
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr ""
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, c-format
 msgid "%s: permission denied.\n"
 msgstr ""
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr ""
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr ""
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr ""
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr ""
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr ""
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr ""
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr ""
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr ""
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr ""
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr ""
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr ""
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr ""
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr ""
@@ -361,117 +339,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr ""
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr ""
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr ""
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr ""
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr ""
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr ""
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr ""
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr ""
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr ""
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr ""
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr ""
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr ""
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr ""
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr ""
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr ""
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr ""
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr ""
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr ""
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr ""
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr ""
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr ""
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr ""
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -488,48 +471,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr ""
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr ""
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr ""
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr ""
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr ""
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr ""
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr ""
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr ""
@@ -539,26 +522,26 @@ msgstr ""
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr ""
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr ""
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr ""
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr ""
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr ""
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr ""
@@ -568,12 +551,12 @@ msgstr ""
 msgid "Usage: expiry {-f|-c}\n"
 msgstr ""
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr ""
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr ""
@@ -587,320 +570,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr ""
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
+msgid "Login       Failures Maximum Latest                   On\n"
 msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr ""
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr ""
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr ""
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr ""
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr ""
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr ""
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr ""
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr ""
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr ""
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr ""
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr ""
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr ""
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr ""
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr ""
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr ""
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr ""
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr ""
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr ""
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr ""
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr ""
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr ""
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr ""
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr ""
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr ""
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr ""
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr ""
 
-#: 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr ""
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr ""
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr ""
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr ""
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr ""
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr ""
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr ""
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr ""
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr ""
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr ""
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr ""
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr ""
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr ""
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr ""
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr ""
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr ""
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr ""
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr ""
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr ""
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr ""
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr ""
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr ""
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr ""
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr ""
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr ""
@@ -910,110 +858,105 @@ msgstr ""
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr ""
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr ""
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr ""
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr ""
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr ""
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr ""
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr ""
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr ""
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr ""
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr ""
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr ""
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr ""
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr ""
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr ""
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr ""
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr ""
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr ""
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
+msgid "%s: the files have been updated\n"
 msgstr ""
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr ""
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr ""
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1029,37 +972,37 @@ msgstr ""
 msgid "%s: can't lock shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr ""
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr ""
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr ""
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr ""
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr ""
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr ""
@@ -1079,121 +1022,112 @@ msgstr ""
 msgid " groups="
 msgstr ""
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr ""
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr ""
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr ""
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr ""
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr ""
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr ""
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr ""
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
 "System closed for routine maintenance\n"
 msgstr ""
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr ""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr ""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 
-#: src/login.c:819
-msgid "login: "
-msgstr ""
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr ""
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr ""
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr ""
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr ""
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr ""
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1234,17 +1168,17 @@ msgstr ""
 msgid "added %d entries, longest was %d\n"
 msgstr ""
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr ""
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr ""
@@ -1264,16 +1198,16 @@ msgstr ""
 msgid "unknown uid: %u\n"
 msgstr ""
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr ""
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr ""
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr ""
@@ -1283,159 +1217,159 @@ msgstr ""
 msgid "Usage: %s [input]\n"
 msgstr ""
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr ""
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr ""
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr ""
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr ""
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr ""
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr ""
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr ""
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr ""
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr ""
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr ""
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr ""
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr ""
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr ""
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr ""
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr ""
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr ""
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr ""
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
 "Please use a combination of upper and lower case letters and numbers.\n"
 msgstr ""
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr ""
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr ""
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
 "Warning: weak password (enter it again to use it anyway).\n"
 msgstr ""
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr ""
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr ""
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr ""
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr ""
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr ""
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr ""
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr ""
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr ""
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr ""
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr ""
@@ -1450,49 +1384,49 @@ msgstr ""
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr ""
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr ""
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr ""
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr ""
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr ""
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr ""
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr ""
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr ""
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr ""
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr ""
@@ -1512,17 +1446,17 @@ msgstr ""
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr ""
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr ""
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr ""
@@ -1532,62 +1466,62 @@ msgstr ""
 msgid "%s: can't update entry for user %s\n"
 msgstr ""
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr ""
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr ""
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr ""
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr ""
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr ""
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr ""
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr ""
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
 "(Ignored)\n"
 msgstr ""
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr ""
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr ""
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr ""
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr ""
@@ -1602,464 +1536,409 @@ msgstr ""
 msgid "No password entry for 'root'\n"
 msgstr ""
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
 "(or give root password for system maintenance):"
 msgstr ""
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr ""
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr ""
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr ""
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr ""
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr ""
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr ""
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr ""
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr ""
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr ""
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr ""
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr ""
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr ""
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr ""
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr ""
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr ""
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr ""
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr ""
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr ""
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr ""
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr ""
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr ""
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr ""
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr ""
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr ""
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr ""
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr ""
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr ""
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr ""
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr ""
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr ""
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr ""
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr ""
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr ""
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr ""
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr ""
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr ""
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr ""
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr ""
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr ""
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr ""
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr ""
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr ""
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr ""
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr ""
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr ""
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr ""
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr ""
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr ""
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr ""
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr ""
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr ""
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr ""
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr ""
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr ""
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr ""
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr ""
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr ""
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr ""
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr ""
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr ""
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr ""
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr ""
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr ""
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr ""
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
 "%s: %s is unchanged\n"
 msgstr ""
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr ""
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr ""
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr ""
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 6c73b3d243affd1fa1cd8bd7d29ffa1198e7b670..4bb48a2337b05b3eaac6f8d0fba0669f9e9b2b8d 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index c3456372253af876034173e63b7b9be26d80875e..9e9227e7447f918c0211766b851a1d068e13d825 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -5,20 +5,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow 19990709\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 1999-08-16 21:20+0100\n"
 "Last-Translator: Kristoffer Brånemyr <ztion@swipnet.se>\n"
 "Language-Team: sv <sv@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Varning: okänd grupp %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Varning: för många grupper\n"
@@ -46,17 +47,17 @@ msgstr "  Kontakta systemoperatören.\n"
 msgid "  Choose a new password.\n"
 msgstr "  Välj ett nytt lösenord.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Ditt lösenord upphör om %ld dagar.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Ditt lösenord upphör imorgon.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Ditt lösenord upphör idag.\n"
@@ -71,40 +72,27 @@ msgstr "Kunde inte byta tty %s"
 msgid "Environment overflow\n"
 msgstr "Miljön överflödades\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Du får inte ändra $%s\n"
 
-#: libmisc/failure.c:230
-#, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s sedan förra inloggningen.  Den sista var %s på %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "felaktiga inloggningar"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "felaktig inloggning"
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d %s sedan förra inloggningen.  Den sista var %s på %s.\n"
+msgstr[1] "%d %s sedan förra inloggningen.  Den sista var %s på %s.\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "För många inloggningar.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Lösenordet avkrypterar inte den hemliga nyckeln för %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"Kunde inte sätta den hemliga nyckeln för %s: är keyserv demonen igång?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Du har ny post."
@@ -117,7 +105,7 @@ msgstr "Ingen post."
 msgid "You have mail."
 msgstr "Du har post."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Felaktigt lösenord: %s.  "
@@ -132,20 +120,20 @@ msgstr "passwd: pam_start() misslyckades, fel %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Kunde inte byta aktuell katalog till \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Ingen hemkatalog, loggar in med HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Kan inte starta %s"
@@ -160,35 +148,31 @@ msgstr "Felaktig rotkatalog \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kan inte byta rotkatalog till \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) misslyckades\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Kunde inte allokera rum för konfigureringsinformation.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "konfigurerings fel - okänt object \"%s\" (meddela systemoperatören)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Lösenord: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Lösenord för %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -197,154 +181,147 @@ msgstr ""
 "Användning: chage [-l] [-m min_dagar] [-M max_dagar] [-W varna]\n"
 "                  [-I inaktiv] [-E utgång] [-d senaste_dag] användare\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Skriv in det nya värdet, eller tryck ENTER för standardvärdet\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Minsta lösenordsålder"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Högsta lösenordsålder"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Senaste lösenordsändring (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Lösenords upphörningsvarning"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Lösenord inaktivt"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Kontot upphör (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Senaste lösenordsändring (ÅÅÅÅ-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Aldrig\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Lösenordet upphör:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Lösenord inaktiv:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Lösenordet upphör:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: inkludera inte \"l\" tillsammands med andra flaggor\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: tillåtelse nekas\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, fuzzy, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: fel under tillägning av metod för äkthetsbevisning\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: kan inte öppna lösenordsfilen\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: okänd användare %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: kan inte låsa skugglösenordsfilen"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: kan inte öppna skugglösenordsfilen"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Ändrar åldringsinformation för %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: fel uppstod under byte av fält\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: kan inte uppdatera lösenordsfilen\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: kan inte uppdatera skugglösenordsfilen\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Fel under uppdatering av DBM-lösenordsnoteringen.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: kan inte skriva om skugglösenordsfilen\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: kan inte skriva om lösenordsfilen\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, fuzzy, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: kan inte låsa upp filen\n"
@@ -365,117 +342,122 @@ msgstr ""
 "Användning: %s [-f hela_namnet] [-r rumsnummer] [-w arbetstele] [-h "
 "hemtele]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Hela namnet"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tHela namnet: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Rumsnummer"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Arbetstelefonnummer"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Hemtelefonnummer"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Övrigt"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kan inte avgöra ditt användarnamn.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: kan inte ändra användare \"%s\" på NIS-klienten.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: \"%s\" är NIS-mästare för denna klient.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: tillåtelse nekas\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Ändrar användarinformation för %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: felaktigt namn: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: felaktigt rumsnummer: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: felaktigt arbetstelefonnummer: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: felaktigt hemtelefonnummer: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" innehåller otillåtna tecken\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: för långa fält\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Kan inte ändra ID till root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Kan inte låsa lösenordsfilen; försök igen senare.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Kan inte öppna lösenordsfilen.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s hittades inte i /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Fel under uppdatering av lösenordsnoteringen.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Kan inte genomföra ändringar i lösenordsfilen.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Kan inte låsa upp lösenordsfilen.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -492,48 +474,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: kan inte låsa lösenordsfilen\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: kan inte låsa skuggfilen\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: kan inte öppna skuggfilen\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: rad %d: för lång rad\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: rad %d: det nya lösenordet saknas\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: rad %d: okänd användare %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: rad %d: kan inte uppdatera lösenordsnoteringen\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: fel upptäcktes, ändringarna ignorerades\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: fel under uppdatering av skuggfilen\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: fel under uppdatering av lösenordsfilen\n"
@@ -543,26 +525,26 @@ msgstr "%s: fel under uppdatering av lösenordsfilen\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Användning: %s [-s skal] [namn]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Inloggningsskal"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "Du får inte ändra skal åt %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "Ändrar inloggningsskal åt %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Felaktig notering: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s är ett felaktigt skal.\n"
@@ -572,12 +554,12 @@ msgstr "%s är ett felaktigt skal.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Användning: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: VARNING!  Måste vara set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: okänd användare\n"
@@ -591,320 +573,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Användarnamn  Felaktiga inloggningar  Högsta  Senaste\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s på %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds kvar]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds låsning]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Okänd användare: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Användning: %s [-r|-R] grupp\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "            %s [-a användare] grupp\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "            %s [-d användare] grupp\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "            %s [-A användare,...] [-M användare,...] grupp\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "            %s [-M användare,...] grupp\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: skuggrupplösenord krävs för -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Vem är du?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "okänd grupp: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Lägger till användare %s till grupp %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Tar bort användare %s från grupp %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: okänd medlem %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Inte en tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Ändrar lösenordet för grupp %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Nytt lösenord: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Skriv in det nya lösenordet igen: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "De matchar inte; försök igen"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Försök igen senare\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: kan inte låsa\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: kan inte låsa skuggfilen\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: kan inte öppna filen\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: kan inte uppdatera noteringen\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: kan inte uppdatera noteringen i skuggfilen\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: kan inte skriva om filen\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: kan inte skriva om skuggfilen\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: kan inte låsa upp filen\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: kan inte uppdatera DBM-filer\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: kan inte uppdatera DBM-skuggfiler\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Användning: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: gick inte att lägga till en ny gruppnotering\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: kan inte lägga till en ny dbm-gruppnotering\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: namnet %s är inte unikt\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: gid %u är inte unikt\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: kan inte hitta ett unikt gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s är inte ett giltigt gruppnamn\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: ogiltig grupp %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O kräver NAME=VÄRDE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: kan inte skriva om gruppfilen\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: kan inte skriva om skuggruppfilen\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: kan inte låsa gruppfilen\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: kan inte öppna gruppfilen\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: kan inte låsa skuggruppfilen\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: kan inte öppna skuggruppfilen\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grupp %s existerar\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Användning: groupdel grupp\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: fel under borttagning av gruppnotering\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-gruppnotering\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: fel under borttagning av skuggruppnotering\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-skuggruppnotering\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: kan inte ta bort användarens primära grupp.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: grupp %s existerar inte\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: grupp %s är en NIS-grupp\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s är NIS-mästeren\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Användning: groupmod [-g gid [-o]] [-n namn] grupp\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s hittades inte i /etc/group\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: kunde inte lägga till en ny dbm-skuggruppnotering\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u är inte ett unikt gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s är inte ett unikt namn\n"
@@ -914,110 +861,105 @@ msgstr "%s: %s är inte ett unikt namn\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Användning: %s [-r] [-s] [grupp [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Användning: %s [-r] [-s] [grupp]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Nej"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr ""
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: kan inte låsa filen %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: kan inte öppna filen %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "felaktig gruppfilsnotering\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "ta bort rad \"%s\"? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "dubblett av gruppnotering\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "ogiltigt gruppnamn \"%s\"\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grupp %s: användaren %s finns inte\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "ta bort medlem \"%s\"? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "felaktig skuggruppfilsnotering\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "dubblett av skuggruppfilsnotering\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "inga matchande gruppfilsnoteringar\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "skuggrupp %s: finns ingen administrativ användare %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "ta bort administrativa medlemmen \"%s\"? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "skuggrupp %s: finns ingen användare %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: kan inte uppdatera filen %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: filerna är uppdaterade; kör mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: filerna är uppdaterade\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: inga ändringar\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: filerna är uppdaterade\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1033,37 +975,37 @@ msgstr "%s: kan inte öppna gruppfilen\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: kan inte låsa skuggruppfilen\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: kan inte öppna skuggruppfilen\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: kan inte ta bort skuggruppen %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: kan inte uppdatera skuggnoteringen för %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: kan inte uppdatera noteringen för gruppen %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: kan inte uppdatera skuggruppfilen\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: kan inte uppdatera gruppfilen\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: kan inte ta bort skuggruppfilen\n"
@@ -1083,52 +1025,52 @@ msgstr "Användning: id\n"
 msgid " groups="
 msgstr " grupper="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Användarnamn     Port     Från             Senaste\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Användarnamn            Port     Senaste\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Aldrig inloggad**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Användning: %s [-p] [namn]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "            %s [-p] [-h värd] [-f namn]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "            %s [-p] -r värd\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Felaktig inloggningstid\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1137,7 +1079,7 @@ msgstr ""
 "\n"
 "Systemet är stängt för rutinunderhåll\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1146,7 +1088,7 @@ msgstr ""
 "\n"
 "[Nerkoppling kringgicks -- root inloggning tillåten.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1155,17 +1097,17 @@ msgstr ""
 "\n"
 "Inloggningen avbröts efter %d sekunders inaktivitet.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " på \"%.100s\" från \"%.200s\""
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " på \"%.100s\""
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1174,38 +1116,29 @@ msgstr ""
 "\n"
 "%s användare: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "användare: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Felaktig inloggning"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Varning: inloggning på nytt aktiv efter den temporära utelåsningen.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Senaste inloggning: %s på %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Senaste inloggning: %.19s på %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " från %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Startar rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1246,17 +1179,17 @@ msgstr "%s: fel under tillägg av notering för "
 msgid "added %d entries, longest was %d\n"
 msgstr "lade till %d noteringar, den längsta var %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Användning: %s [-vf] [-p|g|sp|sg] fil\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Användning: %s [-vf] [-p|g|sp] fil\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Användning: %s [-vf] [-p|g] fil\n"
@@ -1276,16 +1209,16 @@ msgstr "Användning: sg grupp [[-c] kommando]\n"
 msgid "unknown uid: %u\n"
 msgstr "okänt uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "okänt gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Tyvärr.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "för många grupper\n"
@@ -1295,91 +1228,91 @@ msgstr "för många grupper\n"
 msgid "Usage: %s [input]\n"
 msgstr "Användning: %s [indata]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: kan inte låsa /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: kan inte låsa filerna, försök igen senare\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: kan inte öppna filerna\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: rad %d: ogiltig rad\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: rad %d: kan inte skapa GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: rad %d: kan inte skapa UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: rad %d: kan inte hitta användaren %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: rad %d: kan inte uppdatera lösenordet\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: rad %d: mkdir misslyckades\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: rad %d: chown misslyckades\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: rad %d: kan inte uppdatera notering\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: kunde inte uppdatera filerna\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Användning: %s [-f|-s] [namn]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "            %s [-x högst] [-n minst] [-w varna] [-i inaktiv] namn\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "            %s {-l|-u|-d|-S|-e} namn\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Förra lösenordet: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Felaktigt lösenord för \"%s\"\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1388,16 +1321,16 @@ msgstr ""
 "Skriv in det nya lösenordet (minst %d, högst %d tecken)\n"
 "Var god använd en kombination av versaler, gemener och siffror.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Nytt lösenord: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Försök igen.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1406,52 +1339,52 @@ msgstr ""
 "\n"
 "Varning: svagt lösenord (skriv in det igen för att använda det ändå).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "De matchar inte; försök igen.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Lösenordet för %s kan inte bytas.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Tyvärr, lösenordet för %s kan inte ändras än.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: slut på minne\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Kan inte starta %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: förvaringsplatsen %s stöds ej\n"
 
-#: src/passwd.c:914
-#, c-format
-msgid "You may not change the password for %s.\n"
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "Du får inte ändra lösenordet för %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Ändrar lösenord för %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Lösenordet för %s är oförändrat.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Lösenordet ändrat.\n"
@@ -1466,49 +1399,49 @@ msgstr "Användning: %s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Användning: %s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "felaktig notering i lösenordsfilen\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "dubblett av lösenords notering\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "ogiltigt användarnamn '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "användare %s: ingen grupp %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "användare %s: katalogen %s finns inte\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "användare %s: programmet %s finns inte\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "felaktig notering i skugglösenordsfilen\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "dubblett av notering i skugglösenordsfilen\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "ingen matchande notering i lösenordsfilen\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "användare %s: senaste lösenordsändring i framtiden\n"
@@ -1528,17 +1461,17 @@ msgstr "%s: kan inte öppna lösenordsfilen\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: kan inte ta bort notering i skugglösenordsfilen för %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: kan inte uppdatera noteringen i lösenordsfilen för %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: kan inte uppdatera skuggfilen\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: kan inte uppdatera lösenordsfilen\n"
@@ -1548,40 +1481,40 @@ msgstr "%s: kan inte uppdatera lösenordsfilen\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: kan inte uppdatera noteringen för användaren %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: kan inte ta bort skugglösenordsfilen\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Tyvärr."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: måste köras från en terminal\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: fel %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Okänt id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Du har inte tillåtelse att köra su till %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Skriv in ditt eget lösenord.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1590,22 +1523,22 @@ msgstr ""
 "%s: %s\n"
 "(Ignorerad)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Inget skal\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Du har inte behörighet att köra su till det kontot.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Hoppade över lösenordskontroll.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Var god skriv in ditt EGET lösenord som äkthetsbevis.\n"
@@ -1620,7 +1553,7 @@ msgstr "Ingen lösenordsfil\n"
 msgid "No password entry for 'root'\n"
 msgstr "Ingen lösenordsnotering för \"root\"\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1630,437 +1563,382 @@ msgstr ""
 "Skriv control-d för att fortsätta med den normala uppstarten,\n"
 "(eller skriv in lösenordet för root för systemunderhåll):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Går in i systemunderhållsläge\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: bygg om gruppdatabasen\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: bygg om skuggruppdatabasen\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: ogiltigt numeriskt argument \"%s\"\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: okänt gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: okänd grupp %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: kan inte skapa en ny standardfil\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: kan inte skapa en ny standardfil\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: rename: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: grupp \"%s\" är en NIS-grupp.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: för många grupper speciferade (max %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Användning: useradd [-u uid [-o]] [-g grupp] [-G grupp,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "                    [-d hem] [-s skal] [-c kommentar] [-m [-k mall]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                    [-f inaktiv] [-e upphör]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                    [-p passwd] namn\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "            useradd -D [-g grupp] [-b bas] [-s skal]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: fel under låsning av gruppfilen\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: fel under öppning av gruppfilen\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: fel under låsning av skuggruppfilen\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: fel under öppning av skuggruppfilen\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u är inte unikt\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: kan inte hitta ett unikt uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: felaktig baskatalog \"%s\"\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: felaktig kommentar \"%s\"\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: felaktig hemkatalog \"%s\"\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: felaktigt datum \"%s\"\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: skugglösenord krävs för -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: skugglösenord krävs för -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: felaktigt fält \"%s\"\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: felaktigt skal \"%s\"\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: felaktigt användar namn '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: kan inte skriva om lösenordsfilen\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: kan inte skriva om skugglösenordsfilen\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: kan inte låsa lösenordsfilen\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: kan inte öppna lösenordsfilen\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: kan inte låsa skugglösenordsfilen\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: kan inte öppna skugglösenordsfilen\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: fel under tilläggning av ny lösenordsnotering\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: fel under uppdatering av dbm-lösenordsnotering\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: fel under tilläggning av ny skugglösenordsnotering\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: fel under uppdatering av dbm-skugglösenordsnotering\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: kan inte skapa katalog %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: kan inte uppdatera noteringen för användaren %s\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: användare %s existerar\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: varning: CREATE_HOME stöds inte, använd -m istället.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Användning: %s [-r] namn\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: fel under uppdatering av gruppnotering\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: kan inte uppdatera dbm-gruppnotering\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: kan inte uppdatera dbm-gruppnotering\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: kan inte öppna gruppfilen\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: kan inte öppna skuggruppfilen\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: fel under borttagning av lösenordsnotering\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: fel under borttagning av skugglösenordsnotering\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-lösenordsnotering\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-skugglösenordsnotering\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: användare %s är inloggad\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s ägs inte av %s, tar inte bort\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: varning: kan inte ta bort "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: användare %s finns inte\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: användare %s är en NIS-användare\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: tar inte bort katalogen %s (skulle ta bort hemkatalogen för %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: fel under borttagning av katalogen %s\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Användning: %s\t[-u uid [-o]] [-g grupp] [-G grupp,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d hem [-m]] [-s skal] [-c kommentar] [-l nytt_namn]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f inaktiv] [-e upphör] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p passwd] [-L|-U] namn\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: slut på minne i update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: slut på minne i update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: inga flaggor givna\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: skugglösenord krävs för -e och -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu är inte unikt\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: fel under ändring av lösenordsnotering\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: fel under borttagning av lösenordsnotering\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: fel under tilläggning av dbm-lösenordsnotering\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-lösenordsnotering\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: fel under borttagning av skugglösenordsnotering\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: fel under borttagning av dbm-skugglösenordsnotering\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: katalogen %s existerar\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: kan inte skapa %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: kan inte byta ägare på %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: kan inte byta namn på katalogen %s till %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: varning: %s ägs inte av %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "kunde inte byta ägare av brevlådan"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "kunde inte byta namn på brevlådan"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2069,20 +1947,20 @@ msgstr ""
 "\n"
 "%s: %s är oförändrad\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Kunde inte låsa filen"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Kunde inte göra en backup"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: kan inte återställa %s: %s (dina ändringar är i %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
diff --git a/po/tl.gmo b/po/tl.gmo
new file mode 100644 (file)
index 0000000..36c0f93
Binary files /dev/null and b/po/tl.gmo differ
diff --git a/po/tl.po b/po/tl.po
new file mode 100644 (file)
index 0000000..1d2fd93
--- /dev/null
+++ b/po/tl.po
@@ -0,0 +1,1996 @@
+# Tagalog messages for shadow
+# shadow/po/tl.po 
+# Copyright (C) 2005 Software in the Public Interest, Inc.
+# This file is distributed under the same license as shadow
+# Itong tipunan ay ipinamamahagi sa parehong lisensya ng shadow
+# Eric Pareja <xenos@upm.edu.ph>, 2005
+# This file is maintained by Eric Pareja <xenos@upm.edu.ph>
+# Itong tipunan ay inaalagaan ni Eric Pareja <xenos@upm.edu.ph>
+msgid ""
+msgstr ""
+"Project-Id-Version: shadow 4.0.7\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-01-26 22:00+0800\n"
+"Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
+"Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#: libmisc/addgrps.c:56
+#, c-format
+msgid "Warning: unknown group %s\n"
+msgstr "Babala: hindi kilalang grupo %s\n"
+
+#: libmisc/addgrps.c:67
+#, c-format
+msgid "Warning: too many groups\n"
+msgstr "Babala: labis ang dami ng mga grupo\n"
+
+#: libmisc/age.c:72
+#, c-format
+msgid "Your password has expired."
+msgstr "Lumampas sa taning ang inyong password."
+
+#: libmisc/age.c:75
+#, c-format
+msgid "Your password is inactive."
+msgstr "Ang inyong password ay hindi aktibo."
+
+#: libmisc/age.c:78
+#, c-format
+msgid "Your login has expired."
+msgstr "Lumampas sa taning ang inyong login."
+
+#: libmisc/age.c:90
+msgid "  Contact the system administrator.\n"
+msgstr "  Kausapin ang tagapangasiwa ng sistema.\n"
+
+#: libmisc/age.c:93
+msgid "  Choose a new password.\n"
+msgstr "  Pumili ng bagong password.\n"
+
+#: libmisc/age.c:169
+#, c-format
+msgid "Your password will expire in %ld days.\n"
+msgstr "Ang inyong password ay may taning na %ld na araw.\n"
+
+#: libmisc/age.c:172
+#, c-format
+msgid "Your password will expire tomorrow.\n"
+msgstr "Hanggang bukas ang taning ng inyong password.\n"
+
+#: libmisc/age.c:174
+#, c-format
+msgid "Your password will expire today.\n"
+msgstr "Mapapaso ang inyong password ngayong araw na ito.\n"
+
+#: libmisc/chowntty.c:106
+#, c-format
+msgid "Unable to change tty %s"
+msgstr "Hindi mabago ang tty %s"
+
+#: libmisc/env.c:155
+#, c-format
+msgid "Environment overflow\n"
+msgstr "Umapaw ang kapaligiran\n"
+
+#: libmisc/env.c:194
+#, c-format
+msgid "You may not change $%s\n"
+msgstr "Hindi niyo maaaring baguhin ang $%s\n"
+
+#: libmisc/failure.c:229
+#, fuzzy, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "%d na kabiguan mula sa huling pagpasok. Ang huli ay %s noong %s.\n"
+msgstr[1] "%d na kabiguan mula sa huling pagpasok. Ang huli ay %s noong %s.\n"
+
+#: libmisc/limits.c:397
+#, c-format
+msgid "Too many logins.\n"
+msgstr "Sobra ang mga login.\n"
+
+#: libmisc/mail.c:61 libmisc/mail.c:76
+msgid "You have new mail."
+msgstr "May bago kang koreo."
+
+#: libmisc/mail.c:72
+msgid "No mail."
+msgstr "Walang koreo."
+
+#: libmisc/mail.c:74
+msgid "You have mail."
+msgstr "Mayroon kang koreo."
+
+#: libmisc/obscure.c:273 src/passwd.c:181
+#, c-format
+msgid "Bad password: %s.  "
+msgstr "Masamang password: %s.  "
+
+#: libmisc/pam_pass.c:38
+#, c-format
+msgid "passwd: pam_start() failed, error %d\n"
+msgstr "passwd: sawi ang pam_start(), error %d\n"
+
+#: libmisc/pam_pass.c:44
+#, c-format
+msgid "passwd: %s\n"
+msgstr "passwd: %s\n"
+
+#: libmisc/pam_pass.c:49
+msgid "passwd: password updated successfully\n"
+msgstr ""
+
+#: libmisc/setupenv.c:207
+#, c-format
+msgid "Unable to cd to \"%s\"\n"
+msgstr "Hindi makalipat sa \"%s\"\n"
+
+#: libmisc/setupenv.c:215
+msgid "No directory, logging in with HOME=/"
+msgstr "Walang directory, pumapasok na ang HOME=/"
+
+#: libmisc/shell.c:118
+#, c-format
+msgid "Cannot execute %s"
+msgstr "Hindi mapatakbo ang %s"
+
+#: libmisc/sub.c:55
+#, c-format
+msgid "Invalid root directory \"%s\"\n"
+msgstr "Hindi tanggap na root directory \"%s\"\n"
+
+#: libmisc/sub.c:67
+#, c-format
+msgid "Can't change root directory to \"%s\"\n"
+msgstr "Hindi mapalitan ang root directory sa \"%s\"\n"
+
+#: libmisc/xmalloc.c:22
+#, c-format
+msgid "malloc(%d) failed\n"
+msgstr "sawi ang malloc(%d)\n"
+
+#: lib/getdef.c:265
+#, c-format
+msgid "Could not allocate space for config info.\n"
+msgstr "Hindi makareserba ng lugar para sa impormasyong pagsasaayos.\n"
+
+#: lib/getdef.c:319
+#, c-format
+msgid "configuration error - unknown item '%s' (notify administrator)\n"
+msgstr ""
+"may mali sa pagsasaayos - hindi kilalang item '%s' (ipaalam sa "
+"tagapangasiwa)\n"
+
+#: lib/pwauth.c:45 src/newgrp.c:341
+msgid "Password: "
+msgstr "Password: "
+
+#: lib/pwauth.c:47
+#, c-format
+msgid "%s's Password: "
+msgstr "Password ni %s: "
+
+#: src/chage.c:112
+#, fuzzy, c-format
+msgid ""
+"Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
+"             [-I inactive] [-E expire] [-d last_day] user\n"
+msgstr ""
+"Pag-gamit: %s [-l] [-m min_araw] [-M max_araw] [-W babala]\n"
+"\\t[-I inaktibo] [-E paso] [-d huling_araw] gumagamit\n"
+
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
+#, c-format
+msgid "Enter the new value, or press ENTER for the default\n"
+msgstr "Ibigay ang bagong halaga, o pindutin ang ENTER para sa default\n"
+
+#: src/chage.c:149
+msgid "Minimum Password Age"
+msgstr "Pinakamaliit na Tanda ng Password"
+
+#: src/chage.c:155
+msgid "Maximum Password Age"
+msgstr "Pinakamalaking Tanda ng Password"
+
+#: src/chage.c:162
+msgid "Last Password Change (YYYY-MM-DD)"
+msgstr "Huling Pagpalit ng Password (YYYY-MM-DD)"
+
+#: src/chage.c:170
+msgid "Password Expiration Warning"
+msgstr "Babala ng Paglipas ng Taning ng Password"
+
+#: src/chage.c:176
+msgid "Password Inactive"
+msgstr "Inaktibo ang Password"
+
+#: src/chage.c:184
+msgid "Account Expiration Date (YYYY-MM-DD)"
+msgstr "Hangganan ng Account (YYYY-MM-DD)"
+
+#: src/chage.c:231
+#, fuzzy, c-format
+msgid "Last password change\t\t\t\t\t: "
+msgstr "Huling Pagpalit ng Password (YYYY-MM-DD)"
+
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, fuzzy, c-format
+msgid "never\n"
+msgstr "Hindi kailanman\n"
+
+#: src/chage.c:244
+#, fuzzy, c-format
+msgid "Password expires\t\t\t\t\t: "
+msgstr "Taning ng Password:\t"
+
+#: src/chage.c:260
+#, fuzzy, c-format
+msgid "Password inactive\t\t\t\t\t: "
+msgstr "Inaktibong Password:\t"
+
+#: src/chage.c:274
+#, fuzzy, c-format
+msgid "Account expires\t\t\t\t\t\t: "
+msgstr "Mapapaso ang Account:\t"
+
+#: src/chage.c:290
+#, c-format
+msgid "Minimum number of days between password change\t\t: %ld\n"
+msgstr ""
+
+#: src/chage.c:292
+#, fuzzy, c-format
+msgid "Maximum number of days between password change\t\t: %ld\n"
+msgstr "Labis ang pagsubok na pumasok (%d)\n"
+
+#: src/chage.c:294
+#, c-format
+msgid "Number of days of warning before password expires\t: %ld\n"
+msgstr ""
+
+#: src/chage.c:431
+#, c-format
+msgid "%s: do not include \"l\" with other flags\n"
+msgstr "%s: huwag isama ang \"l\" sa ibang mga flag\n"
+
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, fuzzy, c-format
+msgid "%s: permission denied.\n"
+msgstr "%s: hindi pinahintulutan\n"
+
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
+#, c-format
+msgid "%s: PAM authentication failed\n"
+msgstr "%s: sawi ang pagpapakilalang PAM\n"
+
+#: src/chage.c:494 src/chpasswd.c:193
+#, c-format
+msgid "%s: can't open password file\n"
+msgstr "%s: hindi mabuksan ang tipunang password\n"
+
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
+#, c-format
+msgid "%s: unknown user %s\n"
+msgstr "%s: di kilalang gumagamit %s\n"
+
+#: src/chage.c:519
+#, c-format
+msgid "%s: can't lock shadow password file"
+msgstr "%s: hindi maaldaba ang tipunang shadow password"
+
+#: src/chage.c:527
+#, c-format
+msgid "%s: can't open shadow password file"
+msgstr "%s: hindi mabuksan ang tipunang shadow password"
+
+#: src/chage.c:587
+#, c-format
+msgid "Changing the aging information for %s\n"
+msgstr "Pinapalitan ang impormasyong pagtanda para kay %s\n"
+
+#: src/chage.c:589
+#, c-format
+msgid "%s: error changing fields\n"
+msgstr "%s: error sa pagbabago ng mga field\n"
+
+#: src/chage.c:613 src/pwunconv.c:137
+#, c-format
+msgid "%s: can't update password file\n"
+msgstr "%s: hindi maapdeyt ang tipunang password\n"
+
+#: src/chage.c:636 src/pwunconv.c:132
+#, c-format
+msgid "%s: can't update shadow password file\n"
+msgstr "%s: hindi maapdeyt ang tipunang shadow password\n"
+
+#: src/chage.c:649
+#, c-format
+msgid "%s: can't rewrite shadow password file\n"
+msgstr "%s: hindi maisulat-muli ang tipunang shadow password\n"
+
+#: src/chage.c:693
+#, c-format
+msgid "%s: can't rewrite password file\n"
+msgstr "%s: hindi maisulat-muli ang tipunang password\n"
+
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
+#, c-format
+msgid "%s: PAM chauthtok failed\n"
+msgstr "%s: sawi ang PAM chauthtok\n"
+
+#: src/chfn.c:84
+#, c-format
+msgid ""
+"Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
+"\t[-h home_ph] [-o other] [user]\n"
+msgstr ""
+"Pag-gamit: %s [-f buong_pangalan] [-r bilang_ng_silid] [-w "
+"telepono_trabaho]\n"
+"\t[-h telepono_bahay] [-o iba] [gumagamit]\n"
+
+#: src/chfn.c:89
+#, c-format
+msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
+msgstr ""
+"Pag-gamit: %s [-f buong_pangalan] [-r bilang_ng_silid] [-w trabaho] [-h "
+"bahay]\n"
+
+#: src/chfn.c:142
+msgid "Full Name"
+msgstr "Buong Pangalan"
+
+#: src/chfn.c:144
+#, c-format
+msgid "\tFull Name: %s\n"
+msgstr "\tBuong Pangalan: %s\n"
+
+#: src/chfn.c:147 src/chfn.c:149
+msgid "Room Number"
+msgstr "Bilang ng Silid"
+
+#: src/chfn.c:152 src/chfn.c:154
+msgid "Work Phone"
+msgstr "Telepono sa Trabaho"
+
+#: src/chfn.c:157 src/chfn.c:159
+msgid "Home Phone"
+msgstr "Telepono sa Bahay"
+
+#: src/chfn.c:162
+msgid "Other"
+msgstr "Iba pa"
+
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
+#, c-format
+msgid "%s: Cannot determine your user name.\n"
+msgstr "%s: Hindi makilala ang inyong pangalan.\n"
+
+#: src/chfn.c:350 src/chsh.c:206
+#, c-format
+msgid "%s: cannot change user `%s' on NIS client.\n"
+msgstr "%s: hindi mapalitan ang gumagamit `%s' sa NIS client.\n"
+
+#: src/chfn.c:357 src/chsh.c:213
+#, c-format
+msgid "%s: `%s' is the NIS master for this client.\n"
+msgstr "%s: `%s' ay ang NIS master ng klienteng ito.\n"
+
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: Walang pahintulot.\n"
+
+#: src/chfn.c:446
+#, c-format
+msgid "Changing the user information for %s\n"
+msgstr "Pinapalitan ang impormasyon tungkol sa gumagamit na si %s\n"
+
+#: src/chfn.c:454
+#, c-format
+msgid "%s: invalid name: \"%s\"\n"
+msgstr "%s: hindi tanggap na pangalan: \"%s\"\n"
+
+#: src/chfn.c:459
+#, c-format
+msgid "%s: invalid room number: \"%s\"\n"
+msgstr "%s: hindi tanggap na bilang ng silid: \"%s\"\n"
+
+#: src/chfn.c:465
+#, c-format
+msgid "%s: invalid work phone: \"%s\"\n"
+msgstr "%s: hindi tanggap na telepono sa trabaho: \"%s\"\n"
+
+#: src/chfn.c:471
+#, c-format
+msgid "%s: invalid home phone: \"%s\"\n"
+msgstr "%s: hindi tanggap na telepono sa bahay: \"%s\"\n"
+
+#: src/chfn.c:478
+#, c-format
+msgid "%s: \"%s\" contains illegal characters\n"
+msgstr "%s: \"%s\" ay may hindi tanggap na mga karakter\n"
+
+#: src/chfn.c:491
+#, c-format
+msgid "%s: fields too long\n"
+msgstr "%s: mahaba masyado ang mga field\n"
+
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
+#, c-format
+msgid "Cannot change ID to root.\n"
+msgstr "Hindi mabago ang ID sa root.\n"
+
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
+#, c-format
+msgid "Cannot lock the password file; try again later.\n"
+msgstr "Hindi maaldaba ang tipunang password; subukan muli mamaya.\n"
+
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
+#, c-format
+msgid "Cannot open the password file.\n"
+msgstr "Hindi mabuksan ang tipunang password\n"
+
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
+#, c-format
+msgid "%s: %s not found in /etc/passwd\n"
+msgstr "%s: hindi nahanap ang %s sa /etc/passwd\n"
+
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
+#, c-format
+msgid "Error updating the password entry.\n"
+msgstr "Error sa pag-apdeyt ng password entry.\n"
+
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
+#, c-format
+msgid "Cannot commit password file changes.\n"
+msgstr "Hindi maisulat ang pagbabago sa tipunang password.\n"
+
+#: src/chfn.c:578 src/chsh.c:394
+#, c-format
+msgid "Cannot unlock the password file.\n"
+msgstr "Hindi maalis ang aldaba sa tipunang password.\n"
+
+#: src/chpasswd.c:71
+#, c-format
+msgid ""
+"Usage: chpasswd [options]\n"
+"\n"
+"Options:\n"
+"  -e, --encrypted\tsupplied passwords are encrypted\n"
+"  -h, --help\t\tdisplay this help message and exit\n"
+"  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
+"\t\t\tpasswords are not encrypted\n"
+msgstr ""
+"Pag-gamit: chpasswd [mga option]\n"
+"\n"
+"Mga option:\n"
+"  -e, --encrypted\tang mga bigay na mga password ay naka-encrypt\n"
+"  -h, --help\t\tipakita itong payo na ito at lumabas\n"
+"  -m, --md5\t\tgamitin ang MD5 encryption imbes na DES kapag ang\n"
+"\t\t\tmga ibinigay na mga password ay hindi naka-encrypt\n"
+
+#: src/chpasswd.c:189
+#, c-format
+msgid "%s: can't lock password file\n"
+msgstr "%s: hindi maaldaba ang tipunang password\n"
+
+#: src/chpasswd.c:201 src/pwconv.c:95
+#, c-format
+msgid "%s: can't lock shadow file\n"
+msgstr "%s: hindi maaldaba ang tipunang shadow\n"
+
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
+#: src/pwunconv.c:94
+#, c-format
+msgid "%s: can't open shadow file\n"
+msgstr "%s: hindi mabuksan ang tipunang shadow\n"
+
+#: src/chpasswd.c:230 src/newusers.c:434
+#, c-format
+msgid "%s: line %d: line too long\n"
+msgstr "%s: linya %d: sobrang haba ng linya\n"
+
+#: src/chpasswd.c:250
+#, c-format
+msgid "%s: line %d: missing new password\n"
+msgstr "%s: linya %d: walang bagong password\n"
+
+#: src/chpasswd.c:274
+#, c-format
+msgid "%s: line %d: unknown user %s\n"
+msgstr "%s: linya %d: di kilalang gumagamit %s\n"
+
+#: src/chpasswd.c:320
+#, c-format
+msgid "%s: line %d: cannot update password entry\n"
+msgstr "%s: linya %d: hindi ma-apdeyt password entry\n"
+
+#: src/chpasswd.c:337 src/newusers.c:561
+#, c-format
+msgid "%s: error detected, changes ignored\n"
+msgstr "%s: may error na naganap, di pinansin ang mga pagbabago\n"
+
+#: src/chpasswd.c:349
+#, c-format
+msgid "%s: error updating shadow file\n"
+msgstr "%s: error sa pag-apdeyt ng tipunang shadow\n"
+
+#: src/chpasswd.c:357
+#, c-format
+msgid "%s: error updating password file\n"
+msgstr "%s: error sa pag-apdeyt ng tipunang password\n"
+
+#: src/chsh.c:76
+#, c-format
+msgid "Usage: %s [-s shell] [name]\n"
+msgstr "Pag-gamit: %s [-s shell] [pangalan]\n"
+
+#: src/chsh.c:90
+msgid "Login Shell"
+msgstr "Login Shell"
+
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
+#, c-format
+msgid "You may not change the shell for %s.\n"
+msgstr "Hindi niyo mapapalitan ang shell para kay %s.\n"
+
+#: src/chsh.c:288
+#, c-format
+msgid "Changing the login shell for %s\n"
+msgstr "Pinapalitan ang login shell ni %s\n"
+
+#: src/chsh.c:300
+#, c-format
+msgid "%s: Invalid entry: %s\n"
+msgstr "%s: Hindi tanggap na entry: %s\n"
+
+#: src/chsh.c:305
+#, c-format
+msgid "%s is an invalid shell.\n"
+msgstr "Ang %s ay hindi tanggap na shell.\n"
+
+#: src/expiry.c:59
+#, c-format
+msgid "Usage: expiry {-f|-c}\n"
+msgstr "Pag-gamit: expiry {-f|-c}\n"
+
+#: src/expiry.c:112
+#, c-format
+msgid "%s: WARNING!  Must be set-UID root!\n"
+msgstr "%s: BABALA!  Kailangang naka-set-UID root!\n"
+
+#: src/expiry.c:122
+#, c-format
+msgid "%s: unknown user\n"
+msgstr "%s: hindi kilalang gumagamit\n"
+
+#: src/faillog.c:59
+#, c-format
+msgid ""
+"Usage: faillog [options]\n"
+"\n"
+"Options:\n"
+"  -a, --all\t\t\tdisplay faillog records for all users\n"
+"  -h, --help\t\t\tdisplay this help message and exit\n"
+"  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
+"  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
+"  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
+"\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
+"\t\t\t\tfor user with LOGIN\n"
+msgstr ""
+
+#: src/faillog.c:87
+#, c-format
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
+
+#: src/faillog.c:105
+#, c-format
+msgid " [%lds left]"
+msgstr " [%lds naiwan]"
+
+#: src/faillog.c:109
+#, c-format
+msgid " [%lds lock]"
+msgstr " [%lds lock]"
+
+#: src/faillog.c:353 src/lastlog.c:187
+#, c-format
+msgid "Unknown User: %s\n"
+msgstr "Di kilalang Gumagamit: %s\n"
+
+#: src/gpasswd.c:71
+#, fuzzy, c-format
+msgid "Usage: %s [-r|-R] group\n"
+msgstr "pag-gamit: %s [-r|-R] grupo\n"
+
+#: src/gpasswd.c:72
+#, c-format
+msgid "       %s [-a user] group\n"
+msgstr "       %s [-a gumagamit] grupo\n"
+
+#: src/gpasswd.c:73
+#, c-format
+msgid "       %s [-d user] group\n"
+msgstr "       %s [-d gumagamit] grupo\n"
+
+#: src/gpasswd.c:76
+#, c-format
+msgid "       %s [-A user,...] [-M user,...] group\n"
+msgstr "       %s [-A gumagamit,...] [-M gumagamit,...] grupo\n"
+
+#: src/gpasswd.c:78
+#, c-format
+msgid "       %s [-M user,...] group\n"
+msgstr "       %s [-M gumagamit,...] grupo\n"
+
+#: src/gpasswd.c:229
+#, c-format
+msgid "%s: shadow group passwords required for -A\n"
+msgstr "%s: kailangan ng password ng grupong shadow para sa -A\n"
+
+#: src/gpasswd.c:280
+#, c-format
+msgid "Who are you?\n"
+msgstr "Sino ka?\n"
+
+#: src/gpasswd.c:299 src/newgrp.c:290
+#, c-format
+msgid "unknown group: %s\n"
+msgstr "di kilalang grupo: %s\n"
+
+#: src/gpasswd.c:408
+#, c-format
+msgid "Adding user %s to group %s\n"
+msgstr "Dinadagdag ang gumagamit na si %s sa grupong %s\n"
+
+#: src/gpasswd.c:426
+#, c-format
+msgid "Removing user %s from group %s\n"
+msgstr "Tinatanggal ang gumagamit na si %s mula sa grupong %s\n"
+
+#: src/gpasswd.c:439
+#, c-format
+msgid "%s: unknown member %s\n"
+msgstr "%s: di kilalang miyembro %s\n"
+
+#: src/gpasswd.c:485
+#, c-format
+msgid "%s: Not a tty\n"
+msgstr "%s: Hindi tty\n"
+
+#: src/gpasswd.c:506
+#, c-format
+msgid "Changing the password for group %s\n"
+msgstr "Pinapalitan ang password ng grupong %s\n"
+
+#: src/gpasswd.c:509
+msgid "New Password: "
+msgstr "Bagong Password: "
+
+#: src/gpasswd.c:514 src/passwd.c:278
+msgid "Re-enter new password: "
+msgstr "Ibigay muli ang bagong password: "
+
+#: src/gpasswd.c:526
+msgid "They don't match; try again"
+msgstr "Hindi magkapareho; subukan muli"
+
+#: src/gpasswd.c:530
+#, c-format
+msgid "%s: Try again later\n"
+msgstr "%s: Subukan muli mamaya\n"
+
+#: src/gpasswd.c:562
+#, c-format
+msgid "%s: can't get lock\n"
+msgstr "%s: hindi makakuha ng aldaba\n"
+
+#: src/gpasswd.c:568
+#, c-format
+msgid "%s: can't get shadow lock\n"
+msgstr "%s: hindi makuha ang aldaba ng shadow\n"
+
+#: src/gpasswd.c:574
+#, c-format
+msgid "%s: can't open file\n"
+msgstr "%s: hindi mabuksan ang tipunan\n"
+
+#: src/gpasswd.c:586
+#, c-format
+msgid "%s: can't update entry\n"
+msgstr "%s: hindi ma-apdeyt ang entry\n"
+
+#: src/gpasswd.c:592
+#, c-format
+msgid "%s: can't update shadow entry\n"
+msgstr "%s: hindi ma-apdeyt ang entry na shadow\n"
+
+#: src/gpasswd.c:598
+#, c-format
+msgid "%s: can't re-write file\n"
+msgstr "%s: hindi maisulat muli ang tipunan\n"
+
+#: src/gpasswd.c:604
+#, c-format
+msgid "%s: can't re-write shadow file\n"
+msgstr "%s: hindi maisulat muli ang tipunang shadow\n"
+
+#: src/gpasswd.c:612
+#, c-format
+msgid "%s: can't unlock file\n"
+msgstr "%s: hindi matanggal ang aldaba ng tipunan\n"
+
+#: src/groupadd.c:97
+#, fuzzy, c-format
+msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+msgstr "pag-gamit: groupadd [-g gid [-o]] grupo\n"
+
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
+#, c-format
+msgid "%s: error adding new group entry\n"
+msgstr "%s: error sa pagdagdag ng entry ng bagong grupo\n"
+
+#: src/groupadd.c:219 src/useradd.c:904
+#, c-format
+msgid "%s: name %s is not unique\n"
+msgstr "%s: hindi kakaiba ang pangalang %s\n"
+
+#: src/groupadd.c:234
+#, c-format
+msgid "%s: gid %u is not unique\n"
+msgstr "%s: hindi kakaiba ang gid na %u\n"
+
+#: src/groupadd.c:258
+#, c-format
+msgid "%s: can't get unique gid\n"
+msgstr "%s: hindi makakuha ng kakaibang gid\n"
+
+#: src/groupadd.c:280 src/groupmod.c:283
+#, fuzzy, c-format
+msgid "%s: %s is not a valid group name\n"
+msgstr "%s: %s ay hindi tanggap na pangalan ng grupo\n"
+
+#: src/groupadd.c:309 src/groupmod.c:308
+#, c-format
+msgid "%s: invalid group %s\n"
+msgstr "%s: hindi tanggap na grupo %s\n"
+
+#: src/groupadd.c:326 src/useradd.c:1099
+#, c-format
+msgid "%s: -O requires NAME=VALUE\n"
+msgstr "%s: kinakailangan ng -O ang PANGALAN=HALAGA\n"
+
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
+#, c-format
+msgid "%s: cannot rewrite group file\n"
+msgstr "%s: hindi maisulat muli ang tipunang grupo\n"
+
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
+#, c-format
+msgid "%s: cannot rewrite shadow group file\n"
+msgstr "%s: hindi maisulat muli ang tipunang grupo ng shadow\n"
+
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
+#, c-format
+msgid "%s: unable to lock group file\n"
+msgstr "%s: hindi maaldaba ang tipunang grupo\n"
+
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
+#, c-format
+msgid "%s: unable to open group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo\n"
+
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
+#, c-format
+msgid "%s: unable to lock shadow group file\n"
+msgstr "%s: hindi maaldaba ang tipunang grupo ng shadow\n"
+
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
+#, c-format
+msgid "%s: unable to open shadow group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo ng shadow\n"
+
+#: src/groupadd.c:508
+#, c-format
+msgid "%s: group %s exists\n"
+msgstr "%s: mayroon nang grupong %s\n"
+
+#: src/groupdel.c:83
+#, fuzzy, c-format
+msgid "Usage: groupdel group\n"
+msgstr "pag-gamit: groupdel grupo\n"
+
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
+#, c-format
+msgid "%s: error removing group entry\n"
+msgstr "%s: error sa pagtanggal ng entry ng grupo\n"
+
+#: src/groupdel.c:106
+#, c-format
+msgid "%s: error removing shadow group entry\n"
+msgstr "%s: error sa pagtanggal ng entry ng grupong shadow\n"
+
+#: src/groupdel.c:202
+#, c-format
+msgid "%s: cannot remove user's primary group.\n"
+msgstr "%s: hindi matanggal ang pangunahing grupo ng gumagamit.\n"
+
+#: src/groupdel.c:290 src/groupmod.c:471
+#, c-format
+msgid "%s: group %s does not exist\n"
+msgstr "%s: walang grupong %s\n"
+
+#: src/groupdel.c:303 src/groupmod.c:485
+#, c-format
+msgid "%s: group %s is a NIS group\n"
+msgstr "%s: ang grupong %s ay grupong NIS\n"
+
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
+#, c-format
+msgid "%s: %s is the NIS master\n"
+msgstr "%s: %s ay ang NIS master\n"
+
+#: src/groupmod.c:98
+#, fuzzy, c-format
+msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
+msgstr "pag-gamit: groupmod [-g gid [-o]] [-n pangalan] grupo\n"
+
+#: src/groupmod.c:156
+#, c-format
+msgid "%s: %s not found in /etc/group\n"
+msgstr "%s: %s hindi nahanap sa /etc/group\n"
+
+#: src/groupmod.c:242
+#, c-format
+msgid "%s: %u is not a unique gid\n"
+msgstr "%s: %u ay hindi kakaibang gid\n"
+
+#: src/groupmod.c:272
+#, c-format
+msgid "%s: %s is not a unique name\n"
+msgstr "%s: %s ay hindi kakaibang pangalan\n"
+
+#: src/grpck.c:87
+#, c-format
+msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
+msgstr "Pag-gamit: %s [-r] [-s] [grupo [gshadow]]\n"
+
+#: src/grpck.c:89
+#, c-format
+msgid "Usage: %s [-r] [-s] [group]\n"
+msgstr "Pag-gamit: %s [-r] [-s] [grupo]\n"
+
+#: src/grpck.c:107 src/pwck.c:108
+msgid "No"
+msgstr "Hindi"
+
+#: src/grpck.c:191 src/pwck.c:175
+#, c-format
+msgid "%s: -s and -r are incompatibile\n"
+msgstr "%s: -s at -r ay hindi maaring magkasabay\n"
+
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
+#, c-format
+msgid "%s: cannot lock file %s\n"
+msgstr "%s: hindi maaldaba ang tipunang %s\n"
+
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
+#, c-format
+msgid "%s: cannot open file %s\n"
+msgstr "%s: hindi mabuksan ang tipunang %s\n"
+
+#: src/grpck.c:307
+#, c-format
+msgid "invalid group file entry\n"
+msgstr "hindi tanggap na entry ng tipunang grupo\n"
+
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
+#, c-format
+msgid "delete line `%s'? "
+msgstr "burahin ang linyang `%s'? "
+
+#: src/grpck.c:370
+msgid "duplicate group entry\n"
+msgstr "pangalawang entry ng grupo\n"
+
+#: src/grpck.c:387
+#, c-format
+msgid "invalid group name `%s'\n"
+msgstr "hindi tanggap na pangalan ng grupo `%s'\n"
+
+#: src/grpck.c:413
+#, c-format
+msgid "group %s: no user %s\n"
+msgstr "grupong %s: walang gumagamit %s\n"
+
+#: src/grpck.c:415 src/grpck.c:585
+#, c-format
+msgid "delete member `%s'? "
+msgstr "tanggalin ang miyembrong `%s'? "
+
+#: src/grpck.c:452
+#, c-format
+msgid "invalid shadow group file entry\n"
+msgstr "hindi tanggap na entry sa tipunang shadow group\n"
+
+#: src/grpck.c:515
+msgid "duplicate shadow group entry\n"
+msgstr "dalawahan ang shadow group entry\n"
+
+#: src/grpck.c:532
+msgid "no matching group file entry\n"
+msgstr "walang tumbas na entry sa tipunang grupo\n"
+
+#: src/grpck.c:553
+#, c-format
+msgid "shadow group %s: no administrative user %s\n"
+msgstr "grupong shadow %s: walang tagapamahalang %s\n"
+
+#: src/grpck.c:555
+#, c-format
+msgid "delete administrative member `%s'? "
+msgstr "tanggaling ang miyembrong tagapamahala `%s'? "
+
+#: src/grpck.c:583
+#, c-format
+msgid "shadow group %s: no user %s\n"
+msgstr "grupong shadow %s: walang gumagamit na %s\n"
+
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
+#, c-format
+msgid "%s: cannot update file %s\n"
+msgstr "%s: hindi ma-apdeyt ang tipunang %s\n"
+
+#: src/grpck.c:640 src/pwck.c:606
+#, c-format
+msgid "%s: the files have been updated\n"
+msgstr "%s: ang mga tipunan ay na-apdeyt\n"
+
+#: src/grpck.c:641 src/pwck.c:607
+#, c-format
+msgid "%s: no changes\n"
+msgstr "%s: walang pagbabago\n"
+
+#: src/grpconv.c:60 src/grpunconv.c:56
+#, c-format
+msgid "%s: can't lock group file\n"
+msgstr "%s: hindi maaldaba ang tipunang grupo\n"
+
+#: src/grpconv.c:65 src/grpunconv.c:61
+#, c-format
+msgid "%s: can't open group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo\n"
+
+#: src/grpconv.c:70 src/grpunconv.c:66
+#, c-format
+msgid "%s: can't lock shadow group file\n"
+msgstr "%s: hindi maaldaba ang tipunang grupo na shadow\n"
+
+#: src/grpconv.c:75 src/grpunconv.c:71
+#, c-format
+msgid "%s: can't open shadow group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo na shadow\n"
+
+#: src/grpconv.c:92
+#, c-format
+msgid "%s: can't remove shadow group %s\n"
+msgstr "%s: hindi matanggal ang grupong shadow %s\n"
+
+#: src/grpconv.c:130 src/pwconv.c:153
+#, c-format
+msgid "%s: can't update shadow entry for %s\n"
+msgstr "%s: hindi ma-apdeyt ang ipinasok sa shadow para kay %s\n"
+
+#: src/grpconv.c:140 src/grpunconv.c:88
+#, c-format
+msgid "%s: can't update entry for group %s\n"
+msgstr "%s: hindi ma-apdeyt ang ipinasok para sa grupong %s\n"
+
+#: src/grpconv.c:147 src/grpunconv.c:96
+#, c-format
+msgid "%s: can't update shadow group file\n"
+msgstr "%s: hindi ma-apdeyt ang tipunang grupo na shadow\n"
+
+#: src/grpconv.c:152 src/grpunconv.c:102
+#, c-format
+msgid "%s: can't update group file\n"
+msgstr "%s: hindi ma-apdeyt ang tipunang grupo\n"
+
+#: src/grpunconv.c:107
+#, c-format
+msgid "%s: can't delete shadow group file\n"
+msgstr "%s: hindi matanggal ang tipunang grupo na shadow\n"
+
+#: src/id.c:53
+#, fuzzy, c-format
+msgid "Usage: id [-a]\n"
+msgstr "pag-gamit: id [-a]\n"
+
+#: src/id.c:55
+#, fuzzy, c-format
+msgid "Usage: id\n"
+msgstr "pag-gamit: id\n"
+
+#: src/id.c:169
+#, c-format
+msgid " groups="
+msgstr " mga grupo="
+
+#: src/lastlog.c:64
+#, fuzzy, c-format
+msgid ""
+"Usage: lastlog [options]\n"
+"\n"
+"Options:\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+"  -h, --help\t\tdisplay this help message and exit\n"
+"  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
+msgstr ""
+"Pag-gamit: chpasswd [mga option]\n"
+"\n"
+"Mga option:\n"
+"  -e, --encrypted\tang mga bigay na mga password ay naka-encrypt\n"
+"  -h, --help\t\tipakita itong payo na ito at lumabas\n"
+"  -m, --md5\t\tgamitin ang MD5 encryption imbes na DES kapag ang\n"
+"\t\t\tmga ibinigay na mga password ay hindi naka-encrypt\n"
+
+#: src/lastlog.c:90
+#, c-format
+msgid "Username         Port     From             Latest\n"
+msgstr "Pangalan         Puerta   Mula            Hulihan\n"
+
+#: src/lastlog.c:92
+#, c-format
+msgid "Username                Port     Latest\n"
+msgstr "Pangalan                Puerta  Hulihan\n"
+
+#: src/lastlog.c:107
+msgid "**Never logged in**"
+msgstr "**Di pumasok kailanman**"
+
+#: src/login.c:156
+#, fuzzy, c-format
+msgid "Usage: %s [-p] [name]\n"
+msgstr "pag-gamit: %s [-p] [pangalan]\n"
+
+#: src/login.c:159
+#, c-format
+msgid "       %s [-p] [-h host] [-f name]\n"
+msgstr "       %s [-p] [-h host] [-f pangalan]\n"
+
+#: src/login.c:161
+#, c-format
+msgid "       %s [-p] -r host\n"
+msgstr "       %s [-p] -r host\n"
+
+#: src/login.c:198
+#, c-format
+msgid "Invalid login time\n"
+msgstr "Di tamang oras ng pagpasok\n"
+
+#: src/login.c:234
+#, c-format
+msgid ""
+"\n"
+"System closed for routine maintenance\n"
+msgstr ""
+"\n"
+"Sarado ang sistema para sa kinagawiang pagtaguyod\n"
+
+#: src/login.c:244
+#, c-format
+msgid ""
+"\n"
+"[Disconnect bypassed -- root login allowed.]\n"
+msgstr ""
+"\n"
+"[Nilaktawan ang pag-diskonek -- pinayagang makapasok ang root.]\n"
+
+#: src/login.c:297
+#, c-format
+msgid ""
+"\n"
+"Login timed out after %d seconds.\n"
+msgstr ""
+"\n"
+"Lumipas ang taning ng pagpasok ng %d segundo.\n"
+
+#: src/login.c:565
+#, c-format
+msgid " on `%.100s' from `%.200s'"
+msgstr " ng `%.100s' mula `%.200s'"
+
+#: src/login.c:568
+#, c-format
+msgid " on `%.100s'"
+msgstr " ng `%.100s'"
+
+#: src/login.c:722
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+"\n"
+"%s login: "
+
+#: src/login.c:879 src/sulogin.c:203
+msgid "Login incorrect"
+msgstr "Maling pagpasok"
+
+#: src/login.c:996
+msgid "Warning: login re-enabled after temporary lockout.\n"
+msgstr "Babala: pagpasok ay enabled muli matapos ng panandalian pagbawal.\n"
+
+#: src/login.c:1010
+#, c-format
+msgid "Last login: %s on %s"
+msgstr "Huling pagpasok: %s sa %s"
+
+#: src/login.c:1013
+#, c-format
+msgid "Last login: %.19s on %s"
+msgstr "Huling pagpasok: %.19s sa %s"
+
+#: src/login.c:1018
+#, c-format
+msgid " from %.*s"
+msgstr " mula %.*s"
+
+#: src/mkpasswd.c:47
+#, c-format
+msgid "%s: no DBM database on system - no action performed\n"
+msgstr "%s: walang DBM database sa sistema - walang ginawa\n"
+
+#: src/mkpasswd.c:231 src/mkpasswd.c:236
+#, c-format
+msgid "%s: cannot overwrite file %s\n"
+msgstr "%s: hindi mapatungan ang tipunang %s\n"
+
+#: src/mkpasswd.c:251
+#, c-format
+msgid "%s: cannot open DBM files for %s\n"
+msgstr "%s: hindi mabuksan ang tipunang DBM para sa %s\n"
+
+#: src/mkpasswd.c:286
+#, fuzzy, c-format
+msgid "%s: the line beginning with %.16s... is too long\n"
+msgstr "%s: nag-umpisa sa "
+
+#: src/mkpasswd.c:313
+#, c-format
+msgid "%s: error parsing line \"%s\"\n"
+msgstr "%s: error sa pagbasa ng linya \"%s\"\n"
+
+#: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
+#, fuzzy, c-format
+msgid "adding record for name %s\n"
+msgstr "dinadagdag ang record para sa pangalan "
+
+#: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
+#, fuzzy, c-format
+msgid "%s: error adding record for %s\n"
+msgstr "%s: error sa pagdagdag ng record para "
+
+#: src/mkpasswd.c:376
+#, c-format
+msgid "added %d entries, longest was %d\n"
+msgstr "nagdagdag ng %d na ipinasok, pinakamahaba ang %d\n"
+
+#: src/mkpasswd.c:389
+#, c-format
+msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
+msgstr "Pag-gamit: %s [-vf] [-p|g|sp|sg] tipunan\n"
+
+#: src/mkpasswd.c:391
+#, c-format
+msgid "Usage: %s [-vf] [-p|g|sp] file\n"
+msgstr "Pag-gamit: %s [-vf] [-p|g|sp] tipunan\n"
+
+#: src/mkpasswd.c:394
+#, c-format
+msgid "Usage: %s [-vf] [-p|g] file\n"
+msgstr "Pag-gamit: %s [-vf] [-p|g] tipunan\n"
+
+#: src/newgrp.c:61
+#, fuzzy, c-format
+msgid "Usage: newgrp [-] [group]\n"
+msgstr "pag-gamit: newgrp [-] [grupo]\n"
+
+#: src/newgrp.c:63
+#, fuzzy, c-format
+msgid "Usage: sg group [[-c] command]\n"
+msgstr "pag-gamit: sg grupo [[-c] utos]\n"
+
+#: src/newgrp.c:131
+#, c-format
+msgid "unknown uid: %u\n"
+msgstr "di kilalang uid: %u\n"
+
+#: src/newgrp.c:213
+#, c-format
+msgid "unknown gid: %lu\n"
+msgstr "di kilalang gid: %lu\n"
+
+#: src/newgrp.c:358 src/newgrp.c:367
+msgid "Sorry.\n"
+msgstr "Ipagpaumanhin.\n"
+
+#: src/newgrp.c:467
+#, c-format
+msgid "too many groups\n"
+msgstr "labis ang dami ng mga grupo\n"
+
+#: src/newusers.c:78
+#, c-format
+msgid "Usage: %s [input]\n"
+msgstr "Pag-gamit: %s [input]\n"
+
+#: src/newusers.c:382
+#, c-format
+msgid "%s: can't lock /etc/passwd.\n"
+msgstr "%s: hindi maaldaba ang /etc/passwd.\n"
+
+#: src/newusers.c:394
+#, c-format
+msgid "%s: can't lock files, try again later\n"
+msgstr "%s: hindi makapag-aldaba ng mga tipunan, subukan muli mamaya.\n"
+
+#: src/newusers.c:409
+#, c-format
+msgid "%s: can't open files\n"
+msgstr "%s: hindi mabuksan ang mga tipunan\n"
+
+#: src/newusers.c:454
+#, c-format
+msgid "%s: line %d: invalid line\n"
+msgstr "%s: linya %d: hindi tanggap na linya\n"
+
+#: src/newusers.c:473
+#, c-format
+msgid "%s: line %d: can't create GID\n"
+msgstr "%s: linya %d: hindi makalikha ng GID\n"
+
+#: src/newusers.c:489
+#, c-format
+msgid "%s: line %d: can't create UID\n"
+msgstr "%s: linya %d: hindi makalikha ng UID\n"
+
+#: src/newusers.c:502
+#, c-format
+msgid "%s: line %d: cannot find user %s\n"
+msgstr "%s: linya %d: hindi mahanap ang gumagamit %s\n"
+
+#: src/newusers.c:511
+#, c-format
+msgid "%s: line %d: can't update password\n"
+msgstr "%s: linya %d: hindi ma-apdeyt ang password\n"
+
+#: src/newusers.c:529
+#, c-format
+msgid "%s: line %d: mkdir failed\n"
+msgstr "%s: linya %d: sawi ang mkdir\n"
+
+#: src/newusers.c:534
+#, c-format
+msgid "%s: line %d: chown failed\n"
+msgstr "%s: linya %d: sawi ang chown\n"
+
+#: src/newusers.c:544
+#, c-format
+msgid "%s: line %d: can't update entry\n"
+msgstr "%s: linya %d: hindi ma-apdeyt ang ipinasok\n"
+
+#: src/newusers.c:576
+#, c-format
+msgid "%s: error updating files\n"
+msgstr "%s: error sa pag-apdeyt ng mga tipunan\n"
+
+#: src/passwd.c:154
+#, fuzzy, c-format
+msgid "Usage: %s [-f|-s] [name]\n"
+msgstr "pag-gamit: %s [-f|-s] [pangalan]\n"
+
+#: src/passwd.c:158
+#, c-format
+msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
+msgstr "       %s [-x max] [-n min] [-w babala] [-i inakt] pangalan\n"
+
+#: src/passwd.c:160
+#, c-format
+msgid "       %s {-l|-u|-d|-S|-e} name\n"
+msgstr "       %s {-l|-u|-d|-S|-e} pangalan\n"
+
+#: src/passwd.c:214
+msgid "Old password: "
+msgstr "Lumang password: "
+
+#: src/passwd.c:223
+#, c-format
+msgid "Incorrect password for `%s'\n"
+msgstr "Maling password para kay `%s'\n"
+
+#: src/passwd.c:247
+#, c-format
+msgid ""
+"Enter the new password (minimum of %d, maximum of %d characters)\n"
+"Please use a combination of upper and lower case letters and numbers.\n"
+msgstr ""
+"Ibigay ang bagong password (minimum na %d, maximum na %d karakter)\n"
+"Gumamit ng kombinasyon ng malaki at maliit na titik at mga numero.\n"
+
+#: src/passwd.c:253
+msgid "New password: "
+msgstr "Bagong password: "
+
+#: src/passwd.c:263
+#, c-format
+msgid "Try again.\n"
+msgstr "Subukan muli.\n"
+
+#: src/passwd.c:274
+#, c-format
+msgid ""
+"\n"
+"Warning: weak password (enter it again to use it anyway).\n"
+msgstr ""
+"\n"
+"Babala: mahinang password (ibigay ito muli upang gamitin pa rin).\n"
+
+#: src/passwd.c:283
+#, c-format
+msgid "They don't match; try again.\n"
+msgstr "Hindi sila magkapareho; subukan muli.\n"
+
+#: src/passwd.c:360 src/passwd.c:377
+#, c-format
+msgid "The password for %s cannot be changed.\n"
+msgstr "Ang password ni %s ay hindi mapapalitan.\n"
+
+#: src/passwd.c:390
+#, c-format
+msgid "Sorry, the password for %s cannot be changed yet.\n"
+msgstr "Ipagpaumanhin, ang password ni %s ay hindi pa mapapalitan.\n"
+
+#: src/passwd.c:472
+#, c-format
+msgid "%s: out of memory\n"
+msgstr "%s: nagkulang ng memory\n"
+
+#: src/passwd.c:701
+#, c-format
+msgid "%s: Cannot execute %s"
+msgstr "%s: Hindi mapatakbo ang %s"
+
+#: src/passwd.c:786
+#, c-format
+msgid "%s: repository %s not supported\n"
+msgstr "%s: hindi suportado ang repositoryong %s\n"
+
+#: src/passwd.c:884
+#, fuzzy, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "Hindi niyo mapapalitan ang shell para kay %s.\n"
+
+#: src/passwd.c:934
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "Pinapalitan ang password ni %s\n"
+
+#: src/passwd.c:938
+#, c-format
+msgid "The password for %s is unchanged.\n"
+msgstr "Ang password ni %s ay hindi napalitan.\n"
+
+#: src/passwd.c:987
+#, c-format
+msgid "Password changed.\n"
+msgstr "Napalitan ang password.\n"
+
+#: src/pwck.c:87
+#, c-format
+msgid "Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"
+msgstr "Pag-gamit: %s [-q] [-r] [-s] [passwd [shadow]]\n"
+
+#: src/pwck.c:90
+#, c-format
+msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
+msgstr "Pag-gamit: %s [-q] [-r] [-s] [passwd]\n"
+
+#: src/pwck.c:292
+#, c-format
+msgid "invalid password file entry\n"
+msgstr "hindi tanggap na ipinasok sa tipunang password\n"
+
+#: src/pwck.c:354
+msgid "duplicate password entry\n"
+msgstr "nadobleng ipinasok sa password\n"
+
+#: src/pwck.c:370
+#, c-format
+msgid "invalid user name '%s'\n"
+msgstr "hindi tanggap na pangalan '%s'\n"
+
+#: src/pwck.c:384
+#, c-format
+msgid "user %s: no group %u\n"
+msgstr "gumagamit %s: walang grupo %u\n"
+
+#: src/pwck.c:400
+#, c-format
+msgid "user %s: directory %s does not exist\n"
+msgstr "gumagamit %s: walang directory na %s\n"
+
+#: src/pwck.c:416
+#, c-format
+msgid "user %s: program %s does not exist\n"
+msgstr "gumagamit %s: walang programang %s\n"
+
+#: src/pwck.c:452
+#, c-format
+msgid "invalid shadow password file entry\n"
+msgstr "hindi tanggap na ipinasok sa tipunang password na shadow\n"
+
+#: src/pwck.c:514
+msgid "duplicate shadow password entry\n"
+msgstr "nadobleng ipinasok sa tipunang password ng shadow\n"
+
+#: src/pwck.c:538
+msgid "no matching password file entry\n"
+msgstr "walang kaparehas na ipinasok sa tipunang password\n"
+
+#: src/pwck.c:556
+#, c-format
+msgid "user %s: last password change in the future\n"
+msgstr "gumagamit %s: huling pagpalit ng password ay nasa hinaharap\n"
+
+#: src/pwconv.c:85 src/pwunconv.c:79
+#, c-format
+msgid "%s: can't lock passwd file\n"
+msgstr "%s: hindi maaldaba ang tipunang passwd\n"
+
+#: src/pwconv.c:90 src/pwunconv.c:84
+#, c-format
+msgid "%s: can't open passwd file\n"
+msgstr "%s: hindi mabuksan ang tipunang passwd\n"
+
+#: src/pwconv.c:118
+#, c-format
+msgid "%s: can't remove shadow entry for %s\n"
+msgstr "%s: hindi matanggal ang ipinasok sa shadow para kay %s\n"
+
+#: src/pwconv.c:163
+#, c-format
+msgid "%s: can't update passwd entry for %s\n"
+msgstr "%s: hindi maapdeyt ang ipinasok sa passwd para kay %s\n"
+
+#: src/pwconv.c:170
+#, c-format
+msgid "%s: can't update shadow file\n"
+msgstr "%s: hindi maapdeyt ang tipunang shadow\n"
+
+#: src/pwconv.c:174
+#, c-format
+msgid "%s: can't update passwd file\n"
+msgstr "%s: hindi maapdeyt ang tipunang passwd\n"
+
+#: src/pwunconv.c:124
+#, c-format
+msgid "%s: can't update entry for user %s\n"
+msgstr "%s: hindi maapdeyt ang ipinasok para kay %s\n"
+
+#: src/pwunconv.c:143
+#, c-format
+msgid "%s: can't delete shadow password file\n"
+msgstr "%s: hindi matanggal ang tipunang password ng shadow\n"
+
+#: src/su.c:132
+msgid "Sorry."
+msgstr "Ipagpaumanhin."
+
+#: src/su.c:320
+#, c-format
+msgid "%s: must be run from a terminal\n"
+msgstr "%s: kinakailangang patakbuhin mula sa isang terminal\n"
+
+#: src/su.c:419
+#, c-format
+msgid "%s: pam_start: error %d\n"
+msgstr "%s: pam_start: error %d\n"
+
+#: src/su.c:447
+#, c-format
+msgid "Unknown id: %s\n"
+msgstr "Di kilalang id: %s\n"
+
+#: src/su.c:484 src/su.c:500
+#, c-format
+msgid "You are not authorized to su %s\n"
+msgstr "Hindi kayo awtorisadong gumamit ng su %s\n"
+
+#: src/su.c:495
+msgid "(Enter your own password.)"
+msgstr "(Ibigay ang sarili niyong password.)"
+
+#: src/su.c:527
+#, c-format
+msgid ""
+"%s: %s\n"
+"(Ignored)\n"
+msgstr ""
+"%s: %s\n"
+"(Di pinansin)\n"
+
+#: src/su.c:741
+#, c-format
+msgid "No shell\n"
+msgstr "Walang shell\n"
+
+#: src/suauth.c:104
+#, c-format
+msgid "Access to su to that account DENIED.\n"
+msgstr "Ang paggamit ng su sa account na iyan ay IPINAGBAWAL.\n"
+
+#: src/suauth.c:112
+#, c-format
+msgid "Password authentication bypassed.\n"
+msgstr "Linampasan ang password authentication.\n"
+
+#: src/suauth.c:121
+#, c-format
+msgid "Please enter your OWN password as authentication.\n"
+msgstr "Ibigay ang inyong SARILING password bilang authentication.\n"
+
+#: src/sulogin.c:118
+#, c-format
+msgid "No password file\n"
+msgstr "Walang tipunang password\n"
+
+#: src/sulogin.c:160
+#, c-format
+msgid "No password entry for 'root'\n"
+msgstr "Walang ipinasok sa password para sa 'root'\n"
+
+#: src/sulogin.c:175
+msgid ""
+"\n"
+"Type control-d to proceed with normal startup,\n"
+"(or give root password for system maintenance):"
+msgstr ""
+"\n"
+"Itiklado ang control-d upang magpatuloy ng normal na startup,\n"
+"(o ibigay ang password ng root para sa pagtataguyod ng sistema):"
+
+#: src/sulogin.c:210
+msgid "Entering System Maintenance Mode\n"
+msgstr "Pumapasok sa Modang Pagtataguyod ng Sistema\n"
+
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
+#, c-format
+msgid "%s: invalid numeric argument `%s'\n"
+msgstr "%s: hindi tanggap na argumentong numero `%s'\n"
+
+#: src/useradd.c:298
+#, c-format
+msgid "%s: unknown gid %s\n"
+msgstr "%s: di kilalang gid %s\n"
+
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
+#, c-format
+msgid "%s: unknown group %s\n"
+msgstr "%s: di kilalang grupo %s\n"
+
+#: src/useradd.c:418
+#, c-format
+msgid "%s: cannot create new defaults file\n"
+msgstr "%s: hindi malikha ang bagong tipunan ng mga default\n"
+
+#: src/useradd.c:423
+#, c-format
+msgid "%s: cannot open new defaults file\n"
+msgstr "%s: hindi mabuksan ang bagong tipunan ng mga default\n"
+
+#: src/useradd.c:515 src/useradd.c:526
+#, c-format
+msgid "%s: rename: %s"
+msgstr "%s: baguhin ang pangalan: %s"
+
+#: src/useradd.c:619 src/usermod.c:248
+#, c-format
+msgid "%s: group `%s' is a NIS group.\n"
+msgstr "%s: ang grupong `%s' ay grupong NIS.\n"
+
+#: src/useradd.c:628 src/usermod.c:257
+#, c-format
+msgid "%s: too many groups specified (max %d).\n"
+msgstr "%s: sobrang dami ng grupo ang nakatakda (max %d).\n"
+
+#: src/useradd.c:660
+#, fuzzy, c-format
+msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
+msgstr "pag-gamit: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
+
+#: src/useradd.c:663
+#, fuzzy, c-format
+msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
+msgstr "\t\t[-d bahay] [-s shell] [-c comment] [-m [-k template]]\n"
+
+#: src/useradd.c:665 src/useradd.c:671
+#, fuzzy, c-format
+msgid "               [-f inactive] [-e expire]\n"
+msgstr "\t\t[-f inaktibo] [-e paso ]\n"
+
+#: src/useradd.c:667
+#, fuzzy, c-format
+msgid "               [-p passwd] name\n"
+msgstr "[-p passwd] pangalan\n"
+
+#: src/useradd.c:669
+#, fuzzy, c-format
+msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
+msgstr "       %s\t-D [-g grupo] [-b base] [-s shell]\n"
+
+#: src/useradd.c:756 src/usermod.c:444
+#, c-format
+msgid "%s: error locking group file\n"
+msgstr "%s: error sa pagaldaba ng tipunang grupo\n"
+
+#: src/useradd.c:760 src/usermod.c:449
+#, c-format
+msgid "%s: error opening group file\n"
+msgstr "%s: error sa pagbukas ng tipunang grupo\n"
+
+#: src/useradd.c:766 src/usermod.c:542
+#, c-format
+msgid "%s: error locking shadow group file\n"
+msgstr "%s: error sa pagaldaba ng tipunang grupo ng shadow\n"
+
+#: src/useradd.c:771 src/usermod.c:548
+#, c-format
+msgid "%s: error opening shadow group file\n"
+msgstr "%s: error sa pagbukas ng tipunang grupo ng shadow\n"
+
+#: src/useradd.c:909
+#, c-format
+msgid "%s: uid %u is not unique\n"
+msgstr "%s: ang uid %u ay hindi kakaiba\n"
+
+#: src/useradd.c:939
+#, c-format
+msgid "%s: can't get unique uid\n"
+msgstr "%s: hindi makakuha ng kakaibang uid\n"
+
+#: src/useradd.c:975
+#, c-format
+msgid "%s: invalid base directory `%s'\n"
+msgstr "%s: hindi tanggap na batayang directory `%s'\n"
+
+#: src/useradd.c:985
+#, c-format
+msgid "%s: invalid comment `%s'\n"
+msgstr "%s: hindi tanggap na komento `%s'\n"
+
+#: src/useradd.c:996
+#, c-format
+msgid "%s: invalid home directory `%s'\n"
+msgstr "%s: hindi tanggap na bahay directory `%s'\n"
+
+#: src/useradd.c:1015 src/usermod.c:796
+#, c-format
+msgid "%s: invalid date `%s'\n"
+msgstr "%s: hindi tanggap na petsa `%s'\n"
+
+#: src/useradd.c:1028
+#, c-format
+msgid "%s: shadow passwords required for -e\n"
+msgstr "%s: kailangan ng shadow password para sa -e\n"
+
+#: src/useradd.c:1044
+#, c-format
+msgid "%s: shadow passwords required for -f\n"
+msgstr "%s: kailangan ng shadow password para sa -f\n"
+
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
+#, c-format
+msgid "%s: invalid field `%s'\n"
+msgstr "%s: hindi tanggap na field `%s'\n"
+
+#: src/useradd.c:1122
+#, c-format
+msgid "%s: invalid shell `%s'\n"
+msgstr "%s: hindi tanggap na shell `%s'\n"
+
+#: src/useradd.c:1163
+#, c-format
+msgid "%s: invalid user name '%s'\n"
+msgstr "%s: hindi tanggap na pangalan `%s'\n"
+
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
+#, c-format
+msgid "%s: cannot rewrite password file\n"
+msgstr "%s: hindi maisulat muli ang tipunang password\n"
+
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
+#, c-format
+msgid "%s: cannot rewrite shadow password file\n"
+msgstr "%s: hindi maisulat muli ang tipunang password na shadow\n"
+
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
+#, c-format
+msgid "%s: unable to lock password file\n"
+msgstr "%s: hindi maaldaba ang tipunang password\n"
+
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
+#, c-format
+msgid "%s: unable to open password file\n"
+msgstr "%s: hindi mabuksan ang tipunang password\n"
+
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
+#, c-format
+msgid "%s: cannot lock shadow password file\n"
+msgstr "%s: hindi maaldaba ang tipunang password ng shadow\n"
+
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
+#, c-format
+msgid "%s: cannot open shadow password file\n"
+msgstr "%s: hindi mabuksan ang tipunang password ng shadow\n"
+
+#: src/useradd.c:1354
+#, c-format
+msgid "%s: error adding new password entry\n"
+msgstr "%s: error sa pagdagdag ng bagong ipapasok sa password\n"
+
+#: src/useradd.c:1365 src/usermod.c:1063
+#, c-format
+msgid "%s: error adding new shadow password entry\n"
+msgstr "%s: error sa pagdagdag ng bagong ipinasok na password sa shadow\n"
+
+#: src/useradd.c:1393
+#, c-format
+msgid "%s: cannot create directory %s\n"
+msgstr "%s: hindi malikha ang directory %s\n"
+
+#: src/useradd.c:1423
+#, c-format
+msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
+msgstr ""
+
+#: src/useradd.c:1446
+#, fuzzy, c-format
+msgid "Can't create mail spool for user %s.\n"
+msgstr "%s: hindi maapdeyt ang ipinasok para kay %s\n"
+
+#: src/useradd.c:1550 src/usermod.c:919
+#, c-format
+msgid "%s: user %s exists\n"
+msgstr "%s: mayroon nang gumagamit na %s\n"
+
+#: src/useradd.c:1564
+#, c-format
+msgid ""
+"%s: group %s exists - if you want to add this user to that group, use -g.\n"
+msgstr ""
+"%s: mayroon nang grupong %s - kung nais niyong idagdag ang gumagamit na ito "
+"sa grupong iyon, gamitin ang -g.\n"
+
+#: src/useradd.c:1602
+#, c-format
+msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
+msgstr "%s: babala: CREATE_HOME hindi suportado, gamitin na lamang ang -m.\n"
+
+#: src/userdel.c:108
+#, fuzzy, c-format
+msgid "Usage: %s [-r] name\n"
+msgstr "pag-gamit: %s [-r] pangalan\n"
+
+#: src/userdel.c:160 src/userdel.c:221
+#, c-format
+msgid "%s: error updating group entry\n"
+msgstr "%s: error sa pag-apdeyt ng ipinasok sa grupo\n"
+
+#: src/userdel.c:315
+#, c-format
+msgid "%s: cannot open group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo\n"
+
+#: src/userdel.c:325
+#, c-format
+msgid "%s: cannot open shadow group file\n"
+msgstr "%s: hindi mabuksan ang tipunang grupo ng shadow\n"
+
+#: src/userdel.c:343
+#, c-format
+msgid "%s: error deleting password entry\n"
+msgstr "%s: error sa pagtanggal ng ipinasok na password\n"
+
+#: src/userdel.c:347
+#, c-format
+msgid "%s: error deleting shadow password entry\n"
+msgstr "%s: error sa pagtanggal ng ipinasok na password sa shadow\n"
+
+#: src/userdel.c:388
+#, c-format
+msgid "%s: user %s is currently logged in\n"
+msgstr "%s: gumagamit na si %s ay kasalukuyang nakapasok\n"
+
+#: src/userdel.c:496 src/userdel.c:641
+#, c-format
+msgid "%s: %s not owned by %s, not removing\n"
+msgstr "%s: %s ay hindi pag-aari ni %s, hindi tatanggalin\n"
+
+#: src/userdel.c:502
+#, c-format
+msgid "%s: warning: can't remove "
+msgstr "%s: babala: hindi matanggal "
+
+#: src/userdel.c:592 src/usermod.c:722
+#, c-format
+msgid "%s: user %s does not exist\n"
+msgstr "%s: walang gumagamit na nagngangalang %s\n"
+
+#: src/userdel.c:607 src/usermod.c:738
+#, c-format
+msgid "%s: user %s is a NIS user\n"
+msgstr "%s: ang gumagamit na %s ay nasa NIS\n"
+
+#: src/userdel.c:664
+#, c-format
+msgid "%s: not removing directory %s (would remove home of user %s)\n"
+msgstr "%s: hindi tatanggalin ang directory %s (mawawalan ng bahay si %s)\n"
+
+#: src/userdel.c:678
+#, c-format
+msgid "%s: error removing directory %s\n"
+msgstr "%s: error sa pagtanggal ng directory %s\n"
+
+#: src/usermod.c:289
+#, fuzzy, c-format
+msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
+msgstr "pag-gamit: %s\t[-u uid [-o]] [-g grupo] [-G grupo,...] \n"
+
+#: src/usermod.c:293
+#, c-format
+msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
+msgstr "\t\t[-d bahay [-m]] [-s shell] [-c comment] [-| bagong_pangalan]\n"
+
+#: src/usermod.c:296
+#, fuzzy, c-format
+msgid "[-f inactive] [-e expire] "
+msgstr "[-f inaktibo] [-e paso ] "
+
+#: src/usermod.c:298
+#, c-format
+msgid "[-p passwd] [-L|-U] name\n"
+msgstr "[-p passwd] [-L|-U] pangalan\n"
+
+#: src/usermod.c:476
+#, c-format
+msgid "%s: out of memory in update_group\n"
+msgstr "%s: naubos ang memory sa update_group\n"
+
+#: src/usermod.c:585
+#, c-format
+msgid "%s: out of memory in update_gshadow\n"
+msgstr "%s: naubos ang memory sa update_gshadow\n"
+
+#: src/usermod.c:896
+#, c-format
+msgid "%s: no flags given\n"
+msgstr "%s: walang binigay na mga flag\n"
+
+#: src/usermod.c:903
+#, c-format
+msgid "%s: shadow passwords required for -e and -f\n"
+msgstr "%s: kailangan ang shadow password para sa -e at -f\n"
+
+#: src/usermod.c:924
+#, c-format
+msgid "%s: uid %lu is not unique\n"
+msgstr "%s: uid %lu ay hindi kakaiba\n"
+
+#: src/usermod.c:1047
+#, c-format
+msgid "%s: error changing password entry\n"
+msgstr "%s: error sa pagpalit ng ipinasok na password\n"
+
+#: src/usermod.c:1053
+#, c-format
+msgid "%s: error removing password entry\n"
+msgstr "%s: error sa pagtanggal ng ipinasok na password\n"
+
+#: src/usermod.c:1070
+#, c-format
+msgid "%s: error removing shadow password entry\n"
+msgstr "%s: error sa pagtanggal ng ipinasok na shadow password\n"
+
+#: src/usermod.c:1098
+#, c-format
+msgid "%s: directory %s exists\n"
+msgstr "%s: mayroon nang directory na %s\n"
+
+#: src/usermod.c:1106
+#, c-format
+msgid "%s: can't create %s\n"
+msgstr "%s: hindi malikha ang %s\n"
+
+#: src/usermod.c:1111
+#, c-format
+msgid "%s: can't chown %s\n"
+msgstr "%s: hindi ma-chown %s\n"
+
+#: src/usermod.c:1128
+#, c-format
+msgid "%s: cannot rename directory %s to %s\n"
+msgstr "%s: hindi mapalitan ng pangalan ang directory %s sa %s\n"
+
+#: src/usermod.c:1223
+#, c-format
+msgid "%s: warning: %s not owned by %s\n"
+msgstr "%s: babala: %s ay hindi pag-aari ni %s\n"
+
+#: src/usermod.c:1229
+msgid "failed to change mailbox owner"
+msgstr "sawi sa pagpalit ng may-ari ng mailbox"
+
+#: src/usermod.c:1237
+msgid "failed to rename mailbox"
+msgstr "sawi sa pagpalit ng pangalan ng mailbox"
+
+#: src/vipw.c:104
+#, c-format
+msgid ""
+"\n"
+"%s: %s is unchanged\n"
+msgstr ""
+"\n"
+"%s: %s ay hindi binago\n"
+
+#: src/vipw.c:131
+msgid "Couldn't lock file"
+msgstr "Hindi maaldaba ang tipunan"
+
+#: src/vipw.c:140
+msgid "Couldn't make backup"
+msgstr "Hindi makagawa ng backup"
+
+#: src/vipw.c:196
+#, c-format
+msgid "%s: can't restore %s: %s (your changes are in %s)\n"
+msgstr "%s: hindi maibalik ang %s: %s (ang mga pagbabago ay nasa %s)\n"
+
+#: src/vipw.c:234
+#, c-format
+msgid ""
+"Usage:\n"
+"`vipw' edits /etc/passwd        `vipw -s' edits /etc/shadow\n"
+"`vigr' edits /etc/group         `vigr -s' edits /etc/gshadow\n"
+msgstr ""
+"Pag-gamit:\n"
+"`vipw' ine-edit /etc/passwd     `vipw -s' ine-edit /etc/shadow\n"
+"`vigr' ine-edit /etc/group      `vigr -s' ine-edit /etc/gshadow\n"
index 2934f6c4b346c70d29032552e079eccaeff8cbc3..588d5b91fc7c8313d0e6f306cc4bb1ce67e3da24 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 20212ec7a47a4625069496fbecd7f45788e4cc4d..f32d9fc273159be48dec423e78fa04ad86016ce1 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-06-13 10:27+0300\n"
 "Last-Translator: Mehmet Türker <mturker@innova.com.tr>\n"
 "Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
@@ -20,7 +20,7 @@ msgstr ""
 msgid "Warning: unknown group %s\n"
 msgstr "Uyarı: bilinmeyen grup %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "Uyarı: grup sayısı çok fazla\n"
@@ -48,17 +48,17 @@ msgstr "  Sistem yöneticisine başvurunuz.\n"
 msgid "  Choose a new password.\n"
 msgstr "Yeni bir parola seçin.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Parolanızın kullanım süresi %ld gün sonra dolacaktır.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Parolanızın kullanım süresi yarın dolacaktır.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Parolanızın kullanım süresi bugün dolacaktır.\n"
@@ -73,42 +73,27 @@ msgstr "Geçilemeyen tty: %s"
 msgid "Environment overflow\n"
 msgstr "Ortam taşması\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "$%s değiştirilemez\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
 "Son girişten beri %d başarısız girişim.  En sonuncusu %s üzerinde %s idi.\n"
 
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
-
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "Çok fazla oturum.\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Parola %s kullanıcısına ait gizli anahtarı çözemez.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr ""
-"%s kullanıcısının gizli anahtarı tanımlanamadı: keyserv sunucusu çalışıyor "
-"mu?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "Yeni e-postanız var."
@@ -121,7 +106,7 @@ msgstr "E-Posta yok."
 msgid "You have mail."
 msgstr "E-Postanız var."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Hatalı parola: %s.  "
@@ -136,20 +121,20 @@ msgstr "passwd: pam_start() başarısız, hata %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "\"%s\" dizinine geçilemiyor\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "Dizin yok, HOME=/ ile giriş yapılıyor"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "%s çalıştırılamıyor"
@@ -164,36 +149,32 @@ msgstr "Geçersiz kök dizin \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Kök dizin \"%s\" olarak değiştirilemiyor\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) başarısız oldu\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Yapılandırma bilgileri için yer ayrılamadı.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "yapılandırma hatası - bilinmeyen öğe '%s' (sistem yöneticisine bildirin)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Parola: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s kullanıcı parolası: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Görüntüleme etkin) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -202,154 +183,147 @@ msgstr ""
 "Kullanım: chage [-l] [-m min_gün_sayısı] [-M max_gün_sayısı] [-W uyarı]\n"
 "                [-I pasif] [-E hesap_bitimi] [-d son_gün] kullanıcı\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "Yeni değeri girin, veya varsayılan değer için ENTER'a basın\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Asgari Parola Ömrü"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "Azami Parola Ömrü"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Son Parola Değişimi (YYYY-AA-GG)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Parola Kullanım Süresi Bitti Uyarısı"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Parola Pasif"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Hesap Bitimi Tarihi (YYYY-AA-GG)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "Son Parola Değişimi (YYYY-AA-GG)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "Hiçbir zaman\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "Parola Kullanım Süresi Dolumu:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "Parola Pasif:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "Hesap Bitimi:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, fuzzy, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "Maksimum giriş denemesi sayısı aşıldı (%d)\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: diğer bayraklarla beraber \"l\" yi kullanmayınız\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s: müsaade edilmedi\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM yetkilendirmesi başarısız oldu\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: parola dosyası açılamadı\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: bilinmeyen kullanıcı %s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s: gölge parola dosyası kilitlenemedi"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s: gölge parola dosyası açılamadı"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "%s için ömür bilgisi değiştiriliyor\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: alanları değiştirirken hata oluştu\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: parola dosyası güncellenemedi\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: gölge parola dosyası güncellenemedi\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "DBM parola kaydı güncellenmesinde hata.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: gölge parola dosyasının üzerine yazılamadı\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: parola dosyasına yazılamadı\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s: PAM chauthok başarısız oldu\n"
@@ -368,117 +342,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "Kullanım: %s [-f tam_isim] [-r oda_no] [-w iş_tel] [-h ev_tel]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Tam İsim"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tTam İsim: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Oda Numarası"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "İş Telefonu"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Ev Telefonu"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Diğer"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s: Kullanıcı isminiz belirlenemedi.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: kullanıcı `%s' NIS istemcisinde değiştirilemedi.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s: `%s' bu istemci için NIS efendisidir.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: müsaade edilmedi\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "%s için kullanıcı bilgileri değiştiriliyor\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: geçersiz isim: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: geçersiz oda numarası: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: geçersiz iş telefonu: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: geçersiz ev telefonu: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" geçersiz karakterler içeriyor\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: alanlar çok uzun\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "ID root kullanıcısı olarak değiştirilemiyor.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Parola dosyası kilitlenemiyor, daha sonra tekrar deneyin.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Parola dosyası açılamıyor.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s /etc/passwd içinde bulunamadı\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Parola kaydı güncellenmesinde hata.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Parola dosyası değişiklikleri işlenemiyor.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Parola dosyası kilidi açılamıyor.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -495,48 +474,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s: parola dosyası kilitlenemedi\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: gölge dosyası kilitlenemiyor\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: gölge dosyası açılamıyor\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: satır %d: satır çok uzun\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: satır %d: yeni parola eksik\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: satır %d: bilinmeyen kullanıcı %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: satır %d: parola kaydı güncellenemiyor\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: hata algılandı, değişiklikler görmezden gelindi\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: gölge (shadow9 dosyası güncellenmesinde hata\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: parola dosyası güncellenmesinde hata\n"
@@ -546,26 +525,26 @@ msgstr "%s: parola dosyası güncellenmesinde hata\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "Kullanım: %s [-s kabuk] [isim]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "Oturum Kabuğu"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "%s için kabuğu değiştiremezsiniz.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "%s için oturum kabuğu değiştiriliyor\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Geçersiz kayıt: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s geçersiz bir kabuk.\n"
@@ -575,12 +554,12 @@ msgstr "%s geçersiz bir kabuk.\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Kullanım: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s: UYARI!  root kullanıcısına set-UID olmalı!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: bilinmeyen kullanıcı\n"
@@ -594,320 +573,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Kullanıcı adı   Başarısız  Azami  Sonuncu\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s üzerinde %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds kaldı]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds kilitli]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Bilinmeyen Kullanıcı: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Kullanım: %s [-r|-R] grup\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a kullanıcı] grup\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d kullanıcı] grup\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "        %s [-A kullanıcı,...] [-M kullanıcı,...] grup\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M kullanıcı,...] grup\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: -A için gölge grup parolaları gerekli\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Siz kimsiniz?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "bilinmeyen grup: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "%s kullanıcısı %s grubuna ekleniyor\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "%s kullanıcısı %s grubundan çıkarılıyor\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: bilinmeyen üye %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Bir tty değil\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "%s grubu için parola değiştiriliyor\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Yeni parola: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Yeni parolayı tekrar girin: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "Eşleşmiyorlar; tekrar deneyin"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Daha sonra tekrar deneyin\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: kilitlenemiyor\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: gölge kilidi koyulamıyor\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: dosya açılamıyor\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: kayıt güncellenemiyor\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: gölge kaydı güncellenemiyor\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: dosya tekrar yazılamıyor\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s: gölge dosyası tekrar yazılamıyor\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: dosya kilidi açılamıyor\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: DBM dosyaları güncellenemiyor\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: DBM gölge dosyaları güncellenemiyor\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Kullanım: groupadd [-g gid [-o]] [-f] 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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: yeni grup kaydı eklenirken hata oluştu\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: yeni dbm grup kaydı eklenemiyor\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: %s ismi tek değil\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: %u gid tek değil\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: tek (benzersiz) bir gid alınamadı\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s geçerli bir grup adı değil\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: geçersiz grup %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O seçeneği ISIM=DEĞER gerektirir\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: grup dosyasına yazılamıyor\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: gölge grup dosyasına yazılamıyor\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: grup dosyası kilitlenemiyor\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: grup dosyası açılamıyor\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: gölge grup dosyası kilitlenemiyor\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: gölge grup dosyası açılamıyor\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: grup %s zaten var\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Kullanım: groupdel grup_adı\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: grup kaydını silerken hata oluştu\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: grup dbm kaydını silerken hata oluştu\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: gölge grup kaydını silerken hata oluştu\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: gölge grup dbm kaydını silerken hata oluştu\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: kullanıcının birincil grubu silinemez\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: grup %s mevcut değil\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: grup %s bir NIS grubudur\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s NIS efendisidir\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Kullanım: groupmod [-g gid [-o]] [-n isim] grup\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s /etc/group dosyasında bulunamadı\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: yeni gölge dbm grup kaydı eklenemiyor\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u benzersiz bir gid değil\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s benzersiz bir isim değil\n"
@@ -917,110 +861,105 @@ msgstr "%s: %s benzersiz bir isim değil\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Kullanım: %s [-r] [-s] [grup [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Kullanım: %s [-r] [-s] [grup]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Hayır"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s: -s ve -r uyumsuz\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: %s dosyası kilitlenemiyor\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: %s dosyası açılamıyor\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "geçersiz grup dosyası kaydı\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "`%s' satırı silinsin mi? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "mükerrer grup kaydı\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "geçersiz grup adı `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "grup %s: %s kullanıcısı yok\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "`%s' üyesi silinsin mi? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "geçersiz gölge grup dosyası kaydı\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "mükerrer gölge grup kaydı\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "grup dosyası kaydı eşleşmedi\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "gölge grubu %s: %s yönetici kullanıcı değil\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "yönetici üye `%s' silinsin mi? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "gölge grubu %s: kullanıcı %s mevcut değil\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: %s dosyası güncellenemiyor\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: dosyalar güncellendi; mkpasswd'yi çalıştırın\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: dosyalar güncellendi\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: değişiklik yok\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: dosyalar güncellendi\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1036,37 +975,37 @@ msgstr "%s: grup dosyası açılamıyor\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: gölge grup dosyası kilitlenemiyor\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: gölge grup dosyası açılamıyor\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s gölge grubu %s silinemiyor\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: %s için gölge kaydı güncellenemiyor\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: %s grubu için kayıt güncellenemiyor\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: gölge grup dosyası güncellenemiyor\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: grup dosyası güncellenemiyor\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: gölge grup dosyası silinemiyor\n"
@@ -1086,52 +1025,52 @@ msgstr "Kullanım: id\n"
 msgid " groups="
 msgstr ".gruplar="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "Kullanıcı adı         Port     Kimden             Sonuncu\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Kullanıcı adı                Port     Sonuncu\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Hiç giriş yapmadı**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Kullanım: %s [-p] [isim]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "          %s [-p] [-h host] [-f isim]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "          %s [-p] -r host\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Geçersiz giriş zamanı\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1140,7 +1079,7 @@ msgstr ""
 "\n"
 "Sistem rutin bakımlar için kapalı\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1149,7 +1088,7 @@ msgstr ""
 "\n"
 "[Bağlantı kesilmesi atlandı -- root girişi olanaklı.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1158,17 +1097,17 @@ msgstr ""
 "\n"
 "Giriş %d saniye sonra zaman aşımına uğradı.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " `%.200s'den `%.100s' üzerinde"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " `%.100s' üzerinde"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1177,39 +1116,30 @@ msgstr ""
 "\n"
 "%s giriş: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "giriş: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Giriş geçersiz"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr ""
 "Uyarı: geçici bir kilitlenme sonrasında giriş tekrar olanaklı kılındı.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Son giriş: %s üzerinden %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "Son giriş: %s üzerinden %.19s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr "%.*s'den"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "rad_login başlatılıyor\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1250,17 +1180,17 @@ msgstr "%s: kayıt eklenirken oluşan hata "
 msgid "added %d entries, longest was %d\n"
 msgstr "%d kayıt eklendi, en uzunu %d idi\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Kullanım: %s [-vf] [-p|g|sp|sg] dosya\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Kullanım: %s [-vf] [-p|g|sp] dosya\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Kullanım: %s [-vf] [-p|g] dosya\n"
@@ -1280,16 +1210,16 @@ msgstr "Kullanım: sg grup [[-c] komut]\n"
 msgid "unknown uid: %u\n"
 msgstr "bilinmeyen uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "bilinmeyen gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Üzgünüm.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "çok fazla grup\n"
@@ -1299,91 +1229,91 @@ msgstr "çok fazla grup\n"
 msgid "Usage: %s [input]\n"
 msgstr "Kullanım: %s [girdi]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: /etc/passwd kilitlenemiyor.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: dosyalar kilitlenemiyor, daha sonra tekrar deneyin\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: dosyalar açılamıyor\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: satır %d: geçersiz satır\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: satır %d: GID yaratılamıyor\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: satır %d: UID yaratılamıyor\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: satır %d: kullanıcı %s bulunamadı\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: satır %d: parola güncellenemiyor\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: satır %d: mkdir başarısız oldu\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: satır %d: chown başarısız oldu\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: satır %d: kayıt güncellenemiyor\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: dosyaların güncellenmesinde hata oluştu\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Kullanım: %s [-f|-s] [isim]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "          %s [-x maks] [-n min] [-w uyarı] [-i pasif] isim\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "          %s {-l|-u|-d|-S|-e} isim\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Eski parola: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "`%s' için yanlış parola\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1392,16 +1322,16 @@ msgstr ""
 "Yeni parolayı girin (asgari %d, azami %d karakter)\n"
 "Lütfen büyük, küçük harf ve rakamların bir kombinasyonunu kullanın.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Yeni parola: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "Yeniden deneyin.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1410,52 +1340,52 @@ msgstr ""
 "\n"
 "Uyarı: zayıf parola (yine de kullanmak için aynısını tekrar girin).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Eşleşmediler, tekrar deneyin.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "%s için parola değiştirilemedi.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "Üzgünüm, %s için parola henüz değiştirilemedi.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: yetersiz bellek\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: %s çalıştırılamıyor"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: depo %s desteklenmiyor\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "%s için kabuğu değiştiremezsiniz.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "%s için parola değiştiriliyor\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "%s için parola değişmedi\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Parola değişti \n"
@@ -1470,49 +1400,49 @@ msgstr "Kullanım: %s [-q] [-r] [-s] [parola [gölge]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Kullanım: %s [-q] [-r] [-s] [parola]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "geçersiz parola dosyası kaydı\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "mükerrer parola kaydı\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "geçersiz kullanıcı adı '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "kullanıcı %s: %u grubu mevcut değil\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "kullanıcı %s: %s dizini mevcut değil\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "kullanıcı %s: uygulama %s mevcut değil\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "geçersiz gölge parola dosyası kaydı\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "mükerrer gölge parola kaydı\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "eşleşen parola dosyası kaydı yok\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "kullanıcı %s: gelecekteki son parola değişimi\n"
@@ -1532,17 +1462,17 @@ msgstr "%s: passwd dosyası açılamadı\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: %s için gölge kaydı silinemedi\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: %s için passwd kaydı güncellenemedi\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: gölge dosyası güncellenemedi\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: passwd dosyası güncellenemedi\n"
@@ -1552,40 +1482,40 @@ msgstr "%s: passwd dosyası güncellenemedi\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: kullanıcı %s için kayıt güncellenemiyor\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: gölge parola dosyası silinemiyor\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Üzgünüm."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: bir terminalden çalıştırılmalı\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: hata %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Bilinmeyen id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "su %s için yetkili değilsiniz\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Kendi parolanızı girin.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1594,22 +1524,22 @@ msgstr ""
 "%s: %s\n"
 "(Dikkate alınmadı)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "Kabuk yok\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Bu hesap için 'su'ya erişim ENGELLENDİ.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Parola yetkilendirmesi atlandı.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "Lütfen yetkilendirme için KENDİ parolanızı girin.\n"
@@ -1624,7 +1554,7 @@ msgstr "Parola dosyası yok\n"
 msgid "No password entry for 'root'\n"
 msgstr "'root' için parola kaydı yok\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1634,234 +1564,214 @@ msgstr ""
 "Normal başlangıç için control-d ye basın,\n"
 "(ya da sistem bakımı için root parolasını verin):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Sistem Bakımı Kipine Giriliyor\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: grup veritabanını tekrar oluştur\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: gölge grup veritabanını tekrar oluştur\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: geçersiz sayısal argüman `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: bilinmeyen gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: bilinmeyen grup %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s: yeni varsayılanlar dosyası oluşturulamadı\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s: yeni varsayılanlar dosyası açılamadı\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: yeniden adlandırma: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: grup `%s' bir NIS grubu.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s: çok fazla grup verildi (azami %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "kullanım: useradd [-u uid [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr ""
 "                  [-d ev_dizini] [-s kabuk] [-c açıklama] [-m [-k şablon]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "                  [-f pasif] [-e hesap_bitimi ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "                  [-p parola] isim\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "          useradd -D [-g grup] [-b taban] [-s kabuk]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: grup dosyası kilitlenmesinde hata\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: grup dosyası açılırken hata\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: gölge grup dosyası kilitlenirken hata\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: gölge grup dosyası açılırken hata\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u benzersiz değil\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: benzersiz bir uid elde edilemedi\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: geçersiz ana dizin `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: geçersiz açıklama `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: geçersiz ev dizini `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: geçersiz tarih `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: -e için gölge parolalar gerekli\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: -f için gölge parolalar gerekli\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: geçersiz alan `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s: geçersiz kabuk `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: geçersiz kullanıcı adı '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: parola dosyası yazılamıyor\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: gölge parola dosyası yazılamıyor\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: parola dosyası kilitlenemiyor\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: parola dosyası açılamıyor\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: gölge parola dosyası kilitlenemiyor\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: gölge parola dosyası açılamıyor\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: yeni parola kaydı eklenirken hata\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: parola dbm kaydı güncellenirken hata\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: yeni gölge parola kaydı eklenirken hata\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: gölge passwd dbm kaydı güncellenirken hata oluştu\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: %s dizini yaratılamıyor\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s: kullanıcı %s için kayıt güncellenemiyor\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: kullanıcı %s mevcut\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1869,206 +1779,171 @@ msgstr ""
 "%s: grup %s mevcut - eğer bu kullanıcıyı bu gruba eklemek istiyorsanız, -g "
 "kullanın.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr ""
 "%s: uyarı: CREATE_HOME desteklenmiyor, lütfen bunun yerine -m kullanın.\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "Kullanım: %s [-r] isim\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: grup kaydı güncellenirken hata oluştu\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: dbm grup kaydı güncellenemiyor\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: dbm grup kaydı silinemiyor\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: grup dosyası açılamıyor\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: gölge grup dosyası açılamıyor\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: parola kaydı silinirken hata oluştu\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: gölge parola kaydı silinirken hata oluştu\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: parola dbm kaydı silinirken hata oluştu\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: gölge passwd dbm kaydı silinirken hata oluştu\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: kullanıcı %s şu an oturumda\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s %s kullanıcısına ait değil, silinmiyor\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: uyarı: silinemiyor "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s: kullanıcı %s mevcut değil\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s: kullanıcı %s bir NIS kullanıcısı\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: %s dizini silinmiyor (%s kullanıcısının ev dizinini silecekti)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: %s dizini silinirken hata oluştu\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Kullanım: %s\t[-u uid [-o]] [-g grup] [-G grup,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d ev_dizini [-m]] [-s kabuk] [-c açıklama] [-l yeni_isim]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f pasif] [-e hesap_bitimi] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p parola] [-L|-U] isim\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s: update_group için bellek yetersiz\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: update_gshadow için bellek yetersiz\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: herhangi bir bayrak verilmedi\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: -e ve -f için gölge parolalar gerekli\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu benzersiz değil\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: parola kaydı değiştirilirken hata oluştu\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: parola kaydı silinirken hata oluştu\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: parola dbm kaydı eklenirken hata oluştu\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: passwd dbm kaydı silinirken hata oluştu\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: gölge parola kaydı silinirken hata oluştu\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: gölge passwd dbm kaydı silinirken hata oluştu\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: %s dizini mevcut\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: %s yaratılamıyor\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s: chown %s gerçekleştirilemiyor\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: %s dizini %s olarak yeniden adlandırılamıyor\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: uyarı: %s %s kullanıcısına ait değil\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "postakutusu sahibi değiştirilmedi"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "postakutusu isim değişikliği başarısız"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2077,20 +1952,20 @@ msgstr ""
 "\n"
 "%s: %s değiştirilmedi\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "Dosya kilitlenemedi"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Yedek alınamadı"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: %s geri yüklenemiyor: %s (değişiklikleriniz %s içinde)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 69aeb60f584c4355b8c23b9cca4542093926ac2b..eeff4de793992ee43a8e51c7a9350a45567e4d9e 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 3968cc2ac2936568672b4f60ac4cbe42b5b02919..71e7606756f14be1cee20df44025c0ae7d6bc460 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,27 +1,29 @@
-# shadow.pot Ukrainian translation.
-# Roman Festchook <roma@orta.zt.ua>, 2001.
-# Comments and bug-reports are welcomed
+# shadow.pot Ukrainian translation.\r
+# Roman Festchook <linux@polesye.net>, 2001-2005.\r
+# Comments and bug-reports are welcomed\r
 msgid ""
 msgstr ""
-"Project-Id-Version: shadow-20001016\n"
+"Project-Id-Version: shadow-4.0.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
-"PO-Revision-Date: 2001-08-04 19:45+0200\n"
-"Last-Translator: Roman Festchook <roma@orta.zt.ua>\n"
-"Language-Team: Roman Festchook <roma@orta.zt.ua>\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"PO-Revision-Date: 2005-04-19 23:22+0300\n"
+"Last-Translator: Roman Festchook <linux@polesye.net>\n"
+"Language-Team:  <linux@polesye.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "Застереження: невідома група %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
-msgstr "Ð\97аÑ\81Ñ\82еÑ\80еженнÑ\8f: Ð·Ð°Ð½Ð°Ð´Ñ\82о Ð±Ð°Ð³Ð°Ñ\82о Ð³Ñ\80Ñ\83п\n"
+msgstr "Застереження: забагато груп\n"
 
 #: libmisc/age.c:72
 #, c-format
@@ -40,23 +42,23 @@ msgstr "Ваш логін прострочено."
 
 #: libmisc/age.c:90
 msgid "  Contact the system administrator.\n"
-msgstr "  Зяжіться з системним адміністратором.\n"
+msgstr "  Зв'яжіться з системним адміністратором.\n"
 
 #: libmisc/age.c:93
 msgid "  Choose a new password.\n"
-msgstr "  Ð\92иберіть новий пароль.\n"
+msgstr "  Ð\9eберіть новий пароль.\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "Ваш пароль буде просторочено за %ld днів.\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "Ваш пароль буде прострочено завтра.\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "Ваш пароль буде прострочено сьогодні.\n"
@@ -71,52 +73,43 @@ msgstr "Не можу змінити tty %s"
 msgid "Environment overflow\n"
 msgstr "Переповнення оточення\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "Ви не можете змінити $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "%d %s з часу останньго входу.  Останній вхід: %s з %s.\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "помилки"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "помилка"
-
-#: libmisc/limits.c:396
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d помилок з часу останнього входу.\n"
+"Останній вхід: %s з %s.\n"
+msgstr[1] "%d помилки з часу останньго входу. Останній вхід: %s з %s.\n"
+msgstr[2] "%d помилок з часу останньго входу. Останній вхід: %s з %s.\n"
+
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
-msgstr "Занадто багато сесій.\n"
-
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "Пароль не дешифрує таємний ключ для %s.\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "Не можу встановити таємного ключа для %s: чи запущено сервер ключів?\n"
+msgstr "Забагато входів.\n"
 
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
-msgstr "Ð\92и Ð¼Ð°Ñ\94Ñ\82е Ð½Ð¾Ð²Ñ\83 Ð¿Ð¾Ñ\87ту."
+msgstr "Ð\92и Ð¼Ð°Ñ\94Ñ\82е Ð½Ð¾Ð²Ñ\83 Ð¿Ð¾Ñ\88ту."
 
 #: libmisc/mail.c:72
 msgid "No mail."
-msgstr "Ð\9fоÑ\87ти не має."
+msgstr "Ð\9fоÑ\88ти не має."
 
 #: libmisc/mail.c:74
 msgid "You have mail."
-msgstr "Ð\92и Ð¼Ð°Ñ\94Ñ\82е Ð¿Ð¾Ñ\87ту."
+msgstr "Ð\92и Ð¼Ð°Ñ\94Ñ\82е Ð¿Ð¾Ñ\88ту."
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "Поганий пароль: %s.  "
@@ -131,20 +124,20 @@ msgstr "passwd: pam_start() не виконано, помилка %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd: %s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: пароль вдало змінено\n"
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "Не можу перейти до теки \"%s\"\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
-msgstr "Нема теки, відкриваємо сессію з HOME=/"
+msgstr "Немає теки, входимо з HOME=/"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "Не можу виконати %s"
@@ -159,36 +152,32 @@ msgstr "Невірна коренева тека \"%s\"\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "Не можу змінити кореневу теку на \"%s\"\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) не виконано\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "Не можу виділити ресурси для конфігураційних данних.\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr ""
 "помилка у конфігурації - невідома позиція '%s' (повідомте адміністратора)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "Пароль: "
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "Пароль користувача %s: "
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr ""
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -198,158 +187,150 @@ msgstr ""
 "                      [-I неактивність] [-E простроченно]\n"
 "                      [-d останній_день] користувач\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
-msgstr ""
-"Введіть нове значення, або нажміть ENTER, для значення по замовчуванню\n"
+msgstr "Введіть нове значення або нажміть ENTER для значення по замовчуванню\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "Мінімальний вік пароля"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
-msgstr "Максімальний вік пароля"
+msgstr "Максимальний вік пароля"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "Остання зміна пароля (РРРР-ММ-ДД)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "Застереження про прострочення пароля"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "Пароль неактивний"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "Дата прострочення рахунку (РРРР-ММ-ДД)"
 
-#: src/chage.c:238
-#, fuzzy, c-format
+#: src/chage.c:231
+#, c-format
 msgid "Last password change\t\t\t\t\t: "
-msgstr "Остання зміна пароля (РРРР-ММ-ДД)"
+msgstr "Остання зміна пароля\t\t\t\t\t: "
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
-#, fuzzy, c-format
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
 msgid "never\n"
-msgstr "Ð\9dіколи\n"
+msgstr "ніколи\n"
 
-#: src/chage.c:251
-#, fuzzy, c-format
+#: src/chage.c:244
+#, c-format
 msgid "Password expires\t\t\t\t\t: "
-msgstr "Пароль простроченно:\t"
+msgstr "Пароль стає простроченим\t\t\t\t\t: "
 
-#: src/chage.c:267
-#, fuzzy, c-format
+#: src/chage.c:260
+#, c-format
 msgid "Password inactive\t\t\t\t\t: "
-msgstr "Пароль неактивний:\t"
+msgstr "Пароль неактивний\t\t\t\t\t: "
 
-#: src/chage.c:281
-#, fuzzy, c-format
+#: src/chage.c:274
+#, c-format
 msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Рахунок прострочено:\t"
+msgstr "Рахунок стає простроченим\t\t\t\t\t\t: "
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Мінімальна кількість днів між змінами паролю\t\t: %ld\n"
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Максимальна кількість днів між змінами паролю\t\t: %ld\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "Кількість днів для застереження про прострочення паролю\t: %ld\n"
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s: не використовуйте \"l\" з іншіми флагами\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
-#, fuzzy, c-format
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
 msgid "%s: permission denied.\n"
-msgstr "%s: у доступі відмовлено\n"
+msgstr "%s: у доступі відмовлено.\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s: PAM аутентифікація не пройшла\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s: не можу відкрити файл паролей\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s: невідомий користувач %s\n"
 
-#: src/chage.c:535
-#, fuzzy, c-format
+#: src/chage.c:519
+#, c-format
 msgid "%s: can't lock shadow password file"
-msgstr "%s: не можу заблокувати файл прихованих паролей\n"
+msgstr "%s: не можу заблокувати файл прихованих паролей"
 
-#: src/chage.c:543
-#, fuzzy, c-format
+#: src/chage.c:527
+#, c-format
 msgid "%s: can't open shadow password file"
-msgstr "%s: не можу відкрити файл прихованих паролей\n"
+msgstr "%s: не можу відкрити файл прихованих паролей"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "Змінюю вікову інформацію для %s\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s: помилка заміни поля\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s: не можу оновити файл паролей\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s: не можу оновити файл прихованих паролей\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "Помилка оновлення запису пароля у DBM.\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s: не можу переписати файл прихованих паролей\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s: не можу переписати файл паролей\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
-#, fuzzy, c-format
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
+#, c-format
 msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: Ð½Ðµ Ð¼Ð¾Ð¶Ñ\83 Ñ\80азблокÑ\83ваÑ\82и Ñ\84айл\n"
+msgstr "%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° PAM chauthtok\n"
 
 #: src/chfn.c:84
 #, c-format
@@ -367,117 +348,122 @@ msgstr ""
 "Використовуйте: %s [-f повне_ім'я] [-r номер_кімнати]\n"
 "\t[-w робочій_телефон] [-h домашній_телефон]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "Повне ім'я"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\tПовне ім'я: %s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "Номер кімнати"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "Робочій телефон"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "Домашній телефон"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "Інше"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
-msgstr "%s: Ð\9dе Ð¼Ð¾Ð¶Ñ\83 Ð²Ð¸Ð·Ð½Ð°Ñ\87иÑ\82и Ð²аше ім'я користувача.\n"
+msgstr "%s: Ð\9dе Ð¼Ð¾Ð¶Ñ\83 Ð²Ð¸Ð·Ð½Ð°Ñ\87иÑ\82и Ð\92аше ім'я користувача.\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s: не можу змінити користувача `%s' у клієнті NIS.\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
-msgstr "%s: `%s' Ñ\94 NIS сервер для цього клієнта.\n"
+msgstr "%s: `%s' Ñ\86е NIS сервер для цього клієнта.\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: У доступі відмовлено.\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "Зміна інформації про користувача %s\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s: невірне ім'я: \"%s\"\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s: невірний номер кімнати: \"%s\"\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s: невірний робочий телефон: \"%s\"\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s: невірний домашній телефон: \"%s\"\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s: \"%s\" включає заборонені символи\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s: поля занадто довгі\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "Не можу змінити ID на root.\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "Не можу блокувати файл паролей; спробуйте пізніше.\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "Не можу відкрити файл паролей.\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s: %s не знайдено у /etc/passwd\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "Не можу оновити запис у файлі паролей.\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "Не можу записати зміни до файлу паролей.\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "Не можу разблокувати файл паролей.\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -488,54 +474,61 @@ msgid ""
 "  -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
 "\t\t\tpasswords are not encrypted\n"
 msgstr ""
+"Використання: chpasswd [опції]\n"
+"\n"
+"Опції:\n"
+"  -e, --encrypted\tвказаний пароль зашифровано\n"
+"  -h, --help\t\tпоказати цю допомогу та вийти\n"
+"  -m, --md5\t\tвикористовувати MD5 шифрування замість DES, якщо вказані\n"
+"\t\t\tпаролі не зашифровано\n"
 
 #: src/chpasswd.c:189
 #, c-format
 msgid "%s: can't lock password file\n"
 msgstr "%s: не можу заблокувати файл паролей\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s: не можу заблокувати файл з прихованими паролями\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s: не можу відкрити файл з прихованими паролями\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s: рядок %d: рядок занадто довгий\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s: рядок %d: бракує нового пароля\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s: рядок %d: невідомий користувач %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s: рядок %d: не можу оновити запис у базі паролей\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s: виявлено помилку, зміни ігноруються\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s: помилка оновлення файлу з прихованими паролями\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s: помилка оновлення файлу з паролями\n"
@@ -543,43 +536,43 @@ msgstr "%s: помилка оновлення файлу з паролями\n"
 #: src/chsh.c:76
 #, c-format
 msgid "Usage: %s [-s shell] [name]\n"
-msgstr "Використовуйте: %s [-s shell] [ім'я]\n"
+msgstr "Використовуйте: %s [-s оболонка] [ім'я]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
-msgstr "Login Shell"
+msgstr "Логін Оболонка"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
-msgstr "Не можна змінити shell для %s.\n"
+msgstr "Не можна змінити оболонку для %s.\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
-msgstr "Змінюю shell для %s\n"
+msgstr "Змінюю оболонку для %s\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s: Невірний запис: %s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
-msgstr "%s Ñ\94 Ð½ÐµÐ²Ñ\96Ñ\80ний shell.\n"
+msgstr "%s Ñ\94 Ð½ÐµÐ²Ñ\96Ñ\80на Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°.\n"
 
 #: src/expiry.c:59
 #, c-format
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "Використовуйте: expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
-msgstr "%s: ЗАСТЕРЕЖЕННЯ! Програма повина бути SUID root!\n"
+msgstr "%s: ЗАСТЕРЕЖЕННЯ! Програма повина бути Set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s: невідомий користувач\n"
@@ -593,320 +586,299 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
-
-#: src/faillog.c:86
-#, fuzzy, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "Користувач Помилок   Максімум Остання\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s на %s"
-
-#: src/faillog.c:107
+"Використання: faillog [опції]\n"
+"\n"
+"Опції:\n"
+"  -a, --all\t\t\tпоказати помилки входу для всіх користувачів\n"
+"  -h, --help\t\t\tпоказати цю допомогу та вийти\n"
+"  -l, --lock-time СЕК\t\tпісля помилки входу блокувати рахунок на СЕК "
+"секунд\n"
+" -m, --maximum МАКС\t\tвстановити максимальну кількість помилок входу до "
+"МАКС\n"
+"  -r, --reset\t\t\tперезавантажити лічільник помилок входу\n"
+"  -t, --time ДНІВ\t\tпоказати помилки входу новіші за ДНІВ\n"
+"  -u, --user ЛОГІН\t\tпоказати помилки входу або вести лічільники помилок\n"
+"\t\t\t\tта ліміти (якщо використовується з -r, -m або -l опціями) лише для\n"
+"\t\t\t\tкористувача з логіном ЛОГІН\n"
+
+#: src/faillog.c:87
+#, c-format
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr "Логін       Помилок Максімум Останнє                 На\n"
+
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [%lds залишилось]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [%lds блоковано]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "Невідомий користувач: %s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "Використовуйте: %s [-r|-R] група\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "                %s [-a користувач] група\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "                %s [-d користувач] група\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "                %s [-A користувач,...] [-M користувач,...] група\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "                %s [-M користувач,...] група\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s: приховані паролі груп потрібні для -A\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "Ви хто?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "невідома група: %s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "Додано нового користувача %s до групи %s\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "Видалено користувача %s з групи %s\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s: невідомий член %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s: Не є tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "Зміна пароля для групи %s\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "Новий пароль: "
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "Повторіть новий пароль: "
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "не співпадає; спробуйте знову"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s: Спробуйте знову пізніше\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s: не можу заблокувати\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s: не можу заблокувати базу прихований паролей\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s: не можу відкрити файл\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s: не можу оновити запис\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s: не можу оновити запис у базі прихованих паролей\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s: не можу переписати файл\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
-msgstr "%s: не можу переписати файл прихований паролей\n"
+msgstr "%s: не можу переписати файл прихованих паролей\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s: не можу разблокувати файл\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s: не можу оновити DBM файл\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s: не можу оновити DBM файл з прихованими паролями\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "Використовуйте: groupadd [-g gid [-o]] [-f] група\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s: помилка додання нового запису у файл груп\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s: помилка додання нового запису у файл груп dbm\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s: ім'я %s не є унікальним\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s: uid %u не є унікальним\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s: не можу отримати унікальний gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s: %s: то не є вірне ім'я групи\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s: невірна група %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s: -O вимагає ЗМІННА=ЗНАЧЕННЯ\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s: не можу переписати файл груп\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s: не можу переписати файл прихованих груп\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s: не можу заблокувати файл груп\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s: не можу відкрити файл груп\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s: не можу блокувати файл прихованих груп\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s: не можу відкрити файл прихованих груп\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s: група %s існує\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "Використовуйте: groupdel група\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s: помилка відалення запису з бази груп\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s: помилка відалення запису з бази груп dbm\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s: помилка відалення запису з бази прихованих груп\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s: помилка відалення запису з бази прихованих груп dbm\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s: не можу видалити головну групу користувача.\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s: група %s не існує\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s: група %s є групою NIS\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s: %s є сервер NIS\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "Використовуйте: groupmod [-g gid [-o]] [-n ім'я] група\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s: %s не знайдено у /etc/passwd\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s: не можу додати запис у базу прихованих груп dbm\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s: %u не є унікальний gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s: %s не є унікальне ім'я\n"
@@ -916,110 +888,105 @@ msgstr "%s: %s не є унікальне ім'я\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "Використовуйте: %s [-r] [-s] [група [gshadow]]\n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "Використовуйте: %s [-r] [-s] [група]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "Ні"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
-msgstr ""
+msgstr "%s: -s та -r несумісні\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s: не можу заблокувати файл %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s: не можу відкрити файл %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "невірний запис у файлі груп\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "видалити запис `%s'? "
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
-msgstr "повÑ\82оÑ\80Ñ\8eÑ\8eÑ\87иÑ\81Ñ\8f Ð·Ð°Ð¿Ð¸Ñ\81и у базі груп\n"
+msgstr "дÑ\83блÑ\8eÑ\8eÑ\87ий Ð·Ð°Ð¿Ð¸Ñ\81 у базі груп\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "невірне ім'я групи `%s'\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "група %s: не має користувачів %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "видалити члена `%s'? "
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "невірний запис у файлі прихованих груп\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
-msgstr "повÑ\82оÑ\80Ñ\8eÑ\8eÑ\87ийÑ\81Ñ\8f запис у файлі прихованих груп\n"
+msgstr "дÑ\83блÑ\8eÑ\8eÑ\87ий запис у файлі прихованих груп\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
-msgstr "відсутній відповідний запис у файлі груп\n"
+msgstr "відповідний запис у файлі груп відсутній\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "прихована група %s: не має адміністратора %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "видалити адміністратора `%s'? "
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "прихована група %s: не має користувачів %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s: не можу оновити файл %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s: файли було оновлено; виконайте mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s: файли було оновлено\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s: без змін\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s: файли було оновлено\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1035,37 +1002,37 @@ msgstr "%s: не можу відкрити файл груп\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s: не можу блокувати файл прихованих груп\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s: не можу відкрити файл прихованих груп\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s: не можу видалити приховану групу %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s: не можу оновити прихований запис для %s\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s: не можу оновити запис для групи %s\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s: не можу оновити файл прихованих груп\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s: не можу оновити файл груп\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s: не можу видалити файл прихованих груп\n"
@@ -1085,52 +1052,59 @@ msgstr "Використовуйте: id\n"
 msgid " groups="
 msgstr " групи="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
+"Використання: lastlog [опції]\n"
+"\n"
+"Опції:\n"
+"  -u, --login ЛОГІН\tвивести записи останніх входів для користувача з "
+"ЛОГІНом\n"
+"  -h, --help\t\tвивести допомогу та вийти\n"
+"  -t, --time ДНІВ\tвивести лише записи свіжіші за ДНІВ\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
-msgstr "Ð\9aоÑ\80иÑ\81Ñ\82Ñ\83ваÑ\87       Ð\9aонÑ\81олÑ\8c  Звідки           Останній вхід\n"
+msgstr "Ð\9aоÑ\80иÑ\81Ñ\82Ñ\83ваÑ\87       Ð\9fоÑ\80Ñ\82  Звідки           Останній вхід\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "Користувач             Порт     Останній вхід\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**Ніколи не входив**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "Використовуйте: %s [-p] [ім'я]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "                %s [-p] [-h хост] [-f ім'я]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "                %s [-p] -r хост\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "Невірний час для входу\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1139,75 +1113,66 @@ msgstr ""
 "\n"
 "Систему закрито для профілактики.\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
 "[Disconnect bypassed -- root login allowed.]\n"
 msgstr ""
 "\n"
-"[Ð\9fÑ\80ойÑ\88ло відключення -- дозволено лише вхід root-a.]\n"
+"[СÑ\82алоÑ\81Ñ\8f відключення -- дозволено лише вхід root-a.]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
 "Login timed out after %d seconds.\n"
 msgstr ""
 "\n"
-"Час логіну вичерпано за %d секунд.\n"
+"ЧаÑ\81 Ð»Ð¾Ð³Ñ\96нÑ\83 Ð±Ñ\83де Ð²Ð¸Ñ\87еÑ\80пано Ð·Ð° %d Ñ\81екÑ\83нд.\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
-msgstr " на `%s.100s' з `%.200s'"
+msgstr " на `%.100s' з `%.200s'"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr " на `%.100s'"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
 "%s login: "
 msgstr ""
 "\n"
-"%s login: "
+"%s логін: "
 
-#: src/login.c:819
-msgid "login: "
-msgstr "login: "
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "Невірний логін"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "Застереження: login поновлено після тимчасового блокування.\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "Останній вхід в систему: %s на %s"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
-msgstr "Останній вхід в систему: %s на %s"
+msgstr "Останній вхід в систему: %.19s на %s"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " з %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "Стартуємо rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1224,9 +1189,9 @@ msgid "%s: cannot open DBM files for %s\n"
 msgstr "%s: не можу відкрити файли DBM для %s\n"
 
 #: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
 msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: Ñ\80озпоÑ\87инаÑ\94мо Ð· "
+msgstr "%s: Ñ\81Ñ\82Ñ\80ока, Ñ\89о Ñ\80озпоÑ\87инаÑ\94Ñ\82Ñ\8cÑ\81Ñ\8f Ð· %.16s... Ð·Ð°Ð´Ð¾Ð²Ð³Ð°\n"
 
 #: src/mkpasswd.c:313
 #, c-format
@@ -1234,31 +1199,31 @@ msgid "%s: error parsing line \"%s\"\n"
 msgstr "%s: помилка обробки рядку \"%s\"\n"
 
 #: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "adding record for name %s\n"
-msgstr "додано Ð·Ð°Ð¿Ð¸Ñ\81 Ð´Ð»Ñ\8f Ñ\96менÑ\96 "
+msgstr "доданнÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\83 Ð´Ð»Ñ\8f Ñ\96менÑ\96 %s\n"
 
 #: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error adding record for %s\n"
-msgstr "%s: помилка додання запису "
+msgstr "%s: помилка додання запису для %s\n"
 
 #: src/mkpasswd.c:376
 #, c-format
 msgid "added %d entries, longest was %d\n"
 msgstr "додано %d записів, довжиною %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "Використовуйте: %s [-vf] [-p|g|sp|sg] файл\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "Використовуйте: %s [-vf] [-p|g|sp] файл\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "Використовуйте: %s [-vf] [-p|g] файл\n"
@@ -1278,16 +1243,16 @@ msgstr "Використовуйте: sg група [[-c] команда]\n"
 msgid "unknown uid: %u\n"
 msgstr "невідомий uid: %u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "невідомий gid: %lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "Вибачте.\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "занадто багато груп\n"
@@ -1295,95 +1260,93 @@ msgstr "занадто багато груп\n"
 #: src/newusers.c:78
 #, c-format
 msgid "Usage: %s [input]\n"
-msgstr "Використовуйте: %s [input]\n"
+msgstr "Використовуйте: %s [вхідні_данні]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s: не можу блокувати /etc/passwd.\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s: не можу блокувати файли, спробуйте пізніше\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s: не можу відкрити файл\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s: рядок %d: невірний рядок\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s: рядок %d: не можу створити GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s: рядок %d: не можу створити UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s: рядок %d: не можу знайти користувача %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s: рядок %d: не можу оновити пароль\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s: рядок %d: mkdir не виконався\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s: рядок %d: chown не виконався\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s: рядок %d: не можу оновити запис\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s: помилка оновлення файлу\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "Використовуйте: %s [-f|-s] [ім'я]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
-msgstr ""
-"                %s [-x макс] [-n мин] [-w застереження] [-i неактивний] "
-"ім'я\n"
+msgstr "     %s [-x макс] [-n мин] [-w застереження] [-i неактивний] ім'я\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "                %s {-l|-u|-d|-S|-e} ім'я\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "Старий пароль: "
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "Невірний пароль для `%s'\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1392,16 +1355,16 @@ msgstr ""
 "Введіть новий пароль (від %d до %d знаків)\n"
 "Змішуйте великі та малі літери та цифри.\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "Новий пароль: "
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
-msgstr "Спробуй ще.\n"
+msgstr "Спробуте ще.\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1411,52 +1374,52 @@ msgstr ""
 "Застереження: Поганий пароль (введіть його знову, якщо все одно бажаєте його "
 "використовувати).\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "Не співпадає; спробуйте знову.\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "Пароль для %s не може бути змінений.\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
-msgstr "Ð\92ибаÑ\87Ñ\82е, Ð¿Ð°Ñ\80олÑ\8c Ð´Ð»Ñ\8f %s Ð½Ð³Ðµ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ð·Ð¼Ñ\96нено Ð·Ð°Ñ\80аз.\n"
+msgstr "Вибачте, пароль для %s не може бути змінено зараз.\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s: брак пам'яті\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s: Не можу виконати %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s: репозиторій %s не підтримується\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, c-format
-msgid "You may not change the password for %s.\n"
-msgstr "Ви не можете змінити пароль для %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: Ви не можете дивитися та змінювати парольну інформацію для %s.\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "Зміна пароля для %s\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "Пароль для %s не змінено.\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "Пароль змінено.\n"
@@ -1471,49 +1434,49 @@ msgstr "Використовуйте: %s [-q] [-r] [-s] [пароль [shadow]]\
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "Використовуйте: %s [-q] [-r] [-s] [пароль]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "невірний запис у файлі паролей\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "дублюючий запис у файлі паролей\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "невірне ім'я користувача '%s'\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "користувач %s: не має групи %u\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "користувач %s: тека %s не існує\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "користувач %s: програма %s не існує\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "невірний запис у файлі прихованих паролей\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "дублюючий запис у файлі прихованих паролей\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "відсутній відповідний запис у файлі паролей\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "користувач %s: остання зміна пароля у майбутньому\n"
@@ -1533,17 +1496,17 @@ msgstr "%s: не можу відкрити файл паролей\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s: не можу відалити запис у файлі прихованих паролей для %s\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s: не можу оновити запис у файлі паролей для %s\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s: не можу оновити файл прихованих паролей\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s: не можу оновити файл паролей\n"
@@ -1553,40 +1516,40 @@ msgstr "%s: не можу оновити файл паролей\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s: не можу оновити запис для користувача %s\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s: не можу видалити файл прихованих паролей\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "Вибачте."
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s: повино бути запущено з терміналу\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s: pam_start: помилка %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "Невідомий id: %s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "Ви не авторизовані для su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(Введіть ваш пароль.)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1595,37 +1558,37 @@ msgstr ""
 "%s: %s\n"
 "(Ігнорую)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
-msgstr "Немає shell\n"
+msgstr "Немає оболонки\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "Доступ цього користувача до su ЗАБОРОНЕНО.\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "Аутентифікацію пройдено.\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
-msgstr "Ð\91Ñ\83дÑ\8cлаÑ\81ка Ð²Ð²ÐµÐ´Ñ\96Ñ\82Ñ\8c Ð²аш власний пароль для аутентифікації.\n"
+msgstr "Ð\91Ñ\83дÑ\8cлаÑ\81ка Ð²Ð²ÐµÐ´Ñ\96Ñ\82Ñ\8c Ð\92аш власний пароль для аутентифікації.\n"
 
 #: src/sulogin.c:118
 #, c-format
 msgid "No password file\n"
-msgstr "Немає файла паролей\n"
+msgstr "Немає файлу паролей\n"
 
 #: src/sulogin.c:160
 #, c-format
 msgid "No password entry for 'root'\n"
 msgstr "Бракує запису у базі паролей для 'root'\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1635,235 +1598,213 @@ msgstr ""
 "Натисніть control-d для виконання звичайного завантаження,\n"
 "(або введіть пароль адміністратора для відновлення системи):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "Входимо у режим відновлення системи\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s: перестроюю базу груп\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s: перестроюю базу прихованих груп\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s: невірний числовий аргумент `%s'\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s: невідомий gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s: невідома група %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
-msgstr "%s: не можу створити новий файл із значеннями по замовчеванню\n"
+msgstr "%s: не можу створити новий файл із значеннями по замовчуванню\n"
 
-#: src/useradd.c:480
-#, fuzzy, c-format
+#: src/useradd.c:423
+#, c-format
 msgid "%s: cannot open new defaults file\n"
-msgstr "%s: не можу створити новий файл із значеннями по замовчеванню\n"
+msgstr "%s: не можу відкрити новий файл із значеннями по замовчуванню\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s: перейменування: %s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s: група `%s' є групою NIS.\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
-msgstr "%s: Ð·Ð°Ð½Ð°Ð´Ñ\82о Ð±Ð°Ð³Ð°Ñ\82о Ð³Ñ\80Ñ\83п Ð²ÐºÐ°Ð·Ð°Ð½Ð½Ð¾ (макс %d).\n"
+msgstr "%s: Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð·Ð°Ð±Ð°Ð³Ð°Ñ\82о Ð³Ñ\80Ñ\83п (макс %d).\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "Використовуйте: useradd [-u uid [-o]] [-g група] [-G група,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
-msgstr ""
-"                        [-d домашня_тека] [-s shell] [-c коментар]\n"
-"                        [-m [-k шаблон]]\n"
+msgstr "      [-d домашня_тека] [-s shell] [-c коментар] [-m [-k шаблон]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
-msgstr "                        [-f неактивний] [-e прострочений]\n"
+msgstr "              [-f неактивний] [-e прострочений]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
-msgstr "                        [-p пароль] ім'я\n"
+msgstr "             [-p пароль] ім'я\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
-msgstr "                useradd -D [-g група] [-b базова_тека] [-s shell]\n"
+msgstr "         useradd -D [-g група] [-b базова_тека] [-s оболонка]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s: не можу заблокувати файл груп\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s: не можу відкрити файл груп\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s: не можу заблокувати файл прихованих груп\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s: не можу відкрити файл прихованих груп\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s: uid %u не є унікальним\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s: не можу отримати унікальній uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s: невірна базова тека `%s'\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s: невірний коментар `%s'\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s: невірна домашня тека `%s'\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s: невірна дата `%s'\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s: приховані паролі потрібні для -e\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s: приховані паролі потрібні для -f\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s: невірне поле `%s'\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
-msgstr "%s: Ð½ÐµÐ²Ñ\96Ñ\80ний shell `%s'\n"
+msgstr "%s: Ð½ÐµÐ²Ñ\96Ñ\80на Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ° `%s'\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s: невірне ім'я користувача '%s'\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s: не можу переписати файл паролей\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s: не можу переписати файл прихованих паролей\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s: не можу блокувати файл паролей\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s: не можу відкрити файл паролей\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s: не можу блокувати файл прихованих паролей\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s: не можу відкрити файл прихованих паролей\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s: помилка додання нового запису у базу паролей\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s: помилка оновлення запису у базі паролей dbm\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s: помилка додання нового запису у базу прихованих паролей\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s: помилка оновлення запису у базі прихованих паролей dbm\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s: не можу створити теку %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
-msgstr ""
+msgstr "Немає групи \"mail\", створюю поштовий спул з правами 600.\n"
 
-#: src/useradd.c:1590
-#, fuzzy, c-format
+#: src/useradd.c:1446
+#, c-format
 msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: не можу оновити запис для користувача %s\n"
+msgstr "Не можу створити поштовій спул для користувача %s.\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s: користувач %s існує\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
@@ -1871,205 +1812,171 @@ msgstr ""
 "%s: група %s існує - якщо ви бажаєте додати користувача до цієї групи, "
 "використовуйте -g.\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s: застереження: CREATE_HOME не підтримується, користуйтесь -m.\n"
 
-#: src/userdel.c:124
-#, fuzzy, c-format
+#: src/userdel.c:108
+#, c-format
 msgid "Usage: %s [-r] name\n"
-msgstr "використовуйте: %s [-r] ім'я\n"
+msgstr "Ð\92икористовуйте: %s [-r] ім'я\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s: помилка оновлення запису у базі груп\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s: помилка оновлення запису у базі груп dbm\n"
-
-#: src/userdel.c:214
-#, fuzzy, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s: помилка видалення запису у базі груп dbm\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s: не можу відкрити файл груп\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s: не можу відкрити файл прихованих груп\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s: помилка видалення запису з бази паролей\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s: помилка видалення запису з бази прихованих паролей\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s: помилка видалення запису dbm з бази паролей\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s: помилка видалення запису dbm з бази прихованих паролей\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s: користувач %s на данний момент у системі\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s: %s не належить %s, не видалено\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s: застереження: не можу видалити "
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
-msgstr "%s: ÐºÐ¾Ñ\80иÑ\82Ñ\81Ñ\82Ñ\83ваÑ\87 %s Ð½Ðµ Ñ\96Ñ\81нÑ\83Ñ\94\n"
+msgstr "%s: користувач %s не існує\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
-msgstr "%s: користувач %s є користувач NIS\n"
+msgstr "%s: користувач %s є користувачем NIS\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s: не видалено теку %s (можна видалити домашню теку користувача %s)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s: помилка видалення теки %s\n"
 
-#: src/usermod.c:306
-#, fuzzy, c-format
+#: src/usermod.c:289
+#, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "використовуйте: %s\t[-u uid [-o]] [-g група] [-G група,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
-msgstr "\t\t[-d домашня_тека [-m]] [-s shell] [-c коментар] [-l нове_ім'я]\n"
+msgstr ""
+"\t\t[-d домашня_тека [-m]] [-s оболонка] [-c коментар] [-l нове_ім'я]\n"
 
-#: src/usermod.c:313
-#, fuzzy, c-format
+#: src/usermod.c:296
+#, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f неактивний] [-e прострочений] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p пароль] [-L|-U] ім'я\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
-msgstr "%s: бракує памяті у pdate_group\n"
+msgstr "%s: бракує памяті у update_group\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s: бракує памяті у update_gshadow\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s: не подано флагів\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s: приховані паролі потрібні для -e і -f\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s: uid %lu не є унікальним\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s: помилка зміни запису в базі паролей\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s: помилка видалення запису з бази паролей\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s: помилка додання запису dbm у базу прихованих паролей\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s: помилка видалення запису dbm з бази паролей\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s: помилка видалення запису з бази прихованих паролей\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s: помилка видалення запису dbm з бази прихованих паролей\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s: тека %s існує\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s: не можу створити %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
-msgstr "%s: Ð½Ðµ Ð¼Ð¾Ð¶Ñ\83 Ð·Ð¼Ñ\96ниÑ\82и Ð²Ð¾Ð»Ð¾Ð´Ð°Ñ\80Ñ\8f %s\n"
+msgstr "%s: Ð½Ðµ Ð¼Ð¾Ð¶Ñ\83 Ð·Ð¼Ñ\96ниÑ\82и Ð²Ð»Ð°Ñ\81ника %s\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s: не можу перейменувати теку з %s на %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s: застереження: %s не належить %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
-msgstr "не Ð¼Ð¾Ð¶Ñ\83 Ð·Ð¼Ñ\96ниÑ\82и Ð²Ð¾Ð»Ð¾Ð´Ð°Ñ\80Ñ\8f поштової скриньки"
+msgstr "не Ð¼Ð¾Ð¶Ñ\83 Ð·Ð¼Ñ\96ниÑ\82и Ð²Ð»Ð°Ñ\81ника поштової скриньки"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "не можу перейменувати поштову скриньку"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2078,21 +1985,20 @@ msgstr ""
 "\n"
 "%s: %s є незмінений\n"
 
-#: src/vipw.c:133
-#, fuzzy
+#: src/vipw.c:131
 msgid "Couldn't lock file"
-msgstr "Не можу блокувати файл\n"
+msgstr "Не можу блокувати файл"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "Не можу зробити резервну копію"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s: не можу відновити %s: %s (ваші зміни у %s)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 72ec2cd0e5653a772081c6069268124ad07e4454..447a8b392b5ddd3fe045bb13f99aea6da9e88fc7 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index b892b8a299fdf1681aedc3b1044cbb85549d42e1..ffd694442183645fd8d1ce6466fb531691de9a5c 100644 (file)
@@ -6,20 +6,21 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2004-05-14 10:26+1200\n"
 "Last-Translator: Carlos Z.F. Liu <carlos_liu@yahoo.com>\n"
 "Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "警告:未知组 %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "警告:用户组过多\n"
@@ -47,17 +48,17 @@ msgstr "  请联系系统管理员。\n"
 msgid "  Choose a new password.\n"
 msgstr "  请选择一个新密码。\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "您的密码将在 %ld 天内过期。\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "您的密码将在明天过期。\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "您的密码今天过期。\n"
@@ -72,39 +73,26 @@ msgstr "无法改变 tty %s"
 msgid "Environment overflow\n"
 msgstr "环境溢出\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "您不应该改变 $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "距离上一次登录已有 %d 次%s。最后一次是 %s 在 %s 上。\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr "失败"
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr "失败"
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "距离上一次登录已有 %d 次%s。最后一次是 %s 在 %s 上。\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "过多登录数量。\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "密码并非由 %s 的私有密钥解密。\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "无法设置 %s 的私有密钥:keyserv 守护进程正在运行吗?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "您有新信件。"
@@ -117,7 +105,7 @@ msgstr "无信件。"
 msgid "You have mail."
 msgstr "您有信件。"
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "错误的密码:%s。 "
@@ -132,20 +120,20 @@ msgstr "passwd: pam_start() 失败,错误 %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd:%s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "无法进入“%s”目录\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "没有目录,将以 HOME=/ 登录"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "无法执行 %s"
@@ -160,35 +148,31 @@ msgstr "无效的根目录“%s”\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "无法将根目录改变为“%s”\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) 失败\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "无法为配置信息分配空间。\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "配置错误 - 未知项目“%s”(请通知管理员)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "密码:"
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s 的密码:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo on) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -197,154 +181,147 @@ msgstr ""
 "用法:chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告]\n"
 "             [-I 失效日] [-E 过期日] [-d 最后日] 用户\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "请输入新值,或直接敲回车键以使用默认值\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "最小密码年龄"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "最大密码年龄"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "最近一次密码修改时间 (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "密码过期警告"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "密码失效"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "帐户过期时间 (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "最近一次密码修改时间 (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "从不\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "密码过期:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "密码失效:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "帐户过期:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s:请不要与其它标志一同使用“l”\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s:没有权限\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s:PAM 验证失败\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s:无法打开密码文件\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s:未知用户:%s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s:无法锁定影子密码文件"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s:无法打开影子密码文件"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "正在为 %s 修改年龄信息\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s:改变字段时出错\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s:无法更新密码文件\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s:无法更新影子密码文件\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "更新 DBM 密码条目时出错。\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s:无法重写影子密码文件\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s:无法重写密码文件\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s:PAM chauthtok 失败\n"
@@ -363,117 +340,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "用法:%s [-f 全名] [-r 房间号] [-w 工作电话] [-h 家庭电话]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "全名"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\t全名:%s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "房间号码"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "工作电话"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "家庭电话"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "其它"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s:无法确定您的用户名。\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s:不能在 NIS 客户端上修改用户“%s”。\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s:“%s”是此客户端的 NIS 管理员。\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s:没有权限\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "正在改变 %s 的用户信息\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s:无效的名称:“%s”\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s:无效的房间号码:“%s”\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s:无效的工作电话:“%s”\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s:无效的家庭电话:“%s”\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s:“%s”包含非法字符\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s:字段太长\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "无法改变 ID 到 root。\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "无法锁定密码文件;稍后再试。\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "无法打开密码文件。\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s:未在 /etc/passwd 中找到 %s\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "更改密码条目时出错。\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "无法提交密码文件改动。\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "无法解锁密码文件。\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -490,48 +472,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s:无法锁定密码文件\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s:无法锁定影子文件\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s:无法打开影子文件\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s:第 %d 行:此行太长\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s:第 %d 行:缺少新密码\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s:第 %d 行:未知用户 %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s:第 %d 行:无法更新密码条目\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s:发现错误,忽略改动\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s:更新影子文件时出错。\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s:更新密码文件时出错。\n"
@@ -541,26 +523,26 @@ msgstr "%s:更新密码文件时出错。\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "用法:%s [-s shell] [名称]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "登录 Shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "您不能为 %s 更改 shell。\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "正在更改 %s 的 shell\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s:无效的条目:%s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s 是无效的 shell。\n"
@@ -570,12 +552,12 @@ msgstr "%s 是无效的 shell。\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "用法:expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s:警告!必须是 set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s:未知用户\n"
@@ -589,320 +571,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
+#: src/faillog.c:87
 #, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "用户       错误      最大     最后\n"
-
-#: src/faillog.c:103
-#, c-format
-msgid "  %s on %s"
-msgstr "  %s 在 %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [还剩 %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [锁定 %lds]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "未知用户:%s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "用法:%s [-r|-R] 组\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a 用户] 组\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d 用户] 组\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A 用户,...] [-M 用户,...] 组\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M 用户,...] 组\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s:-A 需要影子组密码\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "你是谁?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "未知组:%s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "正在将用户“%s”加入到“%s”组中\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "正在将用户“%s”从“%s”组中删除\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s:未知成员 %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s:不是 tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "正在修改 %s 组的密码\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "新密码:"
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "请重新输入新密码:"
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "他们并不匹配;请重试"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s:请稍后重试\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s:无法获得锁\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s:无法获得影子锁\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s:无法打开文件\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s:无法更新条目\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s:无法更新影子条目\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s:无法重写文件\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s:无法重写影子文件\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s 无法解锁文件。\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s:无法更新 DBM 文件\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s:无法更新 DBM 影子文件\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "用法:groupadd [-g gid [-o]] [-f] 组\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s:增加新组条目时出错\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s:无法增加新的 dbm 组条目\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s:名称 %s 并不唯一\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s:gid %u 并不唯一\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s:无法获取独有的 gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s:%s 不是有效的组名\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s:无效组名 %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s:-O 需要 NAME=VALUE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s:无法重写组文件\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s:无法重写影子组文件\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s:无法锁定组文件\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s:无法打开组文件\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s:无法锁定影子组文件\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s:无法打开影子组文件\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s:%s 组已存在\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, c-format
 msgid "Usage: groupdel group\n"
 msgstr "用法:groupdel 组\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s:删除组条目时出错\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s:删除组 dbm 条目时出错\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s:删除影子组条目时出错\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s:删除影子组 dbm 条目时出错\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s:不能删除用户的主组。\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s:%s 组不存在\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s:%s 组是一个 NIS 组\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s:%s 是 NIS 管理员\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "用法:groupmod [-g gid [-o]] [-n 名称] 组\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s:未在 /etc/group 中找到 %s\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s:无法增加新的 dbm 影子组条目\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s:%u 不是一个独有的 gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s:%s 不是一个独有的名称\n"
@@ -912,110 +859,105 @@ msgstr "%s:%s 不是一个独有的名称\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "用法:%s [-r] [-s] [组 [gshadow]] \n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "用法:%s [-r] [-s] [组]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "否"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s:-s 和 -r 是互不兼容的\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s:无法锁定文件 %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s:无法打开文件 %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "无效的组文件条目\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "删除“%s”行?"
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "复制组条目\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "无效的组名“%s”\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "%s 组:无用户 %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "删除用户成员“%s”吗?"
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "无效的影子组文件条目\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "复制影子组条目\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "没有找到匹配的组文件条目\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "%s 影子组:无管理员用户 %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "删除管理员用户“%s”吗?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "%s 影子组:无用户 %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s:无法更新文件 %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s:文件未被更新;请运行 mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s:文件已被更新\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s:无改变\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s:文件已被更新\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1031,37 +973,37 @@ msgstr "%s:无法打开组文件\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s:无法锁定影子组文件\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s:无法打开影子组文件\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s:无法删除影子组 %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s:无法为 %s 更新影子条目\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s:无法更新 %s 组的条目\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s:无法更新影子组文件\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s 无法更新组文件\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s:无法删除影子组文件\n"
@@ -1081,52 +1023,52 @@ msgstr "用法:id\n"
 msgid " groups="
 msgstr " 组="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "用户名           端口     来自             最后登陆时间\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "用户名                  端口     最后登陆时间\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**从未登录过**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "用法:%s [-p] [名称]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h 主机] [-f 名称]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r 主机\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "无效的登录时间\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1135,7 +1077,7 @@ msgstr ""
 "\n"
 "系统关闭,例行维护\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1144,7 +1086,7 @@ msgstr ""
 "\n"
 "[忽略断线要求 -- 允许 root 登录。]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1153,17 +1095,17 @@ msgstr ""
 "\n"
 "登录超时 %d 秒\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " 在“%.100s”上,来自“%.200s”"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr "在“%.100s”上"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1172,38 +1114,29 @@ msgstr ""
 "\n"
 "%s 用户名:"
 
-#: src/login.c:819
-msgid "login: "
-msgstr "用户名:"
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "登录错误"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "警告:在短暂的锁定后将恢复登录。\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "上次登录:%s 在 %s 上"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "上次登录:%.19s 在 %s 上"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " 来自 %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "开始 rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1244,17 +1177,17 @@ msgstr "%s:增加记录时出错 "
 msgid "added %d entries, longest was %d\n"
 msgstr "增加 %d 个条目,最长是 %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "用法:%s [-vf] [-p|g|sp|sg] 文件\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "用法:%s [-vf] [-p|g|sp] 文件\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "用法:%s [-vf] [-p|g] 文件\n"
@@ -1274,16 +1207,16 @@ msgstr "用法:sg 组 [[-c] 命令]\n"
 msgid "unknown uid: %u\n"
 msgstr "未知的 uid:%u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "未知的 gid:%lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "抱歉。\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "用户组过多\n"
@@ -1293,91 +1226,91 @@ msgstr "用户组过多\n"
 msgid "Usage: %s [input]\n"
 msgstr "用法:%s [输入]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s:无法锁定 /etc/passwd。\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s:无法锁定文件,请稍后再试。\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s:无法打开文件\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s:第 %d 行:无效行\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s:第 %d 行:无法创建 GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s:第 %d 行:无法创建 UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s:第 %d 行:无法找到用户 %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s:第 %d 行:无法更新密码\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s:第 %d 行:创建目录失败\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s:第 %d 行:改变所有者或组别失败\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s:第 %d 行:无法更新条目\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s:更新文件出错\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "用法:%s [-f|-s] [名称]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x 最大] [-n 最小] [-w 警告] [-i 失效] 名称\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} 名称\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "旧密码:"
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "“%s”的密码不正确\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1386,16 +1319,16 @@ msgstr ""
 "请输入新密码(最少 %d 最多 %d 个字符)\n"
 "请混合使用大小写字母和数字。\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "新密码:"
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "再试试。\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1404,52 +1337,52 @@ msgstr ""
 "\n"
 "警告:脆弱的密码(重新输入以强制使用它)。\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "他们并不匹配;请重试。\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "无法更改 %s 的密码。\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "抱歉,无法更改 %s 的密码。\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s:内存溢出\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s:无法执行 %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s:不支持 %s 存储。\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "您不能为 %s 更改 shell。\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "正在为 %s 修改密码\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "%s 的密码未被改变。\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "密码未更改。\n"
@@ -1464,49 +1397,49 @@ msgstr "用法:%s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "用法:%s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "无效的密码文件项\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "重复的密码项\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "无效的用户名“%s”\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "用户 %s:无 %u 组\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "用户 %s:目录 %s 不存在\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "用户 %s:程序 %s 不存在\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "无效的影子密码文件项\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "重复的影子密码文项\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "无匹配的密码文件项\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "用户 %s:最近一次密码改动\n"
@@ -1526,17 +1459,17 @@ msgstr "%s:无法打开密码文件\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s:无法为 %s 删除影子条目\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s:无法为 %s 更新密码条目\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s:无法更新影子文件\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s:无法更新密码文件\n"
@@ -1546,40 +1479,40 @@ msgstr "%s:无法更新密码文件\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s:不能更新用户 %s 的条目\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s:无法删除影子密码文件\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "抱歉"
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s:必须从终端中执行\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s:pam_start:错误 %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "未知 id:%s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "您没有被授权 su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(请输入您自己的密码)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1588,22 +1521,22 @@ msgstr ""
 "%s:%s\n"
 "(忽略)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "没有 shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "su 到该帐户被拒。\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "忽略密码认证\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "请输入您自己的密码作为验证。\n"
@@ -1618,7 +1551,7 @@ msgstr "没有密码文件\n"
 msgid "No password entry for 'root'\n"
 msgstr "没有“root”的密码项\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1628,437 +1561,382 @@ msgstr ""
 "敲击 control-d 即可继续使用普通帐户环境,\n"
 "(或者输入 root 密码以进行系统维护):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "正在进入系统维护模式\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s:重建组别数据库\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s:重建影子组数据库\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s:无效的数字参数“%s”\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s:未知的 gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s:未知的组 %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s:无法创建新的默认文件\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s:无法打开新的默认文件\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s:改名:%s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s:“%s”组是一个 NIS 组。\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s:指定了过多组(最多 %d)。\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "用法:useradd [-u uid [-o]] [-g 组] [-G 组,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "               [-d 主目录] [-s shell] [-c 注释] [-m [-k 模板]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "               [-f 失效日] [-e 过期日 ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, c-format
 msgid "               [-p passwd] name\n"
 msgstr "               [-p 密码] 名称\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       useradd -D [-g 组] [-b 主目录] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s:锁定组文件时出错\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s:打开组文件时出错\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s:锁定影子组文件时出错\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s:打开影子组文件时出错\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s:uid %u 不唯一\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s:无法获得唯一的 uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s:无效的主目录“%s”\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s:无效注释“%s”\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s:无效的主目录“%s”\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s:无效日期“%s”\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s:-e 参数需要有影子密码\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s:-f 参数需要有影子密码\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s:无效字段 “%s”\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s:无效 shell“%s”\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s:无效用户名“%s”\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s:无法重写密码文件\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s:无法重写影子密码文件\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s:无法锁定密码文件\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s:无法打开密码文件\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s:无法锁定影子密码文件\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s:无法打开影子密码文件\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s:加入新密码项时出错\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s:更新密码 dbm 条目时出错\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s:加入新影子密码项时出错\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s:更新影子密码 dbm 条目时出错\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s:无法创建目录 %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s:不能更新用户 %s 的条目\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s:用户 %s 已存在\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr "%s:%s 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s:警告:CREATE_HOME 未被支持,请使用 -m 参数。\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "用法:%s [-r] 名称\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s:更新组条目时出错\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s:无法更新 dbm 组条目\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s:无法删除 dbm 组条目\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s:无法打开组文件\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s:无法打开影子组文件\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s:删除密码项时出错\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s:删除影子密码项时出错\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s:删除密码 dbm 条目时出错\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s:删除影子密码 dbm 条目时出错\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s:用户 %s 目前已登录\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s:%s 并不属于 %s,所以不会删除\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s:警告:无法删除"
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s:用户 %s 不存在\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s:用户 %s 是 NIS 用户\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s:不能删除目录 %s (因为这将删除用户 %s 的主目录)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s:删除目录 %s 时出错\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, fuzzy, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "用法:%s\t[-u uid [-o]] [-g 组] [-G 组,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f 失效日] [-e 过期日] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p 密码] [-L|-U] 名称\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s:update_group 内存溢出\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s:update_gshadow 内存溢出\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s:没有指定标志\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s:-e 和 -f 参数需要影子密码\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s:uid %lu 不唯一\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s:改变密码项时出错\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s:删除密码项时出错\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s:添加密码 dbm 条目时出错\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s:删除密码 dbm 条目时出错\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s:删除影子密码项时出错\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s:删除影子密码 dbm 条目时出错\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s:目录 %s 不存在\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s:无法创建 %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s:无法改变 %s 的所有者和组别\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s:无法将目录 %s 改名为 %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s:警告:%s 不属于 %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "改变信箱所有者失败"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "无法为信箱改名"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2067,20 +1945,20 @@ msgstr ""
 "\n"
 "%s:%s 没有更改\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "无法锁定文件"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "无法备份"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s:无法恢复 %s:%s (您的修改在 %s 中)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 1259c92b7b04a4d849839b99cc8889eb7ae7331a..48acbb8d915cf31218f34d29019392e207f2098d 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index 8f8e0c6e9d0b8b8ef63c7174ce6fbfeb16486b7d..732134aba65360b6242d604272c45d64a182e7c8 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: shadow\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-26 07:53+0100\n"
+"POT-Creation-Date: 2005-04-25 12:28+0200\n"
 "PO-Revision-Date: 2005-01-06 09:58+0800\n"
 "Last-Translator: Asho Yeh <asho@debian.org.tw>\n"
 "Language-Team: Chinese (traditional) <<zh-l10n@linux.org.tw>>\n"
@@ -17,13 +17,14 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Poedit-Language: Chinese\n"
 "X-Poedit-Country: TAIWAN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 #: libmisc/addgrps.c:56
 #, c-format
 msgid "Warning: unknown group %s\n"
 msgstr "警告:未知群組 %s\n"
 
-#: libmisc/addgrps.c:68
+#: libmisc/addgrps.c:67
 #, c-format
 msgid "Warning: too many groups\n"
 msgstr "警告:使用者群組過多\n"
@@ -51,17 +52,17 @@ msgstr "  請聯系系統管理員。\n"
 msgid "  Choose a new password.\n"
 msgstr "  請選擇一個新密碼。\n"
 
-#: libmisc/age.c:170
+#: libmisc/age.c:169
 #, c-format
 msgid "Your password will expire in %ld days.\n"
 msgstr "您的密碼將在 %ld 天內過期。\n"
 
-#: libmisc/age.c:174
+#: libmisc/age.c:172
 #, c-format
 msgid "Your password will expire tomorrow.\n"
 msgstr "您的密碼將在明天過期。\n"
 
-#: libmisc/age.c:176
+#: libmisc/age.c:174
 #, c-format
 msgid "Your password will expire today.\n"
 msgstr "您的密碼今天過期。\n"
@@ -76,39 +77,26 @@ msgstr "無法改變 tty %s"
 msgid "Environment overflow\n"
 msgstr "環境溢位\n"
 
-#: libmisc/env.c:195
+#: libmisc/env.c:194
 #, c-format
 msgid "You may not change $%s\n"
 msgstr "您不應該改變 $%s\n"
 
-#: libmisc/failure.c:230
+#: libmisc/failure.c:229
 #, fuzzy, c-format
-msgid "%d %s since last login.  Last was %s on %s.\n"
-msgstr "距離上一次登錄已有 %d 次登錄失敗。最後一次是 %s 在 %s 上。\n"
-
-#: libmisc/failure.c:232
-msgid "failures"
-msgstr ""
-
-#: libmisc/failure.c:232
-msgid "failure"
-msgstr ""
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] "距離上一次登錄已有 %d 次登錄失敗。最後一次是 %s 在 %s 上。\n"
 
-#: libmisc/limits.c:396
+#: libmisc/limits.c:397
 #, c-format
 msgid "Too many logins.\n"
 msgstr "過多登錄數量。\n"
 
-#: libmisc/login_desrpc.c:59
-#, c-format
-msgid "Password does not decrypt secret key for %s.\n"
-msgstr "密碼並非由 %s 的私有金鑰解密。\n"
-
-#: libmisc/login_desrpc.c:66
-#, c-format
-msgid "Could not set %s's secret key: is the keyserv daemon running?\n"
-msgstr "無法設定 %s 的私有金鑰:keyserv daemon 正在運行嗎?\n"
-
 #: libmisc/mail.c:61 libmisc/mail.c:76
 msgid "You have new mail."
 msgstr "您有新信件。"
@@ -121,7 +109,7 @@ msgstr "無信件。"
 msgid "You have mail."
 msgstr "您有信件。"
 
-#: libmisc/obscure.c:271 src/passwd.c:183
+#: libmisc/obscure.c:273 src/passwd.c:181
 #, c-format
 msgid "Bad password: %s.  "
 msgstr "錯誤的密碼:%s。 "
@@ -136,20 +124,20 @@ msgstr "passwd: pam_start() 失敗,錯誤 %d\n"
 msgid "passwd: %s\n"
 msgstr "passwd:%s\n"
 
-#: libmisc/pam_pass.c:50
+#: libmisc/pam_pass.c:49
 msgid "passwd: password updated successfully\n"
 msgstr ""
 
-#: libmisc/setupenv.c:208
+#: libmisc/setupenv.c:207
 #, c-format
 msgid "Unable to cd to \"%s\"\n"
 msgstr "無法進入“%s”目錄\n"
 
-#: libmisc/setupenv.c:216
+#: libmisc/setupenv.c:215
 msgid "No directory, logging in with HOME=/"
 msgstr "沒有目錄,將以 HOME=/ 登入"
 
-#: libmisc/shell.c:119
+#: libmisc/shell.c:118
 #, c-format
 msgid "Cannot execute %s"
 msgstr "無法執行 %s"
@@ -164,35 +152,31 @@ msgstr "無效的根目錄“%s”\n"
 msgid "Can't change root directory to \"%s\"\n"
 msgstr "無法將根目錄改變為“%s”\n"
 
-#: libmisc/xmalloc.c:23
+#: libmisc/xmalloc.c:22
 #, c-format
 msgid "malloc(%d) failed\n"
 msgstr "malloc(%d) 失敗\n"
 
-#: lib/getdef.c:273
+#: lib/getdef.c:265
 #, c-format
 msgid "Could not allocate space for config info.\n"
 msgstr "無法為設定訊息配置空間。\n"
 
-#: lib/getdef.c:327
+#: lib/getdef.c:319
 #, c-format
 msgid "configuration error - unknown item '%s' (notify administrator)\n"
 msgstr "配置錯誤 - 未知項目“%s”(請通知管理員)\n"
 
-#: lib/pwauth.c:54 src/newgrp.c:343
+#: lib/pwauth.c:45 src/newgrp.c:341
 msgid "Password: "
 msgstr "密碼:"
 
-#: lib/pwauth.c:56
+#: lib/pwauth.c:47
 #, c-format
 msgid "%s's Password: "
 msgstr "%s 的密碼:"
 
-#: lib/pwauth.c:247
-msgid "(Echo on) "
-msgstr "(Echo on) "
-
-#: src/chage.c:118
+#: src/chage.c:112
 #, fuzzy, c-format
 msgid ""
 "Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
@@ -201,154 +185,147 @@ msgstr ""
 "用法:%s [-l] [-m 最小天數] [-M 最大天數] [-W 警告]\n"
 "\t[-I 失效日] [-E 過期日] [-d 最後日] 使用者\n"
 
-#: src/chage.c:151 src/chfn.c:140 src/chsh.c:90
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
 #, c-format
 msgid "Enter the new value, or press ENTER for the default\n"
 msgstr "請輸入新值,或直接按 ENTER 鍵以使用預設值\n"
 
-#: src/chage.c:155
+#: src/chage.c:149
 msgid "Minimum Password Age"
 msgstr "密碼期限最小值"
 
-#: src/chage.c:161
+#: src/chage.c:155
 msgid "Maximum Password Age"
 msgstr "密碼期限最大值"
 
-#: src/chage.c:169
+#: src/chage.c:162
 msgid "Last Password Change (YYYY-MM-DD)"
 msgstr "最近一次密碼修改時間 (YYYY-MM-DD)"
 
-#: src/chage.c:177
+#: src/chage.c:170
 msgid "Password Expiration Warning"
 msgstr "密碼過期警告"
 
-#: src/chage.c:183
+#: src/chage.c:176
 msgid "Password Inactive"
 msgstr "密碼失效"
 
-#: src/chage.c:191
+#: src/chage.c:184
 msgid "Account Expiration Date (YYYY-MM-DD)"
 msgstr "帳戶過期時間 (YYYY-MM-DD)"
 
-#: src/chage.c:238
+#: src/chage.c:231
 #, fuzzy, c-format
 msgid "Last password change\t\t\t\t\t: "
 msgstr "最近一次密碼修改時間 (YYYY-MM-DD)"
 
-#: src/chage.c:240 src/chage.c:254 src/chage.c:270 src/chage.c:283
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
 #, fuzzy, c-format
 msgid "never\n"
 msgstr "從不\n"
 
-#: src/chage.c:251
+#: src/chage.c:244
 #, fuzzy, c-format
 msgid "Password expires\t\t\t\t\t: "
 msgstr "密碼過期:\t"
 
-#: src/chage.c:267
+#: src/chage.c:260
 #, fuzzy, c-format
 msgid "Password inactive\t\t\t\t\t: "
 msgstr "密碼失效:\t"
 
-#: src/chage.c:281
+#: src/chage.c:274
 #, fuzzy, c-format
 msgid "Account expires\t\t\t\t\t\t: "
 msgstr "帳戶過期:\t"
 
-#: src/chage.c:297
+#: src/chage.c:290
 #, c-format
 msgid "Minimum number of days between password change\t\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:298
+#: src/chage.c:292
 #, fuzzy, c-format
 msgid "Maximum number of days between password change\t\t: %ld\n"
 msgstr "最大嘗試次數超過了 (%d)\n"
 
-#: src/chage.c:299
+#: src/chage.c:294
 #, c-format
 msgid "Number of days of warning before password expires\t: %ld\n"
 msgstr ""
 
-#: src/chage.c:444
+#: src/chage.c:431
 #, c-format
 msgid "%s: do not include \"l\" with other flags\n"
 msgstr "%s:請不要與其它標誌一同使用“l”\n"
 
-#: src/chage.c:457 src/chage.c:587 src/chfn.c:272 src/chfn.c:282
-#: src/chfn.c:292 src/chfn.c:302 src/chfn.c:312 src/chfn.c:380
-#: src/gpasswd.c:157 src/login.c:503 src/passwd.c:853 src/passwd.c:890
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
 #, fuzzy, c-format
 msgid "%s: permission denied.\n"
 msgstr "%s:沒有權限\n"
 
-#: src/chage.c:488 src/chage.c:727 src/chpasswd.c:177 src/groupadd.c:534
-#: src/groupdel.c:330 src/groupmod.c:523 src/newusers.c:365 src/useradd.c:1672
-#: src/userdel.c:674 src/usermod.c:1425
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
 #, c-format
 msgid "%s: PAM authentication failed\n"
 msgstr "%s:PAM 驗証失敗\n"
 
-#: src/chage.c:509 src/chpasswd.c:194
+#: src/chage.c:494 src/chpasswd.c:193
 #, c-format
 msgid "%s: can't open password file\n"
 msgstr "%s:無法打開密碼文件\n"
 
-#: src/chage.c:517 src/chfn.c:333 src/chsh.c:185 src/gpasswd.c:146
-#: src/gpasswd.c:230 src/groups.c:65 src/passwd.c:903
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
 #, c-format
 msgid "%s: unknown user %s\n"
 msgstr "%s:未知使用者:%s\n"
 
-#: src/chage.c:535
+#: src/chage.c:519
 #, c-format
 msgid "%s: can't lock shadow password file"
 msgstr "%s:無法鎖定shadow密碼文件"
 
-#: src/chage.c:543
+#: src/chage.c:527
 #, c-format
 msgid "%s: can't open shadow password file"
 msgstr "%s:無法打開影子密碼文件"
 
-#: src/chage.c:604
+#: src/chage.c:587
 #, c-format
 msgid "Changing the aging information for %s\n"
 msgstr "正在為 %s 修改年齡訊息\n"
 
-#: src/chage.c:607
+#: src/chage.c:589
 #, c-format
 msgid "%s: error changing fields\n"
 msgstr "%s:改變字段時出錯\n"
 
-#: src/chage.c:631 src/pwunconv.c:138
+#: src/chage.c:613 src/pwunconv.c:137
 #, c-format
 msgid "%s: can't update password file\n"
 msgstr "%s:無法更新密碼檔案\n"
 
-#: src/chage.c:660 src/pwunconv.c:132
+#: src/chage.c:636 src/pwunconv.c:132
 #, c-format
 msgid "%s: can't update shadow password file\n"
 msgstr "%s:無法更新shadow密碼檔案\n"
 
-#: src/chage.c:675 src/chfn.c:571 src/chsh.c:377 src/passwd.c:543
-#: src/passwd.c:615
-#, c-format
-msgid "Error updating the DBM password entry.\n"
-msgstr "更新 DBM 密碼項目時出錯。\n"
-
-#: src/chage.c:692
+#: src/chage.c:649
 #, c-format
 msgid "%s: can't rewrite shadow password file\n"
 msgstr "%s:無法重寫shadow密碼檔案\n"
 
-#: src/chage.c:740
+#: src/chage.c:693
 #, c-format
 msgid "%s: can't rewrite password file\n"
 msgstr "%s:無法重寫密碼檔案\n"
 
-#: src/chage.c:760 src/chpasswd.c:379 src/groupadd.c:595 src/groupdel.c:413
-#: src/groupmod.c:607 src/newusers.c:609 src/useradd.c:1787 src/userdel.c:817
-#: src/usermod.c:1498
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
 #, c-format
 msgid "%s: PAM chauthtok failed\n"
 msgstr "%s:PAM chauthtok 失敗\n"
@@ -367,117 +344,122 @@ msgstr ""
 msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
 msgstr "用法:%s [-f 全名] [-r 房間號] [-w 工作電話] [-h 家庭電話]\n"
 
-#: src/chfn.c:143
+#: src/chfn.c:142
 msgid "Full Name"
 msgstr "全名"
 
-#: src/chfn.c:145
+#: src/chfn.c:144
 #, c-format
 msgid "\tFull Name: %s\n"
 msgstr "\t全名:%s\n"
 
-#: src/chfn.c:148 src/chfn.c:150
+#: src/chfn.c:147 src/chfn.c:149
 msgid "Room Number"
 msgstr "房間號碼"
 
-#: src/chfn.c:153 src/chfn.c:155
+#: src/chfn.c:152 src/chfn.c:154
 msgid "Work Phone"
 msgstr "工作電話"
 
-#: src/chfn.c:158 src/chfn.c:160
+#: src/chfn.c:157 src/chfn.c:159
 msgid "Home Phone"
 msgstr "家庭電話"
 
-#: src/chfn.c:163
+#: src/chfn.c:162
 msgid "Other"
 msgstr "其它"
 
-#: src/chfn.c:342 src/chsh.c:193 src/passwd.c:834
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
 #, c-format
 msgid "%s: Cannot determine your user name.\n"
 msgstr "%s:無法確定您的使用者名稱。\n"
 
-#: src/chfn.c:359 src/chsh.c:210
+#: src/chfn.c:350 src/chsh.c:206
 #, c-format
 msgid "%s: cannot change user `%s' on NIS client.\n"
 msgstr "%s:不能在 NIS 用戶端上修改使用者“%s”。\n"
 
-#: src/chfn.c:367 src/chsh.c:218
+#: src/chfn.c:357 src/chsh.c:213
 #, c-format
 msgid "%s: `%s' is the NIS master for this client.\n"
 msgstr "%s:“%s”是用戶端的 NIS 管理員。\n"
 
-#: src/chfn.c:442
+#: src/chfn.c:382
+#, fuzzy, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s:沒有權限\n"
+
+#: src/chfn.c:446
 #, c-format
 msgid "Changing the user information for %s\n"
 msgstr "正在改變 %s 的使用者訊息\n"
 
-#: src/chfn.c:451
+#: src/chfn.c:454
 #, c-format
 msgid "%s: invalid name: \"%s\"\n"
 msgstr "%s:無效的名稱:“%s”\n"
 
-#: src/chfn.c:457
+#: src/chfn.c:459
 #, c-format
 msgid "%s: invalid room number: \"%s\"\n"
 msgstr "%s:無效的房間號碼:“%s”\n"
 
-#: src/chfn.c:463
+#: src/chfn.c:465
 #, c-format
 msgid "%s: invalid work phone: \"%s\"\n"
 msgstr "%s:無效的工作電話:“%s”\n"
 
-#: src/chfn.c:469
+#: src/chfn.c:471
 #, c-format
 msgid "%s: invalid home phone: \"%s\"\n"
 msgstr "%s:無效的家庭電話:“%s”\n"
 
-#: src/chfn.c:476
+#: src/chfn.c:478
 #, c-format
 msgid "%s: \"%s\" contains illegal characters\n"
 msgstr "%s:“%s”包含非法字元\n"
 
-#: src/chfn.c:489
+#: src/chfn.c:491
 #, c-format
 msgid "%s: fields too long\n"
 msgstr "%s:字段太長\n"
 
-#: src/chfn.c:505 src/chsh.c:311 src/gpasswd.c:570 src/passwd.c:994
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
 #, c-format
 msgid "Cannot change ID to root.\n"
 msgstr "無法改變 ID 成 root。\n"
 
-#: src/chfn.c:520 src/chsh.c:326 src/passwd.c:515 src/passwd.c:567
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
 #, c-format
 msgid "Cannot lock the password file; try again later.\n"
 msgstr "無法鎖定密碼檔案﹔稍後再試。\n"
 
-#: src/chfn.c:526 src/chsh.c:332 src/passwd.c:520 src/passwd.c:572
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
 #, c-format
 msgid "Cannot open the password file.\n"
 msgstr "無法打開密碼檔案。\n"
 
-#: src/chfn.c:543 src/chsh.c:347 src/passwd.c:526 src/usermod.c:1092
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
 #, c-format
 msgid "%s: %s not found in /etc/passwd\n"
 msgstr "%s:未在 /etc/passwd 中找到 %s\n"
 
-#: src/chfn.c:562 src/chsh.c:368 src/passwd.c:536 src/passwd.c:608
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
 #, c-format
 msgid "Error updating the password entry.\n"
 msgstr "更改密碼項目時出錯。\n"
 
-#: src/chfn.c:586 src/chsh.c:392 src/passwd.c:551 src/passwd.c:623
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
 #, c-format
 msgid "Cannot commit password file changes.\n"
 msgstr "無法提交密碼檔案變動。\n"
 
-#: src/chfn.c:593 src/chsh.c:399
+#: src/chfn.c:578 src/chsh.c:394
 #, c-format
 msgid "Cannot unlock the password file.\n"
 msgstr "無法解鎖密碼檔案。\n"
 
-#: src/chpasswd.c:69
+#: src/chpasswd.c:71
 #, c-format
 msgid ""
 "Usage: chpasswd [options]\n"
@@ -500,48 +482,48 @@ msgstr ""
 msgid "%s: can't lock password file\n"
 msgstr "%s:無法鎖定密碼文件\n"
 
-#: src/chpasswd.c:203 src/pwconv.c:95
+#: src/chpasswd.c:201 src/pwconv.c:95
 #, c-format
 msgid "%s: can't lock shadow file\n"
 msgstr "%s:無法鎖定shadow檔案\n"
 
-#: src/chpasswd.c:209 src/gpasswd.c:596 src/pwconv.c:100 src/pwunconv.c:89
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
 #: src/pwunconv.c:94
 #, c-format
 msgid "%s: can't open shadow file\n"
 msgstr "%s:無法打開shadow檔案\n"
 
-#: src/chpasswd.c:232 src/newusers.c:441
+#: src/chpasswd.c:230 src/newusers.c:434
 #, c-format
 msgid "%s: line %d: line too long\n"
 msgstr "%s:第 %d 行:此行太長\n"
 
-#: src/chpasswd.c:252
+#: src/chpasswd.c:250
 #, c-format
 msgid "%s: line %d: missing new password\n"
 msgstr "%s:第 %d 行:缺少新密碼\n"
 
-#: src/chpasswd.c:277
+#: src/chpasswd.c:274
 #, c-format
 msgid "%s: line %d: unknown user %s\n"
 msgstr "%s:第 %d 行:未知使用者 %s\n"
 
-#: src/chpasswd.c:323
+#: src/chpasswd.c:320
 #, c-format
 msgid "%s: line %d: cannot update password entry\n"
 msgstr "%s:第 %d 行:無法更新密碼項目\n"
 
-#: src/chpasswd.c:340 src/newusers.c:569
+#: src/chpasswd.c:337 src/newusers.c:561
 #, c-format
 msgid "%s: error detected, changes ignored\n"
 msgstr "%s:發現錯誤,忽略更動\n"
 
-#: src/chpasswd.c:352
+#: src/chpasswd.c:349
 #, c-format
 msgid "%s: error updating shadow file\n"
 msgstr "%s:更新shadow檔案時出錯。\n"
 
-#: src/chpasswd.c:361
+#: src/chpasswd.c:357
 #, c-format
 msgid "%s: error updating password file\n"
 msgstr "%s:更新密碼檔案時出錯。\n"
@@ -551,26 +533,26 @@ msgstr "%s:更新密碼檔案時出錯。\n"
 msgid "Usage: %s [-s shell] [name]\n"
 msgstr "用法:%s [-s shell] [名稱]\n"
 
-#: src/chsh.c:91
+#: src/chsh.c:90
 msgid "Login Shell"
 msgstr "登入 Shell"
 
-#: src/chsh.c:234 src/chsh.c:248
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
 #, c-format
 msgid "You may not change the shell for %s.\n"
 msgstr "您不能為 %s 更改 shell。\n"
 
-#: src/chsh.c:277
+#: src/chsh.c:288
 #, c-format
 msgid "Changing the login shell for %s\n"
 msgstr "正在更改 %s 的 shell\n"
 
-#: src/chsh.c:289
+#: src/chsh.c:300
 #, c-format
 msgid "%s: Invalid entry: %s\n"
 msgstr "%s:無效的項目:%s\n"
 
-#: src/chsh.c:296
+#: src/chsh.c:305
 #, c-format
 msgid "%s is an invalid shell.\n"
 msgstr "%s 是無效的 shell。\n"
@@ -580,12 +562,12 @@ msgstr "%s 是無效的 shell。\n"
 msgid "Usage: expiry {-f|-c}\n"
 msgstr "用法:expiry {-f|-c}\n"
 
-#: src/expiry.c:113
+#: src/expiry.c:112
 #, c-format
 msgid "%s: WARNING!  Must be set-UID root!\n"
 msgstr "%s:警告!必須是 set-UID root!\n"
 
-#: src/expiry.c:124
+#: src/expiry.c:122
 #, c-format
 msgid "%s: unknown user\n"
 msgstr "%s:未知使用者\n"
@@ -599,320 +581,285 @@ msgid ""
 "  -a, --all\t\t\tdisplay faillog records for all users\n"
 "  -h, --help\t\t\tdisplay this help message and exit\n"
 "  -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
-"  -m, --maximum MAX\t\tset maiximum failed login counters to MAX\n"
+"  -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
 "  -r, --reset\t\t\treset the counters of login failures\n"
+"  -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
 "  -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
 "\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
 "\t\t\t\tfor user with LOGIN\n"
 msgstr ""
 
-#: src/faillog.c:86
-#, c-format
-msgid "Username   Failures  Maximum  Latest\n"
-msgstr "使用者       錯誤      最大     最後\n"
-
-#: src/faillog.c:103
+#: src/faillog.c:87
 #, c-format
-msgid "  %s on %s"
-msgstr "  %s 在 %s"
+msgid "Login       Failures Maximum Latest                   On\n"
+msgstr ""
 
-#: src/faillog.c:107
+#: src/faillog.c:105
 #, c-format
 msgid " [%lds left]"
 msgstr " [還剩 %lds]"
 
-#: src/faillog.c:111
+#: src/faillog.c:109
 #, c-format
 msgid " [%lds lock]"
 msgstr " [鎖定 %lds]"
 
-#: src/faillog.c:351 src/lastlog.c:191
+#: src/faillog.c:353 src/lastlog.c:187
 #, c-format
 msgid "Unknown User: %s\n"
 msgstr "未知使用者:%s\n"
 
-#: src/gpasswd.c:78
+#: src/gpasswd.c:71
 #, fuzzy, c-format
 msgid "Usage: %s [-r|-R] group\n"
 msgstr "用法:%s [-r|-R] 群組\n"
 
-#: src/gpasswd.c:79
+#: src/gpasswd.c:72
 #, c-format
 msgid "       %s [-a user] group\n"
 msgstr "       %s [-a 使用者] 群組\n"
 
-#: src/gpasswd.c:80
+#: src/gpasswd.c:73
 #, c-format
 msgid "       %s [-d user] group\n"
 msgstr "       %s [-d 使用者] 群組\n"
 
-#: src/gpasswd.c:83
+#: src/gpasswd.c:76
 #, c-format
 msgid "       %s [-A user,...] [-M user,...] group\n"
 msgstr "       %s [-A 使用者,...] [-M 使用者,...] 群組\n"
 
-#: src/gpasswd.c:85
+#: src/gpasswd.c:78
 #, c-format
 msgid "       %s [-M user,...] group\n"
 msgstr "       %s [-M 使用者,...] 群組\n"
 
-#: src/gpasswd.c:243
+#: src/gpasswd.c:229
 #, c-format
 msgid "%s: shadow group passwords required for -A\n"
 msgstr "%s:-A 需要shadow群組密碼\n"
 
-#: src/gpasswd.c:294
+#: src/gpasswd.c:280
 #, c-format
 msgid "Who are you?\n"
 msgstr "你是誰?\n"
 
-#: src/gpasswd.c:313 src/newgrp.c:292
+#: src/gpasswd.c:299 src/newgrp.c:290
 #, c-format
 msgid "unknown group: %s\n"
 msgstr "未知群組:%s\n"
 
-#: src/gpasswd.c:422
+#: src/gpasswd.c:408
 #, c-format
 msgid "Adding user %s to group %s\n"
 msgstr "正在將使用者“%s”加入到“%s”群組中\n"
 
-#: src/gpasswd.c:440
+#: src/gpasswd.c:426
 #, c-format
 msgid "Removing user %s from group %s\n"
 msgstr "正在將使用者“%s”從“%s”群組中刪除\n"
 
-#: src/gpasswd.c:454
+#: src/gpasswd.c:439
 #, c-format
 msgid "%s: unknown member %s\n"
 msgstr "%s:未知成員 %s\n"
 
-#: src/gpasswd.c:501
+#: src/gpasswd.c:485
 #, c-format
 msgid "%s: Not a tty\n"
 msgstr "%s:不是 tty\n"
 
-#: src/gpasswd.c:522
+#: src/gpasswd.c:506
 #, c-format
 msgid "Changing the password for group %s\n"
 msgstr "正在修改 %s 群組的密碼\n"
 
-#: src/gpasswd.c:525
+#: src/gpasswd.c:509
 msgid "New Password: "
 msgstr "新密碼:"
 
-#: src/gpasswd.c:530 src/passwd.c:281
+#: src/gpasswd.c:514 src/passwd.c:278
 msgid "Re-enter new password: "
 msgstr "請重新輸入新密碼:"
 
-#: src/gpasswd.c:542
+#: src/gpasswd.c:526
 msgid "They don't match; try again"
 msgstr "他們並不匹配﹔請重試"
 
-#: src/gpasswd.c:546
+#: src/gpasswd.c:530
 #, c-format
 msgid "%s: Try again later\n"
 msgstr "%s:請稍後重試\n"
 
-#: src/gpasswd.c:578
+#: src/gpasswd.c:562
 #, c-format
 msgid "%s: can't get lock\n"
 msgstr "%s:無法獲得鎖定\n"
 
-#: src/gpasswd.c:584
+#: src/gpasswd.c:568
 #, c-format
 msgid "%s: can't get shadow lock\n"
 msgstr "%s:無法獲得shadow鎖定\n"
 
-#: src/gpasswd.c:590
+#: src/gpasswd.c:574
 #, c-format
 msgid "%s: can't open file\n"
 msgstr "%s:無法打開檔案\n"
 
-#: src/gpasswd.c:602
+#: src/gpasswd.c:586
 #, c-format
 msgid "%s: can't update entry\n"
 msgstr "%s:無法更新項目\n"
 
-#: src/gpasswd.c:608
+#: src/gpasswd.c:592
 #, c-format
 msgid "%s: can't update shadow entry\n"
 msgstr "%s:無法更新shadow項目\n"
 
-#: src/gpasswd.c:615
+#: src/gpasswd.c:598
 #, c-format
 msgid "%s: can't re-write file\n"
 msgstr "%s:無法重寫檔案\n"
 
-#: src/gpasswd.c:621
+#: src/gpasswd.c:604
 #, c-format
 msgid "%s: can't re-write shadow file\n"
 msgstr "%s:無法重寫shadow檔案\n"
 
-#: src/gpasswd.c:630
+#: src/gpasswd.c:612
 #, c-format
 msgid "%s: can't unlock file\n"
 msgstr "%s 無法解鎖檔案。\n"
 
-#: src/gpasswd.c:635
-#, c-format
-msgid "%s: can't update DBM files\n"
-msgstr "%s:無法更新 DBM 檔案\n"
-
-#: src/gpasswd.c:642
-#, c-format
-msgid "%s: can't update DBM shadow files\n"
-msgstr "%s:無法更新 DBM shadow檔案\n"
-
-#: src/groupadd.c:102
+#: src/groupadd.c:97
 #, fuzzy, c-format
 msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
 msgstr "用法:groupadd [-g gid [-o]] 群組\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
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
 #, c-format
 msgid "%s: error adding new group entry\n"
 msgstr "%s:增加新群組項目時出錯\n"
 
-#: src/groupadd.c:179 src/groupadd.c:204 src/groupmod.c:198 src/useradd.c:948
-#: src/usermod.c:545 src/usermod.c:689
-#, c-format
-msgid "%s: cannot add new dbm group entry\n"
-msgstr "%s:無法增加新的 dbm 群組項目\n"
-
-#: src/groupadd.c:256 src/useradd.c:1001
+#: src/groupadd.c:219 src/useradd.c:904
 #, c-format
 msgid "%s: name %s is not unique\n"
 msgstr "%s:名稱 %s 並不唯一\n"
 
-#: src/groupadd.c:271
+#: src/groupadd.c:234
 #, c-format
 msgid "%s: gid %u is not unique\n"
 msgstr "%s:gid %u 並不唯一\n"
 
-#: src/groupadd.c:295
+#: src/groupadd.c:258
 #, c-format
 msgid "%s: can't get unique gid\n"
 msgstr "%s:無法獲取獨有的 gid\n"
 
-#: src/groupadd.c:318 src/groupmod.c:342
+#: src/groupadd.c:280 src/groupmod.c:283
 #, fuzzy, c-format
 msgid "%s: %s is not a valid group name\n"
 msgstr "%s:%s 不是有效的群組名\n"
 
-#: src/groupadd.c:347 src/groupmod.c:367
+#: src/groupadd.c:309 src/groupmod.c:308
 #, c-format
 msgid "%s: invalid group %s\n"
 msgstr "%s:無效群組名 %s\n"
 
-#: src/groupadd.c:364 src/useradd.c:1197
+#: src/groupadd.c:326 src/useradd.c:1099
 #, c-format
 msgid "%s: -O requires NAME=VALUE\n"
 msgstr "%s:-O 需要 NAME=VALUE\n"
 
-#: src/groupadd.c:408 src/groupdel.c:171 src/groupmod.c:402 src/useradd.c:1312
-#: src/userdel.c:302 src/usermod.c:557
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
 #, c-format
 msgid "%s: cannot rewrite group file\n"
 msgstr "%s:無法重寫群組檔案\n"
 
-#: src/groupadd.c:416 src/groupdel.c:179 src/groupmod.c:410 src/useradd.c:1321
-#: src/userdel.c:309 src/usermod.c:703
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
 #, c-format
 msgid "%s: cannot rewrite shadow group file\n"
 msgstr "%s:無法重寫shadow群組檔案\n"
 
-#: src/groupadd.c:434 src/groupdel.c:197 src/groupmod.c:428 src/userdel.c:374
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
 #, c-format
 msgid "%s: unable to lock group file\n"
 msgstr "%s:無法鎖定群組檔案\n"
 
-#: src/groupadd.c:439 src/groupdel.c:202 src/groupmod.c:433
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
 #, c-format
 msgid "%s: unable to open group file\n"
 msgstr "%s:無法打開群組檔案\n"
 
-#: src/groupadd.c:446 src/groupdel.c:209 src/groupmod.c:440 src/userdel.c:385
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
 #, c-format
 msgid "%s: unable to lock shadow group file\n"
 msgstr "%s:無法鎖定shadow群組檔案\n"
 
-#: src/groupadd.c:452 src/groupdel.c:215 src/groupmod.c:446
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
 #, c-format
 msgid "%s: unable to open shadow group file\n"
 msgstr "%s:無法打開shadow群組檔案\n"
 
-#: src/groupadd.c:566
+#: src/groupadd.c:508
 #, c-format
 msgid "%s: group %s exists\n"
 msgstr "%s:%s 群組已存在\n"
 
-#: src/groupdel.c:88
+#: src/groupdel.c:83
 #, fuzzy, c-format
 msgid "Usage: groupdel group\n"
 msgstr "用法:groupdel 群組\n"
 
-#: src/groupdel.c:105 src/groupmod.c:185 src/groupmod.c:234
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
 #, c-format
 msgid "%s: error removing group entry\n"
 msgstr "%s:刪除群組項目時出錯\n"
 
-#: src/groupdel.c:119 src/groupmod.c:205
-#, c-format
-msgid "%s: error removing group dbm entry\n"
-msgstr "%s:刪除群組 dbm 項目時出錯\n"
-
-#: src/groupdel.c:135
+#: src/groupdel.c:106
 #, c-format
 msgid "%s: error removing shadow group entry\n"
 msgstr "%s:刪除shadow群組項目時出錯\n"
 
-#: src/groupdel.c:149 src/groupmod.c:255
-#, c-format
-msgid "%s: error removing shadow group dbm entry\n"
-msgstr "%s:刪除shadow群組 dbm 項目時出錯\n"
-
-#: src/groupdel.c:255
+#: src/groupdel.c:202
 #, c-format
 msgid "%s: cannot remove user's primary group.\n"
 msgstr "%s:不能刪除使用者的主群組。\n"
 
-#: src/groupdel.c:359 src/groupmod.c:552
+#: src/groupdel.c:290 src/groupmod.c:471
 #, c-format
 msgid "%s: group %s does not exist\n"
 msgstr "%s:%s 群組不存在\n"
 
-#: src/groupdel.c:373 src/groupmod.c:568
+#: src/groupdel.c:303 src/groupmod.c:485
 #, c-format
 msgid "%s: group %s is a NIS group\n"
 msgstr "%s:%s 群組是一個 NIS 群組\n"
 
-#: src/groupdel.c:378 src/groupmod.c:573 src/userdel.c:727 src/usermod.c:805
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
 #, c-format
 msgid "%s: %s is the NIS master\n"
 msgstr "%s:%s 是 NIS 管理員\n"
 
-#: src/groupmod.c:104
+#: src/groupmod.c:98
 #, fuzzy, c-format
 msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
 msgstr "用法:groupmod [-g gid [-o]] [-n 名稱] 群組\n"
 
-#: src/groupmod.c:162
+#: src/groupmod.c:156
 #, c-format
 msgid "%s: %s not found in /etc/group\n"
 msgstr "%s:未在 /etc/group 中找到 %s\n"
 
-#: src/groupmod.c:248
-#, c-format
-msgid "%s: cannot add new dbm shadow group entry\n"
-msgstr "%s:無法增加新的 dbm shadow群組項目\n"
-
-#: src/groupmod.c:301
+#: src/groupmod.c:242
 #, c-format
 msgid "%s: %u is not a unique gid\n"
 msgstr "%s:%u 不是一個唯一的 gid\n"
 
-#: src/groupmod.c:331
+#: src/groupmod.c:272
 #, c-format
 msgid "%s: %s is not a unique name\n"
 msgstr "%s:%s 不是一個唯一的名稱\n"
@@ -922,110 +869,105 @@ msgstr "%s:%s 不是一個唯一的名稱\n"
 msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
 msgstr "用法:%s [-r] [-s] [群組 [gshadow]] \n"
 
-#: src/grpck.c:90
+#: src/grpck.c:89
 #, c-format
 msgid "Usage: %s [-r] [-s] [group]\n"
 msgstr "用法:%s [-r] [-s] [群組]\n"
 
-#: src/grpck.c:108 src/pwck.c:108
+#: src/grpck.c:107 src/pwck.c:108
 msgid "No"
 msgstr "取消"
 
-#: src/grpck.c:192 src/pwck.c:175
+#: src/grpck.c:191 src/pwck.c:175
 #, c-format
 msgid "%s: -s and -r are incompatibile\n"
 msgstr "%s:-s 和 -r 是互不相容的\n"
 
-#: src/grpck.c:232 src/grpck.c:242 src/pwck.c:215 src/pwck.c:225
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
 #, c-format
 msgid "%s: cannot lock file %s\n"
 msgstr "%s:無法鎖定檔案 %s\n"
 
-#: src/grpck.c:259 src/grpck.c:268 src/mkpasswd.c:201 src/pwck.c:242
-#: src/pwck.c:251
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
 #, c-format
 msgid "%s: cannot open file %s\n"
 msgstr "%s:無法打開檔案 %s\n"
 
-#: src/grpck.c:311
+#: src/grpck.c:307
 #, c-format
 msgid "invalid group file entry\n"
 msgstr "無效的群組檔案項目\n"
 
-#: src/grpck.c:312 src/grpck.c:375 src/grpck.c:458 src/grpck.c:521
-#: src/grpck.c:538 src/pwck.c:296 src/pwck.c:358 src/pwck.c:457 src/pwck.c:519
-#: src/pwck.c:543
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
 #, c-format
 msgid "delete line `%s'? "
 msgstr "刪除“%s”行?\""
 
-#: src/grpck.c:374
+#: src/grpck.c:370
 msgid "duplicate group entry\n"
 msgstr "複製群組項目\n"
 
-#: src/grpck.c:391
+#: src/grpck.c:387
 #, c-format
 msgid "invalid group name `%s'\n"
 msgstr "無效的群組名“%s”\n"
 
-#: src/grpck.c:418
+#: src/grpck.c:413
 #, c-format
 msgid "group %s: no user %s\n"
 msgstr "%s 群組:無使用者 %s\n"
 
-#: src/grpck.c:420 src/grpck.c:590
+#: src/grpck.c:415 src/grpck.c:585
 #, c-format
 msgid "delete member `%s'? "
 msgstr "刪除使用者成員“%s”嗎?"
 
-#: src/grpck.c:457
+#: src/grpck.c:452
 #, c-format
 msgid "invalid shadow group file entry\n"
 msgstr "無效的shadow群組檔案項目\n"
 
-#: src/grpck.c:520
+#: src/grpck.c:515
 msgid "duplicate shadow group entry\n"
 msgstr "複製shadow群組項目\n"
 
-#: src/grpck.c:537
+#: src/grpck.c:532
 msgid "no matching group file entry\n"
 msgstr "沒有找到匹配的群組檔案項目\n"
 
-#: src/grpck.c:558
+#: src/grpck.c:553
 #, c-format
 msgid "shadow group %s: no administrative user %s\n"
 msgstr "%s shadow群組:無系統管理者 %s\n"
 
-#: src/grpck.c:560
+#: src/grpck.c:555
 #, c-format
 msgid "delete administrative member `%s'? "
 msgstr "刪除系統管理者“%s”嗎?"
 
-#: src/grpck.c:588
+#: src/grpck.c:583
 #, c-format
 msgid "shadow group %s: no user %s\n"
 msgstr "%s shadow群組:無使用者 %s\n"
 
-#: src/grpck.c:616 src/grpck.c:622 src/pwck.c:577 src/pwck.c:585
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
 #, c-format
 msgid "%s: cannot update file %s\n"
 msgstr "%s:無法更新檔案 %s\n"
 
-#: src/grpck.c:647 src/pwck.c:612
+#: src/grpck.c:640 src/pwck.c:606
 #, c-format
-msgid "%s: the files have been updated; run mkpasswd\n"
-msgstr "%s:檔案未被更新﹔請執行 mkpasswd\n"
+msgid "%s: the files have been updated\n"
+msgstr "%s:檔案已被更新\n"
 
-#: src/grpck.c:648 src/grpck.c:652 src/pwck.c:613 src/pwck.c:617
+#: src/grpck.c:641 src/pwck.c:607
 #, c-format
 msgid "%s: no changes\n"
 msgstr "%s:無改變\n"
 
-#: src/grpck.c:651 src/pwck.c:616
-#, c-format
-msgid "%s: the files have been updated\n"
-msgstr "%s:檔案已被更新\n"
-
 #: src/grpconv.c:60 src/grpunconv.c:56
 #, c-format
 msgid "%s: can't lock group file\n"
@@ -1041,37 +983,37 @@ msgstr "%s:無法打開群組檔案\n"
 msgid "%s: can't lock shadow group file\n"
 msgstr "%s:無法鎖定shadow群組檔案\n"
 
-#: src/grpconv.c:76 src/grpunconv.c:72
+#: src/grpconv.c:75 src/grpunconv.c:71
 #, c-format
 msgid "%s: can't open shadow group file\n"
 msgstr "%s:無法打開shadow群組檔案\n"
 
-#: src/grpconv.c:94
+#: src/grpconv.c:92
 #, c-format
 msgid "%s: can't remove shadow group %s\n"
 msgstr "%s:無法移除shadow群組 %s\n"
 
-#: src/grpconv.c:133 src/pwconv.c:154
+#: src/grpconv.c:130 src/pwconv.c:153
 #, c-format
 msgid "%s: can't update shadow entry for %s\n"
 msgstr "%s:無法為 %s 更新shadow項目\n"
 
-#: src/grpconv.c:143 src/grpunconv.c:91
+#: src/grpconv.c:140 src/grpunconv.c:88
 #, c-format
 msgid "%s: can't update entry for group %s\n"
 msgstr "%s:無法更新 %s 群組的項目\n"
 
-#: src/grpconv.c:150 src/grpunconv.c:99
+#: src/grpconv.c:147 src/grpunconv.c:96
 #, c-format
 msgid "%s: can't update shadow group file\n"
 msgstr "%s:無法更新shadow群組檔案\n"
 
-#: src/grpconv.c:155 src/grpunconv.c:105
+#: src/grpconv.c:152 src/grpunconv.c:102
 #, c-format
 msgid "%s: can't update group file\n"
 msgstr "%s 無法更新群組檔案\n"
 
-#: src/grpunconv.c:110
+#: src/grpunconv.c:107
 #, c-format
 msgid "%s: can't delete shadow group file\n"
 msgstr "%s:無法刪除shadow群組檔案\n"
@@ -1091,13 +1033,13 @@ msgstr "用法:id\n"
 msgid " groups="
 msgstr " 群組="
 
-#: src/lastlog.c:68
+#: src/lastlog.c:64
 #, fuzzy, c-format
 msgid ""
 "Usage: lastlog [options]\n"
 "\n"
 "Options:\n"
-"  -u, --login LOGIN\tprint lastlog record for user with specyfied LOGIN\n"
+"  -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
 "  -h, --help\t\tdisplay this help message and exit\n"
 "  -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
 msgstr ""
@@ -1108,41 +1050,41 @@ msgstr ""
 "  -h, --help\t\t顯示該幫助訊息並離開\n"
 "  -m,  --md5\t\t對提供的密碼使用 MD5 取代 DES 加密\t\t\t密碼沒有加密\n"
 
-#: src/lastlog.c:94
+#: src/lastlog.c:90
 #, c-format
 msgid "Username         Port     From             Latest\n"
 msgstr "使用者名         埠號     來自             最後登入時間\n"
 
-#: src/lastlog.c:96
+#: src/lastlog.c:92
 #, c-format
 msgid "Username                Port     Latest\n"
 msgstr "使用者名                  埠號     最後登入時間\n"
 
-#: src/lastlog.c:111
+#: src/lastlog.c:107
 msgid "**Never logged in**"
 msgstr "**從未登入過**"
 
-#: src/login.c:175
+#: src/login.c:156
 #, fuzzy, c-format
 msgid "Usage: %s [-p] [name]\n"
 msgstr "用法:%s [-p] [名稱]\n"
 
-#: src/login.c:178
+#: src/login.c:159
 #, c-format
 msgid "       %s [-p] [-h host] [-f name]\n"
 msgstr "       %s [-p] [-h 主機] [-f 名稱]\n"
 
-#: src/login.c:180
+#: src/login.c:161
 #, c-format
 msgid "       %s [-p] -r host\n"
 msgstr "       %s [-p] -r 主機\n"
 
-#: src/login.c:259
+#: src/login.c:198
 #, c-format
 msgid "Invalid login time\n"
 msgstr "無效的登入時間\n"
 
-#: src/login.c:314
+#: src/login.c:234
 #, c-format
 msgid ""
 "\n"
@@ -1151,7 +1093,7 @@ msgstr ""
 "\n"
 "系統關閉,例行維護\n"
 
-#: src/login.c:325
+#: src/login.c:244
 #, c-format
 msgid ""
 "\n"
@@ -1160,7 +1102,7 @@ msgstr ""
 "\n"
 "[忽略斷線要求 -- 允許 root 登入。]\n"
 
-#: src/login.c:362
+#: src/login.c:297
 #, c-format
 msgid ""
 "\n"
@@ -1169,17 +1111,17 @@ msgstr ""
 "\n"
 "登入逾時 %d 秒\n"
 
-#: src/login.c:648
+#: src/login.c:565
 #, c-format
 msgid " on `%.100s' from `%.200s'"
 msgstr " 在“%.100s”上,來自“%.200s”"
 
-#: src/login.c:652
+#: src/login.c:568
 #, c-format
 msgid " on `%.100s'"
 msgstr "在“%.100s”上"
 
-#: src/login.c:816
+#: src/login.c:722
 #, c-format
 msgid ""
 "\n"
@@ -1188,38 +1130,29 @@ msgstr ""
 "\n"
 " %s 使用者名稱:"
 
-#: src/login.c:819
-msgid "login: "
-msgstr "使用者名稱:"
-
-#: src/login.c:1018 src/sulogin.c:205
+#: src/login.c:879 src/sulogin.c:203
 msgid "Login incorrect"
 msgstr "登入錯誤"
 
-#: src/login.c:1198
+#: src/login.c:996
 msgid "Warning: login re-enabled after temporary lockout.\n"
 msgstr "警告:在短暫的鎖定後將恢復登入。\n"
 
-#: src/login.c:1212
+#: src/login.c:1010
 #, c-format
 msgid "Last login: %s on %s"
 msgstr "上次登入:%s 在 %s 上"
 
-#: src/login.c:1215
+#: src/login.c:1013
 #, c-format
 msgid "Last login: %.19s on %s"
 msgstr "上次登入:%.19s 在 %s 上"
 
-#: src/login.c:1221
+#: src/login.c:1018
 #, c-format
 msgid " from %.*s"
 msgstr " 來自 %.*s"
 
-#: src/login.c:1298
-#, c-format
-msgid "Starting rad_login\n"
-msgstr "開始 rad_login\n"
-
 #: src/mkpasswd.c:47
 #, c-format
 msgid "%s: no DBM database on system - no action performed\n"
@@ -1260,17 +1193,17 @@ msgstr "%s:增加記錄時出錯 "
 msgid "added %d entries, longest was %d\n"
 msgstr "增加 %d 個項目,最長是 %d\n"
 
-#: src/mkpasswd.c:390
+#: src/mkpasswd.c:389
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
 msgstr "用法:%s [-vf] [-p|g|sp|sg] 檔案\n"
 
-#: src/mkpasswd.c:393
+#: src/mkpasswd.c:391
 #, c-format
 msgid "Usage: %s [-vf] [-p|g|sp] file\n"
 msgstr "用法:%s [-vf] [-p|g|sp] 檔案\n"
 
-#: src/mkpasswd.c:396
+#: src/mkpasswd.c:394
 #, c-format
 msgid "Usage: %s [-vf] [-p|g] file\n"
 msgstr "用法:%s [-vf] [-p|g] 檔案\n"
@@ -1290,16 +1223,16 @@ msgstr "用法:sg 群組 [[-c] 命令]\n"
 msgid "unknown uid: %u\n"
 msgstr "未知的 uid:%u\n"
 
-#: src/newgrp.c:214
+#: src/newgrp.c:213
 #, c-format
 msgid "unknown gid: %lu\n"
 msgstr "未知的 gid:%lu\n"
 
-#: src/newgrp.c:360 src/newgrp.c:369
+#: src/newgrp.c:358 src/newgrp.c:367
 msgid "Sorry.\n"
 msgstr "抱歉。\n"
 
-#: src/newgrp.c:469
+#: src/newgrp.c:467
 #, c-format
 msgid "too many groups\n"
 msgstr "使用者群組過多\n"
@@ -1309,91 +1242,91 @@ msgstr "使用者群組過多\n"
 msgid "Usage: %s [input]\n"
 msgstr "用法:%s [輸入]\n"
 
-#: src/newusers.c:388
+#: src/newusers.c:382
 #, c-format
 msgid "%s: can't lock /etc/passwd.\n"
 msgstr "%s:無法鎖定 /etc/passwd。\n"
 
-#: src/newusers.c:400
+#: src/newusers.c:394
 #, c-format
 msgid "%s: can't lock files, try again later\n"
 msgstr "%s:無法鎖定檔案,請稍後再試。\n"
 
-#: src/newusers.c:416
+#: src/newusers.c:409
 #, c-format
 msgid "%s: can't open files\n"
 msgstr "%s:無法打開檔案\n"
 
-#: src/newusers.c:461
+#: src/newusers.c:454
 #, c-format
 msgid "%s: line %d: invalid line\n"
 msgstr "%s:第 %d 行:無效行\n"
 
-#: src/newusers.c:480
+#: src/newusers.c:473
 #, c-format
 msgid "%s: line %d: can't create GID\n"
 msgstr "%s:第 %d 行:無法建立 GID\n"
 
-#: src/newusers.c:496
+#: src/newusers.c:489
 #, c-format
 msgid "%s: line %d: can't create UID\n"
 msgstr "%s:第 %d 行:無法建立 UID\n"
 
-#: src/newusers.c:509
+#: src/newusers.c:502
 #, c-format
 msgid "%s: line %d: cannot find user %s\n"
 msgstr "%s:第 %d 行:無法找到使用者 %s\n"
 
-#: src/newusers.c:518
+#: src/newusers.c:511
 #, c-format
 msgid "%s: line %d: can't update password\n"
 msgstr "%s:第 %d 行:無法更新密碼\n"
 
-#: src/newusers.c:536
+#: src/newusers.c:529
 #, c-format
 msgid "%s: line %d: mkdir failed\n"
 msgstr "%s:第 %d 行:建立目錄失敗\n"
 
-#: src/newusers.c:542
+#: src/newusers.c:534
 #, c-format
 msgid "%s: line %d: chown failed\n"
 msgstr "%s:第 %d 行:改變擁有者或群組失敗\n"
 
-#: src/newusers.c:552
+#: src/newusers.c:544
 #, c-format
 msgid "%s: line %d: can't update entry\n"
 msgstr "%s:第 %d 行:無法更新項目\n"
 
-#: src/newusers.c:584
+#: src/newusers.c:576
 #, c-format
 msgid "%s: error updating files\n"
 msgstr "%s:更新檔案出錯\n"
 
-#: src/passwd.c:155
+#: src/passwd.c:154
 #, fuzzy, c-format
 msgid "Usage: %s [-f|-s] [name]\n"
 msgstr "用法:%s [-f|-s] [名稱]\n"
 
-#: src/passwd.c:159
+#: src/passwd.c:158
 #, c-format
 msgid "       %s [-x max] [-n min] [-w warn] [-i inact] name\n"
 msgstr "       %s [-x 最大] [-n 最小] [-w 警告] [-i 失效] 名稱\n"
 
-#: src/passwd.c:161
+#: src/passwd.c:160
 #, c-format
 msgid "       %s {-l|-u|-d|-S|-e} name\n"
 msgstr "       %s {-l|-u|-d|-S|-e} 名稱\n"
 
-#: src/passwd.c:216
+#: src/passwd.c:214
 msgid "Old password: "
 msgstr "舊密碼:"
 
-#: src/passwd.c:225
+#: src/passwd.c:223
 #, c-format
 msgid "Incorrect password for `%s'\n"
 msgstr "“%s”的密碼不正確\n"
 
-#: src/passwd.c:249
+#: src/passwd.c:247
 #, c-format
 msgid ""
 "Enter the new password (minimum of %d, maximum of %d characters)\n"
@@ -1402,16 +1335,16 @@ msgstr ""
 "請輸入新密碼(最少 %d 最多 %d 個字元)\n"
 "請混合使用大小寫字母和數字。\n"
 
-#: src/passwd.c:255
+#: src/passwd.c:253
 msgid "New password: "
 msgstr "新密碼:"
 
-#: src/passwd.c:266
+#: src/passwd.c:263
 #, c-format
 msgid "Try again.\n"
 msgstr "重試。\n"
 
-#: src/passwd.c:277
+#: src/passwd.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1420,52 +1353,52 @@ msgstr ""
 "\n"
 "警告:脆弱的密碼(重新輸入以強制使用它)。\n"
 
-#: src/passwd.c:287
+#: src/passwd.c:283
 #, c-format
 msgid "They don't match; try again.\n"
 msgstr "他們並不匹配﹔請重試。\n"
 
-#: src/passwd.c:364 src/passwd.c:382
+#: src/passwd.c:360 src/passwd.c:377
 #, c-format
 msgid "The password for %s cannot be changed.\n"
 msgstr "無法更改 %s 的密碼。\n"
 
-#: src/passwd.c:396
+#: src/passwd.c:390
 #, c-format
 msgid "Sorry, the password for %s cannot be changed yet.\n"
 msgstr "抱歉,無法更改 %s 的密碼。\n"
 
-#: src/passwd.c:479
+#: src/passwd.c:472
 #, c-format
 msgid "%s: out of memory\n"
 msgstr "%s:記憶體不足\n"
 
-#: src/passwd.c:730
+#: src/passwd.c:701
 #, c-format
 msgid "%s: Cannot execute %s"
 msgstr "%s:無法執行 %s"
 
-#: src/passwd.c:815
+#: src/passwd.c:786
 #, c-format
 msgid "%s: repository %s not supported\n"
 msgstr "%s:不支持 %s 套件存庫。\n"
 
-#: src/passwd.c:914
+#: src/passwd.c:884
 #, fuzzy, c-format
-msgid "You may not change the password for %s.\n"
+msgid "%s: You may not view or modify password information for %s.\n"
 msgstr "您不能為 %s 更改 shell。\n"
 
-#: src/passwd.c:962
+#: src/passwd.c:934
 #, c-format
 msgid "Changing password for %s\n"
 msgstr "正在為 %s 修改密碼\n"
 
-#: src/passwd.c:966
+#: src/passwd.c:938
 #, c-format
 msgid "The password for %s is unchanged.\n"
 msgstr "%s 的密碼未被改變。\n"
 
-#: src/passwd.c:1016
+#: src/passwd.c:987
 #, c-format
 msgid "Password changed.\n"
 msgstr "密碼已更改。\n"
@@ -1480,49 +1413,49 @@ msgstr "用法:%s [-q] [-r] [-s] [passwd [shadow]]\n"
 msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
 msgstr "用法:%s [-q] [-r] [-s] [passwd]\n"
 
-#: src/pwck.c:295
+#: src/pwck.c:292
 #, c-format
 msgid "invalid password file entry\n"
 msgstr "無效的密碼檔案項目\n"
 
-#: src/pwck.c:357
+#: src/pwck.c:354
 msgid "duplicate password entry\n"
 msgstr "重復的密碼項目\n"
 
-#: src/pwck.c:373
+#: src/pwck.c:370
 #, c-format
 msgid "invalid user name '%s'\n"
 msgstr "無效的使用者名稱“%s”\n"
 
-#: src/pwck.c:388
+#: src/pwck.c:384
 #, c-format
 msgid "user %s: no group %u\n"
 msgstr "使用者 %s:無 %u 群組\n"
 
-#: src/pwck.c:404
+#: src/pwck.c:400
 #, c-format
 msgid "user %s: directory %s does not exist\n"
 msgstr "使用者 %s:目錄 %s 不存在\n"
 
-#: src/pwck.c:420
+#: src/pwck.c:416
 #, c-format
 msgid "user %s: program %s does not exist\n"
 msgstr "使用者 %s:程式 %s 不存在\n"
 
-#: src/pwck.c:456
+#: src/pwck.c:452
 #, c-format
 msgid "invalid shadow password file entry\n"
 msgstr "無效的shadow密碼檔案項目\n"
 
-#: src/pwck.c:518
+#: src/pwck.c:514
 msgid "duplicate shadow password entry\n"
 msgstr "重復的shadow密碼項目\n"
 
-#: src/pwck.c:542
+#: src/pwck.c:538
 msgid "no matching password file entry\n"
 msgstr "無匹配的密碼檔案項目\n"
 
-#: src/pwck.c:560
+#: src/pwck.c:556
 #, c-format
 msgid "user %s: last password change in the future\n"
 msgstr "使用者 %s:最近一次密碼更動\n"
@@ -1542,17 +1475,17 @@ msgstr "%s:無法打開密碼檔案\n"
 msgid "%s: can't remove shadow entry for %s\n"
 msgstr "%s:無法為 %s 刪除shadow項目\n"
 
-#: src/pwconv.c:164
+#: src/pwconv.c:163
 #, c-format
 msgid "%s: can't update passwd entry for %s\n"
 msgstr "%s:無法為 %s 更新密碼項目\n"
 
-#: src/pwconv.c:171
+#: src/pwconv.c:170
 #, c-format
 msgid "%s: can't update shadow file\n"
 msgstr "%s:無法更新shadow檔案\n"
 
-#: src/pwconv.c:176
+#: src/pwconv.c:174
 #, c-format
 msgid "%s: can't update passwd file\n"
 msgstr "%s:無法更新密碼檔案\n"
@@ -1562,40 +1495,40 @@ msgstr "%s:無法更新密碼檔案\n"
 msgid "%s: can't update entry for user %s\n"
 msgstr "%s:不能更新使用者 %s 的項目\n"
 
-#: src/pwunconv.c:145
+#: src/pwunconv.c:143
 #, c-format
 msgid "%s: can't delete shadow password file\n"
 msgstr "%s:無法刪除shadow密碼檔案\n"
 
-#: src/su.c:133
+#: src/su.c:132
 msgid "Sorry."
 msgstr "抱歉"
 
-#: src/su.c:323
+#: src/su.c:320
 #, c-format
 msgid "%s: must be run from a terminal\n"
 msgstr "%s:必須從終端中執行\n"
 
-#: src/su.c:423
+#: src/su.c:419
 #, c-format
 msgid "%s: pam_start: error %d\n"
 msgstr "%s:pam_start:錯誤 %d\n"
 
-#: src/su.c:453
+#: src/su.c:447
 #, c-format
 msgid "Unknown id: %s\n"
 msgstr "未知 id:%s\n"
 
-#: src/su.c:490 src/su.c:507
+#: src/su.c:484 src/su.c:500
 #, c-format
 msgid "You are not authorized to su %s\n"
 msgstr "您沒有被授權 su %s\n"
 
-#: src/su.c:502
+#: src/su.c:495
 msgid "(Enter your own password.)"
 msgstr "(請輸入您自己的密碼)"
 
-#: src/su.c:536
+#: src/su.c:527
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -1604,22 +1537,22 @@ msgstr ""
 "%s:%s\n"
 "(忽略)\n"
 
-#: src/su.c:754
+#: src/su.c:741
 #, c-format
 msgid "No shell\n"
 msgstr "沒有 shell\n"
 
-#: src/suauth.c:105
+#: src/suauth.c:104
 #, c-format
 msgid "Access to su to that account DENIED.\n"
 msgstr "su 到該帳戶被拒。\n"
 
-#: src/suauth.c:113
+#: src/suauth.c:112
 #, c-format
 msgid "Password authentication bypassed.\n"
 msgstr "忽略密碼認証\n"
 
-#: src/suauth.c:122
+#: src/suauth.c:121
 #, c-format
 msgid "Please enter your OWN password as authentication.\n"
 msgstr "請輸入您自己的密碼作為驗証。\n"
@@ -1634,7 +1567,7 @@ msgstr "沒有密碼檔案\n"
 msgid "No password entry for 'root'\n"
 msgstr "沒有“root”的密碼項目\n"
 
-#: src/sulogin.c:176
+#: src/sulogin.c:175
 msgid ""
 "\n"
 "Type control-d to proceed with normal startup,\n"
@@ -1644,438 +1577,383 @@ msgstr ""
 "按下 control-d 即可繼續使用普通帳戶環境,\n"
 "(或者輸入 root 密碼以進行系統維護):"
 
-#: src/sulogin.c:212
+#: src/sulogin.c:210
 msgid "Entering System Maintenance Mode\n"
 msgstr "正在進入系統維護模式\n"
 
-#: src/useradd.c:239
-#, c-format
-msgid "%s: rebuild the group database\n"
-msgstr "%s:重建群組別資料庫\n"
-
-#: src/useradd.c:248
-#, c-format
-msgid "%s: rebuild the shadow group database\n"
-msgstr "%s:重建shadow群組資料庫\n"
-
-#: src/useradd.c:283 src/useradd.c:297 src/usermod.c:741 src/usermod.c:755
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
 #, c-format
 msgid "%s: invalid numeric argument `%s'\n"
 msgstr "%s:無效的數字參數“%s”\n"
 
-#: src/useradd.c:354
+#: src/useradd.c:298
 #, c-format
 msgid "%s: unknown gid %s\n"
 msgstr "%s:未知的 gid %s\n"
 
-#: src/useradd.c:362 src/useradd.c:659 src/useradd.c:1153 src/usermod.c:244
-#: src/usermod.c:876
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
 #, c-format
 msgid "%s: unknown group %s\n"
 msgstr "%s:未知的群組 %s\n"
 
-#: src/useradd.c:475
+#: src/useradd.c:418
 #, c-format
 msgid "%s: cannot create new defaults file\n"
 msgstr "%s:無法建立新的預設檔案\n"
 
-#: src/useradd.c:480
+#: src/useradd.c:423
 #, c-format
 msgid "%s: cannot open new defaults file\n"
 msgstr "%s:無法打開新的預設檔案\n"
 
-#: src/useradd.c:574 src/useradd.c:586
+#: src/useradd.c:515 src/useradd.c:526
 #, c-format
 msgid "%s: rename: %s"
 msgstr "%s:更名:%s"
 
-#: src/useradd.c:680 src/usermod.c:265
+#: src/useradd.c:619 src/usermod.c:248
 #, c-format
 msgid "%s: group `%s' is a NIS group.\n"
 msgstr "%s:“%s”群組是一個 NIS 群組。\n"
 
-#: src/useradd.c:689 src/usermod.c:274
+#: src/useradd.c:628 src/usermod.c:257
 #, c-format
 msgid "%s: too many groups specified (max %d).\n"
 msgstr "%s:指定了過多群組(最多 %d)。\n"
 
-#: src/useradd.c:721
+#: src/useradd.c:660
 #, fuzzy, c-format
 msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "用法:%s\t[-u uid [-o]] [-g 群組] [-G 群組,...] \n"
 
-#: src/useradd.c:724
+#: src/useradd.c:663
 #, fuzzy, c-format
 msgid "               [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
 msgstr "\t\t[-d 主目錄] [-s shell] [-c 注釋] [-m [-k 模板]]\n"
 
-#: src/useradd.c:726 src/useradd.c:732
+#: src/useradd.c:665 src/useradd.c:671
 #, fuzzy, c-format
 msgid "               [-f inactive] [-e expire]\n"
 msgstr "\t\t[-f 無效日] [-e 過期日 ]\n"
 
-#: src/useradd.c:728
+#: src/useradd.c:667
 #, fuzzy, c-format
 msgid "               [-p passwd] name\n"
 msgstr "[-p 密碼] 名稱\n"
 
-#: src/useradd.c:730
+#: src/useradd.c:669
 #, fuzzy, c-format
 msgid "       useradd -D [-g group] [-b base] [-s shell]\n"
 msgstr "       %s\t-D [-g 群組] [-b 主目錄] [-s shell]\n"
 
-#: src/useradd.c:817 src/usermod.c:461
+#: src/useradd.c:756 src/usermod.c:444
 #, c-format
 msgid "%s: error locking group file\n"
 msgstr "%s:鎖定群組檔案時出錯\n"
 
-#: src/useradd.c:822 src/usermod.c:467
+#: src/useradd.c:760 src/usermod.c:449
 #, c-format
 msgid "%s: error opening group file\n"
 msgstr "%s:打開群組檔案時出錯\n"
 
-#: src/useradd.c:829 src/usermod.c:578
+#: src/useradd.c:766 src/usermod.c:542
 #, c-format
 msgid "%s: error locking shadow group file\n"
 msgstr "%s:鎖定shadow群組檔案時出錯\n"
 
-#: src/useradd.c:834 src/usermod.c:584
+#: src/useradd.c:771 src/usermod.c:548
 #, c-format
 msgid "%s: error opening shadow group file\n"
 msgstr "%s:打開shadow群組檔案時出錯\n"
 
-#: src/useradd.c:1006
+#: src/useradd.c:909
 #, c-format
 msgid "%s: uid %u is not unique\n"
 msgstr "%s:uid %u 不唯一\n"
 
-#: src/useradd.c:1036
+#: src/useradd.c:939
 #, c-format
 msgid "%s: can't get unique uid\n"
 msgstr "%s:無法獲得唯一的 uid\n"
 
-#: src/useradd.c:1073
+#: src/useradd.c:975
 #, c-format
 msgid "%s: invalid base directory `%s'\n"
 msgstr "%s:無效的主目錄“%s”\n"
 
-#: src/useradd.c:1083
+#: src/useradd.c:985
 #, c-format
 msgid "%s: invalid comment `%s'\n"
 msgstr "%s:無效注釋“%s”\n"
 
-#: src/useradd.c:1094
+#: src/useradd.c:996
 #, c-format
 msgid "%s: invalid home directory `%s'\n"
 msgstr "%s:無效的主目錄“%s”\n"
 
-#: src/useradd.c:1113 src/usermod.c:858
+#: src/useradd.c:1015 src/usermod.c:796
 #, c-format
 msgid "%s: invalid date `%s'\n"
 msgstr "%s:無效日期“%s”\n"
 
-#: src/useradd.c:1126
+#: src/useradd.c:1028
 #, c-format
 msgid "%s: shadow passwords required for -e\n"
 msgstr "%s:-e 參數需要有shadow密碼\n"
 
-#: src/useradd.c:1142
+#: src/useradd.c:1044
 #, c-format
 msgid "%s: shadow passwords required for -f\n"
 msgstr "%s:-f 參數需要有shadow密碼\n"
 
-#: src/useradd.c:1209 src/usermod.c:834 src/usermod.c:844 src/usermod.c:891
-#: src/usermod.c:935
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
 #, c-format
 msgid "%s: invalid field `%s'\n"
 msgstr "%s:無效字段 “%s”\n"
 
-#: src/useradd.c:1220
+#: src/useradd.c:1122
 #, c-format
 msgid "%s: invalid shell `%s'\n"
 msgstr "%s:無效 shell“%s”\n"
 
-#: src/useradd.c:1261
+#: src/useradd.c:1163
 #, c-format
 msgid "%s: invalid user name '%s'\n"
 msgstr "%s:無效使用者名稱“%s”\n"
 
-#: src/useradd.c:1297 src/userdel.c:293 src/usermod.c:1003
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
 #, c-format
 msgid "%s: cannot rewrite password file\n"
 msgstr "%s:無法重寫密碼檔案\n"
 
-#: src/useradd.c:1304 src/userdel.c:298 src/usermod.c:1010
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
 #, c-format
 msgid "%s: cannot rewrite shadow password file\n"
 msgstr "%s:無法重寫shadow密碼檔案\n"
 
-#: src/useradd.c:1345 src/userdel.c:350 src/usermod.c:1044
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
 #, c-format
 msgid "%s: unable to lock password file\n"
 msgstr "%s:無法鎖定密碼檔案\n"
 
-#: src/useradd.c:1350 src/userdel.c:355 src/usermod.c:1049
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
 #, c-format
 msgid "%s: unable to open password file\n"
 msgstr "%s:無法打開密碼檔案\n"
 
-#: src/useradd.c:1358 src/userdel.c:362 src/usermod.c:1056
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
 #, c-format
 msgid "%s: cannot lock shadow password file\n"
 msgstr "%s:無法鎖定shadow密碼檔案\n"
 
-#: src/useradd.c:1365 src/userdel.c:368 src/usermod.c:1062
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
 #, c-format
 msgid "%s: cannot open shadow password file\n"
 msgstr "%s:無法打開shadow密碼檔案\n"
 
-#: src/useradd.c:1459
+#: src/useradd.c:1354
 #, c-format
 msgid "%s: error adding new password entry\n"
 msgstr "%s:加入新密碼項目時出錯\n"
 
-#: src/useradd.c:1473
-#, c-format
-msgid "%s: error updating password dbm entry\n"
-msgstr "%s:更新密碼 dbm 項目時出錯\n"
-
-#: src/useradd.c:1489 src/usermod.c:1151
+#: src/useradd.c:1365 src/usermod.c:1063
 #, c-format
 msgid "%s: error adding new shadow password entry\n"
 msgstr "%s:加入新shadow密碼項時出錯\n"
 
-#: src/useradd.c:1505 src/usermod.c:1168
-#, c-format
-msgid "%s: error updating shadow passwd dbm entry\n"
-msgstr "%s:更新shadow密碼 dbm 項目時出錯\n"
-
-#: src/useradd.c:1537
+#: src/useradd.c:1393
 #, c-format
 msgid "%s: cannot create directory %s\n"
 msgstr "%s:無法建立目錄 %s\n"
 
-#: src/useradd.c:1567
+#: src/useradd.c:1423
 #, c-format
 msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
 msgstr ""
 
-#: src/useradd.c:1590
+#: src/useradd.c:1446
 #, fuzzy, c-format
 msgid "Can't create mail spool for user %s.\n"
 msgstr "%s:不能更新使用者 %s 的項目\n"
 
-#: src/useradd.c:1714 src/usermod.c:981
+#: src/useradd.c:1550 src/usermod.c:919
 #, c-format
 msgid "%s: user %s exists\n"
 msgstr "%s:使用者 %s 已存在\n"
 
-#: src/useradd.c:1729
+#: src/useradd.c:1564
 #, c-format
 msgid ""
 "%s: group %s exists - if you want to add this user to that group, use -g.\n"
 msgstr ""
 "%s:%s 群組已經存在 - 如果您想將此使用者加入到該群組,請使用 -g 參數。\n"
 
-#: src/useradd.c:1767
+#: src/useradd.c:1602
 #, c-format
 msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
 msgstr "%s:警告:CREATE_HOME 不支援,請使用 -m 參數。\n"
 
-#: src/userdel.c:124
+#: src/userdel.c:108
 #, fuzzy, c-format
 msgid "Usage: %s [-r] name\n"
 msgstr "用法:%s [-r] 名稱\n"
 
-#: src/userdel.c:176 src/userdel.c:262
+#: src/userdel.c:160 src/userdel.c:221
 #, c-format
 msgid "%s: error updating group entry\n"
 msgstr "%s:更新群組項目時出錯\n"
 
-#: src/userdel.c:186 src/userdel.c:271
-#, c-format
-msgid "%s: cannot update dbm group entry\n"
-msgstr "%s:無法更新 dbm 群組項目\n"
-
-#: src/userdel.c:214
-#, c-format
-msgid "%s: cannot remove dbm group entry\n"
-msgstr "%s:無法移除 dbm 群組項目\n"
-
-#: src/userdel.c:379
+#: src/userdel.c:315
 #, c-format
 msgid "%s: cannot open group file\n"
 msgstr "%s:無法打開群組檔案\n"
 
-#: src/userdel.c:390
+#: src/userdel.c:325
 #, c-format
 msgid "%s: cannot open shadow group file\n"
 msgstr "%s:無法打開shadow群組檔案\n"
 
-#: src/userdel.c:408
+#: src/userdel.c:343
 #, c-format
 msgid "%s: error deleting password entry\n"
 msgstr "%s:刪除密碼項目時出錯\n"
 
-#: src/userdel.c:412
+#: src/userdel.c:347
 #, c-format
 msgid "%s: error deleting shadow password entry\n"
 msgstr "%s:刪除shadow密碼項目時出錯\n"
 
-#: src/userdel.c:421
-#, c-format
-msgid "%s: error deleting password dbm entry\n"
-msgstr "%s:刪除密碼 dbm 項目時出錯\n"
-
-#: src/userdel.c:440
-#, c-format
-msgid "%s: error deleting shadow passwd dbm entry\n"
-msgstr "%s:刪除shadow密碼 dbm 項目時出錯\n"
-
-#: src/userdel.c:484
+#: src/userdel.c:388
 #, c-format
 msgid "%s: user %s is currently logged in\n"
 msgstr "%s:使用者 %s 目前已登入\n"
 
-#: src/userdel.c:594 src/userdel.c:759
+#: src/userdel.c:496 src/userdel.c:641
 #, c-format
 msgid "%s: %s not owned by %s, not removing\n"
 msgstr "%s:%s 並不屬於 %s,所以不會刪除\n"
 
-#: src/userdel.c:600
+#: src/userdel.c:502
 #, c-format
 msgid "%s: warning: can't remove "
 msgstr "%s:警告:無法刪除"
 
-#: src/userdel.c:706 src/usermod.c:783
+#: src/userdel.c:592 src/usermod.c:722
 #, c-format
 msgid "%s: user %s does not exist\n"
 msgstr "%s:使用者 %s 不存在\n"
 
-#: src/userdel.c:721 src/usermod.c:799
+#: src/userdel.c:607 src/usermod.c:738
 #, c-format
 msgid "%s: user %s is a NIS user\n"
 msgstr "%s:使用者 %s 是 NIS 使用者\n"
 
-#: src/userdel.c:782
+#: src/userdel.c:664
 #, c-format
 msgid "%s: not removing directory %s (would remove home of user %s)\n"
 msgstr "%s:不能刪除目錄 %s (因為這將刪除使用者 %s 的主目錄)\n"
 
-#: src/userdel.c:796
+#: src/userdel.c:678
 #, c-format
 msgid "%s: error removing directory %s\n"
 msgstr "%s:刪除目錄 %s 時出錯\n"
 
-#: src/usermod.c:306
+#: src/usermod.c:289
 #, fuzzy, c-format
 msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
 msgstr "用法:%s\t[-u uid [-o]] [-g 群組] [-G 群組,...] \n"
 
-#: src/usermod.c:310
+#: src/usermod.c:293
 #, c-format
 msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
 msgstr "\t\t[-d 家目錄 [-m]] [-s shell] [-c 注釋] [-l 新名稱]\n"
 
-#: src/usermod.c:313
+#: src/usermod.c:296
 #, fuzzy, c-format
 msgid "[-f inactive] [-e expire] "
 msgstr "[-f 無效日] [-e 過期日 ] "
 
-#: src/usermod.c:315
+#: src/usermod.c:298
 #, c-format
 msgid "[-p passwd] [-L|-U] name\n"
 msgstr "[-p 密碼] [-L|-U] 名稱\n"
 
-#: src/usermod.c:495
+#: src/usermod.c:476
 #, c-format
 msgid "%s: out of memory in update_group\n"
 msgstr "%s:update_group 時記憶體不足\n"
 
-#: src/usermod.c:622
+#: src/usermod.c:585
 #, c-format
 msgid "%s: out of memory in update_gshadow\n"
 msgstr "%s:update_gshadow 時記憶體不足\n"
 
-#: src/usermod.c:958
+#: src/usermod.c:896
 #, c-format
 msgid "%s: no flags given\n"
 msgstr "%s:沒有指定標誌\n"
 
-#: src/usermod.c:965
+#: src/usermod.c:903
 #, c-format
 msgid "%s: shadow passwords required for -e and -f\n"
 msgstr "%s:-e 和 -f 參數需要shadow密碼\n"
 
-#: src/usermod.c:987
+#: src/usermod.c:924
 #, c-format
 msgid "%s: uid %lu is not unique\n"
 msgstr "%s:uid %lu 不唯一\n"
 
-#: src/usermod.c:1116
+#: src/usermod.c:1047
 #, c-format
 msgid "%s: error changing password entry\n"
 msgstr "%s:改變密碼項目時出錯\n"
 
-#: src/usermod.c:1122
+#: src/usermod.c:1053
 #, c-format
 msgid "%s: error removing password entry\n"
 msgstr "%s:移除密碼項時出錯\n"
 
-#: src/usermod.c:1131
-#, c-format
-msgid "%s: error adding password dbm entry\n"
-msgstr "%s:添加密碼 dbm 項目時出錯\n"
-
-#: src/usermod.c:1139
-#, c-format
-msgid "%s: error removing passwd dbm entry\n"
-msgstr "%s:移除密碼 dbm 項目時出錯\n"
-
-#: src/usermod.c:1158
+#: src/usermod.c:1070
 #, c-format
 msgid "%s: error removing shadow password entry\n"
 msgstr "%s:刪除shadow密碼項目時出錯\n"
 
-#: src/usermod.c:1175
-#, c-format
-msgid "%s: error removing shadow passwd dbm entry\n"
-msgstr "%s:刪除shadow密碼 dbm 項目時出錯\n"
-
-#: src/usermod.c:1204
+#: src/usermod.c:1098
 #, c-format
 msgid "%s: directory %s exists\n"
 msgstr "%s:目錄 %s 不存在\n"
 
-#: src/usermod.c:1213
+#: src/usermod.c:1106
 #, c-format
 msgid "%s: can't create %s\n"
 msgstr "%s:無法建立 %s\n"
 
-#: src/usermod.c:1219
+#: src/usermod.c:1111
 #, c-format
 msgid "%s: can't chown %s\n"
 msgstr "%s:無法改變 %s 的所有者和群組\n"
 
-#: src/usermod.c:1236
+#: src/usermod.c:1128
 #, c-format
 msgid "%s: cannot rename directory %s to %s\n"
 msgstr "%s:無法將目錄 %s 改名為 %s\n"
 
-#: src/usermod.c:1333
+#: src/usermod.c:1223
 #, c-format
 msgid "%s: warning: %s not owned by %s\n"
 msgstr "%s:警告:%s 不屬於 %s\n"
 
-#: src/usermod.c:1339
+#: src/usermod.c:1229
 msgid "failed to change mailbox owner"
 msgstr "改變信箱所有者失敗"
 
-#: src/usermod.c:1347
+#: src/usermod.c:1237
 msgid "failed to rename mailbox"
 msgstr "無法為信箱改名"
 
-#: src/vipw.c:105
+#: src/vipw.c:104
 #, c-format
 msgid ""
 "\n"
@@ -2084,20 +1962,20 @@ msgstr ""
 "\n"
 "%s:%s 沒有更改\n"
 
-#: src/vipw.c:133
+#: src/vipw.c:131
 msgid "Couldn't lock file"
 msgstr "無法鎖定檔案"
 
-#: src/vipw.c:142
+#: src/vipw.c:140
 msgid "Couldn't make backup"
 msgstr "無法備份"
 
-#: src/vipw.c:200
+#: src/vipw.c:196
 #, c-format
 msgid "%s: can't restore %s: %s (your changes are in %s)\n"
 msgstr "%s:無法復原 %s:%s (您的修改在 %s 中)\n"
 
-#: src/vipw.c:238
+#: src/vipw.c:234
 #, c-format
 msgid ""
 "Usage:\n"
index 149066b8af57c0ca8ff98eaf798a22b772470662..fe572bb765e1fab80a3c7bc50eccee4b518c665d 100644 (file)
@@ -2,3 +2,4 @@
 -i8
 -bad
 -pcs
+-l80
index 4eb6a4eaa64ec16cd9b20724f90d68110b7c8e9e..f9d39d7b77e240d797d37842b8a848f60715e7ad 100644 (file)
@@ -40,6 +40,10 @@ usbin_PROGRAMS = \
        usermod \
        vipw
 
+login_SOURCES = \
+       login.c \
+       login_nopam.c
+
 noinst_PROGRAMS = id sulogin
 
 # id and groups are from gnu, sulogin from sysvinit
@@ -66,6 +70,8 @@ useradd_LDADD  = $(LDADD) $(LIBPAM)
 userdel_LDADD  = $(LDADD) $(LIBPAM)
 usermod_LDADD  = $(LDADD) $(LIBPAM)
 
+AM_CPPFLAGS    = -DLOCALEDIR=\"$(datadir)/locale\"
+
 install-am: all-am
        $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
        ln -sf newgrp   $(DESTDIR)$(ubindir)/sg
index 169a34a6d19de96ac23138d3918f427bbe8a3644..09ef76e71d3a64299cb302c427f11dd934b0af5d 100644 (file)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c usermod.c vipw.c
+SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c grpconv.c grpunconv.c id.c lastlog.c $(login_SOURCES) logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c usermod.c vipw.c
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -134,8 +134,8 @@ lastlog_OBJECTS = lastlog.$(OBJEXT)
 lastlog_LDADD = $(LDADD)
 lastlog_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
        $(top_builddir)/lib/libshadow.la
-login_SOURCES = login.c
-login_OBJECTS = login.$(OBJEXT)
+am_login_OBJECTS = login.$(OBJEXT) login_nopam.$(OBJEXT)
+login_OBJECTS = $(am_login_OBJECTS)
 login_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 logoutd_SOURCES = logoutd.c
 logoutd_OBJECTS = logoutd.$(OBJEXT)
@@ -209,16 +209,16 @@ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c \
        gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c \
-       grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c \
-       mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c \
-       pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c \
-       usermod.c vipw.c
+       grpconv.c grpunconv.c id.c lastlog.c $(login_SOURCES) \
+       logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c \
+       pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c \
+       userdel.c usermod.c vipw.c
 DIST_SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c \
        gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c \
-       grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c \
-       mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c \
-       pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c \
-       usermod.c vipw.c
+       grpconv.c grpunconv.c id.c lastlog.c $(login_SOURCES) \
+       logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c \
+       pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c \
+       userdel.c usermod.c vipw.c
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -257,17 +257,16 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 LDFLAGS = @LDFLAGS@
 LIBCRACK = @LIBCRACK@
 LIBCRYPT = @LIBCRYPT@
 LIBICONV = @LIBICONV@
 LIBINTL = @LIBINTL@
-LIBMD = @LIBMD@
 LIBOBJS = @LIBOBJS@
 LIBPAM = @LIBPAM@
 LIBS = @LIBS@
 LIBSELINUX = @LIBSELINUX@
-LIBSKEY = @LIBSKEY@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTLIBICONV = @LTLIBICONV@
@@ -348,6 +347,10 @@ INCLUDES = \
        -I${top_srcdir}/lib \
        -I$(top_srcdir)/libmisc
 
+login_SOURCES = \
+       login.c \
+       login_nopam.c
+
 
 # id and groups are from gnu, sulogin from sysvinit
 suidbins = su
@@ -370,6 +373,7 @@ su_LDADD = $(LDADD) $(LIBPAM)
 useradd_LDADD = $(LDADD) $(LIBPAM)
 userdel_LDADD = $(LDADD) $(LIBPAM)
 usermod_LDADD = $(LDADD) $(LIBPAM)
+AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\"
 all: all-am
 
 .SUFFIXES:
@@ -383,9 +387,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/Makefile'; \
        cd $(top_srcdir) && \
-         $(AUTOMAKE) --gnu  src/Makefile
+         $(AUTOMAKE) --foreign  src/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -611,6 +615,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lastlog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/login.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/login_nopam.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logoutd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkpasswd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newgrp.Po@am__quote@
index 1cf1288b4a0baf28f7c8ac8d75dfbdfa8fedaa4d..f5736c8077be46c13952d7c87943569073533702 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: chage.c,v 1.35 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: chage.c,v 1.43 2005/04/17 00:07:00 kloczek Exp $")
 #include <sys/types.h>
-#include <stdio.h>
+#include <ctype.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include <time.h>
-#include "prototypes.h"
-#include "defines.h"
 #ifdef SHADOWPWD
 #ifdef USE_PAM
 #include <security/pam_appl.h>
 #include <security/pam_misc.h>
 #endif                         /* USE_PAM */
 #include <pwd.h>
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+#include <selinux/av_permissions.h>
+#endif
+#include "prototypes.h"
+#include "defines.h"
+#include "pwio.h"
+#include "shadowio.h"
 /*
  * Global variables
  */
@@ -52,12 +59,12 @@ static char *Prog;
 
 static int
  dflg = 0,                     /* set last password change date */
Eflg = 0,                     /* set account expiration date */
Iflg = 0,                     /* set password inactive after expiration */
lflg = 0,                     /* show account aging information */
mflg = 0,                     /* set minimum number of days before password change */
Mflg = 0,                     /* set maximim number of days before password change */
Wflg = 0;                     /* set expiration warning days */
   Eflg = 0,                  /* set account expiration date */
   Iflg = 0,                  /* set password inactive after expiration */
   lflg = 0,                  /* show account aging information */
   mflg = 0,                  /* set minimum number of days before password change */
   Mflg = 0,                  /* set maximim number of days before password change */
   Wflg = 0;                  /* set expiration warning days */
 
 static int locks;
 
@@ -68,24 +75,11 @@ static long warndays;
 static long inactdays;
 static long expdays;
 
-/*
- * External identifiers
- */
-
-extern long a64l ();
-extern char *l64a ();
-
-#include "pwio.h"
-
-#include "shadowio.h"
-
-#ifdef NDBM
-extern int pw_dbm_mode;
-extern int sp_dbm_mode;
-#endif
-
 #define        EPOCH           "1969-12-31"
 
+#define E_SUCCESS      0       /* success */
+#define E_NOPERM       1       /* permission denied */
+
 /* local function prototypes */
 static void usage (void);
 static void date_to_str (char *, size_t, time_t);
@@ -149,7 +143,7 @@ static int new_fields (void)
        char *cp;
 
        printf (_("Enter the new value, or press ENTER for the default\n"));
-       printf("\n");
+       printf ("\n");
 
        snprintf (buf, sizeof buf, "%ld", mindays);
        change_field (buf, sizeof buf, _("Minimum Password Age"));
@@ -165,8 +159,7 @@ static int new_fields (void)
 
        date_to_str (buf, sizeof buf, lastday * SCALE);
 
-       change_field (buf, sizeof buf,
-                     _("Last Password Change (YYYY-MM-DD)"));
+       change_field (buf, sizeof buf, _("Last Password Change (YYYY-MM-DD)"));
 
        if (strcmp (buf, EPOCH) == 0)
                lastday = -1;
@@ -294,9 +287,12 @@ static void list_fields (void)
         * password expires that the account becomes unusable.
         */
 
-       printf (_("Minimum number of days between password change\t\t: %ld\n"), mindays);
-       printf (_("Maximum number of days between password change\t\t: %ld\n"), maxdays);
-       printf (_("Number of days of warning before password expires\t: %ld\n"), warndays);
+       printf (_("Minimum number of days between password change\t\t: %ld\n"),
+               mindays);
+       printf (_("Maximum number of days between password change\t\t: %ld\n"),
+               maxdays);
+       printf (_("Number of days of warning before password expires\t: %ld\n"),
+               warndays);
 }
 
 #ifdef USE_PAM
@@ -368,29 +364,20 @@ int main (int argc, char **argv)
        textdomain (PACKAGE);
 
        ruid = getuid ();
+#ifdef WITH_SELINUX
+       amroot = (ruid == 0 && checkPasswdAccess (PASSWD__ROOTOK) == 0);
+#else
        amroot = (ruid == 0);
+#endif
 
        /*
         * Get the program name so that error messages can use it.
         */
-
        Prog = Basename (argv[0]);
 
-       OPENLOG ("chage");
-
-#ifdef NDBM
-       sp_dbm_mode = O_RDWR;
-       pw_dbm_mode = O_RDWR;
-#endif
-
        /*
-        * Parse the flags. The difference between password file formats
-        * includes the number of fields, and whether the dates are entered
-        * as days or weeks. Shadow password file info =must= be entered in
-        * days, while regular password file info =must= be entered in
-        * weeks.
+        * Parse the command line options.
         */
-
        while ((flag = getopt (argc, argv, "lm:M:W:I:E:d:")) != EOF) {
                switch (flag) {
                case 'l':
@@ -443,7 +430,6 @@ int main (int argc, char **argv)
                fprintf (stderr,
                         _("%s: do not include \"l\" with other flags\n"),
                         Prog);
-               closelog ();
                usage ();
        }
 
@@ -455,9 +441,11 @@ int main (int argc, char **argv)
 
        if (!amroot && !lflg) {
                fprintf (stderr, _("%s: permission denied.\n"), Prog);
-               closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
+
+       OPENLOG ("chage");
+
 #ifdef USE_PAM
        retval = PAM_SUCCESS;
 
@@ -485,12 +473,9 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
-               exit (1);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
+               exit (E_NOPERM);
        }
-
-       OPENLOG ("chage");
 #endif                         /* USE_PAM */
 
        /*
@@ -506,19 +491,18 @@ int main (int argc, char **argv)
         */
        pwrw = 0;
        if (!pw_open (pwrw ? O_RDWR : O_RDONLY)) {
-               fprintf (stderr, _("%s: can't open password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't open password file\n"), Prog);
                cleanup (1);
                SYSLOG ((LOG_ERR, "failed opening %s", PASSWD_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
        if (!(pw = pw_locate (argv[optind]))) {
                fprintf (stderr, _("%s: unknown user %s\n"), Prog,
                         argv[optind]);
                cleanup (1);
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
 
        pwent = *pw;
@@ -536,7 +520,7 @@ int main (int argc, char **argv)
                cleanup (1);
                SYSLOG ((LOG_ERR, "failed locking %s", SHADOW_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
        if (!spw_open (locks ? O_RDWR : O_RDONLY)) {
                fprintf (stderr,
@@ -544,13 +528,13 @@ int main (int argc, char **argv)
                cleanup (2);
                SYSLOG ((LOG_ERR, "failed opening %s", SHADOW_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
 
        if (lflg && (setgid (getgid ()) || setuid (ruid))) {
                fprintf (stderr, "%s: failed to drop privileges (%s)\n",
                         Prog, strerror (errno));
-               exit (1);
+               exit (E_NOPERM);
        }
 
        sp = spw_locate (argv[optind]);
@@ -584,15 +568,14 @@ int main (int argc, char **argv)
 
        if (lflg) {
                if (!amroot && (ruid != pwent.pw_uid)) {
-                       fprintf (stderr, _("%s: permission denied.\n"),
-                                Prog);
+                       fprintf (stderr, _("%s: permission denied.\n"), Prog);
                        closelog ();
-                       exit (1);
+                       exit (E_NOPERM);
                }
                list_fields ();
                cleanup (2);
                closelog ();
-               exit (0);
+               exit (E_SUCCESS);
        }
 
        /*
@@ -601,14 +584,13 @@ int main (int argc, char **argv)
         */
 
        if (!mflg && !Mflg && !dflg && !Wflg && !Iflg && !Eflg) {
-               printf (_("Changing the aging information for %s\n"),
-                       name);
+               printf (_("Changing the aging information for %s\n"), name);
                if (!new_fields ()) {
                        fprintf (stderr, _("%s: error changing fields\n"),
                                 Prog);
                        cleanup (2);
                        closelog ();
-                       exit (1);
+                       exit (E_NOPERM);
                }
        }
        /*
@@ -628,18 +610,12 @@ int main (int argc, char **argv)
                pwent.pw_passwd = SHADOW_PASSWD_STRING; /* XXX warning: const */
                if (!pw_update (&pwent)) {
                        fprintf (stderr,
-                                _("%s: can't update password file\n"),
-                                Prog);
+                                _("%s: can't update password file\n"), Prog);
                        cleanup (2);
-                       SYSLOG ((LOG_ERR, "failed updating %s",
-                                PASSWD_FILE));
+                       SYSLOG ((LOG_ERR, "failed updating %s", PASSWD_FILE));
                        closelog ();
-                       exit (1);
+                       exit (E_NOPERM);
                }
-#ifdef NDBM
-               (void) pw_dbm_update (&pwent);
-               endpwent ();
-#endif
        }
 
        /*
@@ -657,79 +633,56 @@ int main (int argc, char **argv)
 
        if (!spw_update (&spwd)) {
                fprintf (stderr,
-                        _("%s: can't update shadow password file\n"),
-                        Prog);
+                        _("%s: can't update shadow password file\n"), Prog);
                cleanup (2);
                SYSLOG ((LOG_ERR, "failed updating %s", SHADOW_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
-#ifdef NDBM
-
-       /*
-        * See if the shadow DBM file exists and try to update it.
-        */
-
-       if (sp_dbm_present () && !sp_dbm_update (&spwd)) {
-               fprintf (stderr,
-                        _("Error updating the DBM password entry.\n"));
-               cleanup (2);
-               SYSLOG ((LOG_ERR, "error updating DBM passwd entry"));
-               closelog ();
-               exit (1);
-       }
-       endspent ();
-
-#endif                         /* NDBM */
 
        /*
         * Now close the shadow password file, which will cause all of the
         * entries to be re-written.
         */
-
        if (!spw_close ()) {
                fprintf (stderr,
-                        _("%s: can't rewrite shadow password file\n"),
-                        Prog);
+                        _("%s: can't rewrite shadow password file\n"), Prog);
                cleanup (2);
                SYSLOG ((LOG_ERR, "failed rewriting %s", SHADOW_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
-
 #ifdef USE_PAM
        retval = PAM_SUCCESS;
 
-       pampw = getpwuid(getuid());
+       pampw = getpwuid (getuid ());
        if (pampw == NULL) {
                retval = PAM_USER_UNKNOWN;
        }
 
        if (retval == PAM_SUCCESS) {
-               retval = pam_start("chage", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("chage", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
-               retval = pam_authenticate(pamh, 0);
+               retval = pam_authenticate (pamh, 0);
                if (retval != PAM_SUCCESS) {
-                       pam_end(pamh, retval);
+                       pam_end (pamh, retval);
                }
        }
 
        if (retval == PAM_SUCCESS) {
-               retval = pam_acct_mgmt(pamh, 0);
+               retval = pam_acct_mgmt (pamh, 0);
                if (retval != PAM_SUCCESS) {
-                       pam_end(pamh, retval);
+                       pam_end (pamh, retval);
                }
        }
 
        if (retval != PAM_SUCCESS) {
                fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
-               exit (1);
+               exit (E_NOPERM);
        }
-
-       OPENLOG("chage");
-#endif /* USE_PAM */
+#endif                         /* USE_PAM */
 
        /*
         * Close the password file. If any entries were modified, the file
@@ -737,12 +690,11 @@ int main (int argc, char **argv)
         */
 
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: can't rewrite password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't rewrite password file\n"), Prog);
                cleanup (2);
                SYSLOG ((LOG_ERR, "failed rewriting %s", PASSWD_FILE));
                closelog ();
-               exit (1);
+               exit (E_NOPERM);
        }
        cleanup (2);
        SYSLOG ((LOG_INFO, "changed password expiry for %s", name));
@@ -757,9 +709,8 @@ int main (int argc, char **argv)
                }
 
                if (retval != PAM_SUCCESS) {
-                       fprintf (stderr, _("%s: PAM chauthtok failed\n"),
-                                Prog);
-                       exit (1);
+                       fprintf (stderr, _("%s: PAM chauthtok failed\n"), Prog);
+                       exit (E_NOPERM);
                }
        }
 
@@ -769,9 +720,7 @@ int main (int argc, char **argv)
 #endif                         /* USE_PAM */
 
        closelog ();
-
-
-       exit (0);
+       exit (E_SUCCESS);
        /* NOTREACHED */
 }
 
@@ -779,8 +728,7 @@ int main (int argc, char **argv)
 int main (int argc, char **argv)
 {
        fprintf (stderr,
-                "%s: not configured for shadow password support.\n",
-                argv[0]);
-       exit (1);
+                "%s: not configured for shadow password support.\n", argv[0]);
+       exit (E_NOPERM);
 }
 #endif                         /* !SHADOWPWD */
index bf437d9374ea45a60f90bdd66d581f3adb574a70..43399266a372544ccfc8ac15db760abc75c212cc 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: chfn.c,v 1.23 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: chfn.c,v 1.27 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
@@ -48,6 +48,10 @@ RCSID (PKG_VER "$Id: chfn.c,v 1.23 2005/01/17 23:12:04 kloczek Exp $")
 #ifdef USE_PAM
 #include "pam_defs.h"
 #endif
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+#include <selinux/av_permissions.h>
+#endif
 /*
  * Global variables.
  */
@@ -63,10 +67,6 @@ static int amroot;
  * External identifiers
  */
 
-#ifdef NDBM
-extern int pw_dbm_mode;
-#endif
-
 /* local function prototypes */
 static void usage (void);
 static int may_change_field (int);
@@ -136,8 +136,7 @@ static int may_change_field (int field)
 
 static void new_fields (void)
 {
-       printf (_
-               ("Enter the new value, or press ENTER for the default\n"));
+       printf (_("Enter the new value, or press ENTER for the default\n"));
 
        if (may_change_field ('f'))
                change_field (fullnm, sizeof fullnm, _("Full Name"));
@@ -243,9 +242,6 @@ int main (int argc, char **argv)
         */
 
        amroot = (getuid () == 0);
-#ifdef NDBM
-       pw_dbm_mode = O_RDWR;
-#endif
 
        /*
         * Get the program name. The program name is used as a
@@ -269,8 +265,7 @@ int main (int argc, char **argv)
                case 'f':
                        if (!may_change_field ('f')) {
                                fprintf (stderr,
-                                        _("%s: permission denied.\n"),
-                                        Prog);
+                                        _("%s: permission denied.\n"), Prog);
                                exit (1);
                        }
                        fflg++;
@@ -279,8 +274,7 @@ int main (int argc, char **argv)
                case 'r':
                        if (!may_change_field ('r')) {
                                fprintf (stderr,
-                                        _("%s: permission denied.\n"),
-                                        Prog);
+                                        _("%s: permission denied.\n"), Prog);
                                exit (1);
                        }
                        rflg++;
@@ -289,8 +283,7 @@ int main (int argc, char **argv)
                case 'w':
                        if (!may_change_field ('w')) {
                                fprintf (stderr,
-                                        _("%s: permission denied.\n"),
-                                        Prog);
+                                        _("%s: permission denied.\n"), Prog);
                                exit (1);
                        }
                        wflg++;
@@ -299,8 +292,7 @@ int main (int argc, char **argv)
                case 'h':
                        if (!may_change_field ('h')) {
                                fprintf (stderr,
-                                        _("%s: permission denied.\n"),
-                                        Prog);
+                                        _("%s: permission denied.\n"), Prog);
                                exit (1);
                        }
                        hflg++;
@@ -309,8 +301,7 @@ int main (int argc, char **argv)
                case 'o':
                        if (!amroot) {
                                fprintf (stderr,
-                                        _("%s: permission denied.\n"),
-                                        Prog);
+                                        _("%s: permission denied.\n"), Prog);
                                exit (1);
                        }
                        oflg++;
@@ -360,8 +351,7 @@ int main (int argc, char **argv)
                         Prog, user);
 
                if (!yp_get_default_domain (&nis_domain) &&
-                   !yp_master (nis_domain, "passwd.byname",
-                               &nis_master)) {
+                   !yp_master (nis_domain, "passwd.byname", &nis_master)) {
                        fprintf (stderr,
                                 _
                                 ("%s: `%s' is the NIS master for this client.\n"),
@@ -381,7 +371,21 @@ int main (int argc, char **argv)
                closelog ();
                exit (1);
        }
+#ifdef WITH_SELINUX
+       /*
+        * If the UID of the user does not match the current real UID,
+        * check if the change is allowed by SELinux policy.
+        */
 
+       if ((pw->pw_uid != getuid ())
+           && (checkPasswdAccess (PASSWD__CHFN) != 0)) {
+               fprintf (stderr, _("%s: Permission denied.\n"), Prog);
+               closelog ();
+               exit (1);
+       }
+#endif
+
+#ifndef USE_PAM
        /*
         * Non-privileged users are optionally authenticated (must enter the
         * password of the user whose information is being changed) before
@@ -392,6 +396,8 @@ int main (int argc, char **argv)
        if (!amroot && getdef_bool ("CHFN_AUTH"))
                passwd_check (pw->pw_name, pw->pw_passwd, "chfn");
 
+#endif                         /* !USE_PAM */
+
        /*
         * Now get the full name. It is the first comma separated field in
         * the GECOS field.
@@ -425,7 +431,6 @@ int main (int argc, char **argv)
        /*
         * Anything left over is "slop".
         */
-
        if (cp && !oflg) {
                if (slop[0])
                        strcat (slop, ",");
@@ -437,7 +442,6 @@ int main (int argc, char **argv)
         * If none of the fields were changed from the command line, let the
         * user interactively change them.
         */
-
        if (!fflg && !rflg && !wflg && !hflg && !oflg) {
                printf (_("Changing the user information for %s\n"), user);
                new_fields ();
@@ -446,10 +450,8 @@ int main (int argc, char **argv)
        /*
         * Check all of the fields for valid information
         */
-
        if (valid_field (fullnm, ":,=")) {
-               fprintf (stderr, _("%s: invalid name: \"%s\"\n"), Prog,
-                        fullnm);
+               fprintf (stderr, _("%s: invalid name: \"%s\"\n"), Prog, fullnm);
                closelog ();
                exit (1);
        }
@@ -491,8 +493,7 @@ int main (int argc, char **argv)
                exit (1);
        }
        snprintf (new_gecos, sizeof new_gecos, "%s,%s,%s,%s%s%s",
-                 fullnm, roomno, workph, homeph, slop[0] ? "," : "",
-                 slop);
+                 fullnm, roomno, workph, homeph, slop[0] ? "," : "", slop);
 
        /*
         * Before going any further, raise the ulimit to prevent colliding
@@ -540,8 +541,7 @@ int main (int argc, char **argv)
        if (!pw) {
                pw_unlock ();
                fprintf (stderr,
-                        _("%s: %s not found in /etc/passwd\n"), Prog,
-                        user);
+                        _("%s: %s not found in /etc/passwd\n"), Prog, user);
                exit (1);
        }
 
@@ -556,34 +556,19 @@ int main (int argc, char **argv)
         * Update the passwd file entry. If there is a DBM file, update that
         * entry as well.
         */
-
        if (!pw_update (&pwent)) {
-               fprintf (stderr,
-                        _("Error updating the password entry.\n"));
+               fprintf (stderr, _("Error updating the password entry.\n"));
                pw_unlock ();
                SYSLOG ((LOG_ERR, "error updating passwd entry"));
                closelog ();
                exit (1);
        }
-#ifdef NDBM
-       if (pw_dbm_present () && !pw_dbm_update (&pwent)) {
-               fprintf (stderr,
-                        _("Error updating the DBM password entry.\n"));
-               pw_unlock ();
-               SYSLOG ((LOG_ERR, "error updating DBM passwd entry"));
-               closelog ();
-               exit (1);
-       }
-       endpwent ();
-#endif
 
        /*
         * Changes have all been made, so commit them and unlock the file.
         */
-
        if (!pw_close ()) {
-               fprintf (stderr,
-                        _("Cannot commit password file changes.\n"));
+               fprintf (stderr, _("Cannot commit password file changes.\n"));
                pw_unlock ();
                SYSLOG ((LOG_ERR, "can't rewrite /etc/passwd"));
                closelog ();
index 71fc3c9ed2ed9f455fef0fbd764ff623a062a1b1..43009e75e56d39201003622f996a8b79a4d78ce3 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: chpasswd.c,v 1.22 2004/12/10 00:27:55 kloczek Exp $")
-#include <stdio.h>
-#include "prototypes.h"
-#include "defines.h"
-#include <pwd.h>
+RCSID (PKG_VER "$Id: chpasswd.c,v 1.24 2005/04/06 00:13:45 kloczek Exp $")
 #include <fcntl.h>
 #include <getopt.h>
-#include "pwio.h"
-#ifdef SHADOWPWD
-#include "shadowio.h"
-#endif
-#include "nscd.h"
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
 #ifdef USE_PAM
 #include <security/pam_appl.h>
 #include <security/pam_misc.h>
 #include <pwd.h>
 #endif                         /* USE_PAM */
+#include "prototypes.h"
+#include "defines.h"
+#include "pwio.h"
+#include "nscd.h"
+#ifdef SHADOWPWD
+#include "shadowio.h"
+#endif
+/*
+ * Global variables
+ */
 static char *Prog;
 static int eflg = 0;
 static int md5flg = 0;
@@ -55,8 +59,6 @@ static int md5flg = 0;
 static int is_shadow_pwd;
 #endif
 
-extern char *l64a ();
-
 /* local function prototypes */
 static void usage (void);
 
@@ -155,8 +157,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("chpasswd", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("chpasswd", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -174,8 +175,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 #endif                         /* USE_PAM */
@@ -186,13 +186,11 @@ int main (int argc, char **argv)
         */
 
        if (!pw_lock ()) {
-               fprintf (stderr, _("%s: can't lock password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't lock password file\n"), Prog);
                exit (1);
        }
        if (!pw_open (O_RDWR)) {
-               fprintf (stderr, _("%s: can't open password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't open password file\n"), Prog);
                pw_unlock ();
                exit (1);
        }
@@ -262,8 +260,7 @@ int main (int argc, char **argv)
                                strcat (salt, crypt_make_salt ());
                                cp = pw_encrypt (newpwd, salt);
                        } else
-                               cp = pw_encrypt (newpwd,
-                                                crypt_make_salt ());
+                               cp = pw_encrypt (newpwd, crypt_make_salt ());
                }
 
                /*
@@ -349,8 +346,7 @@ int main (int argc, char **argv)
        if (is_shadow_pwd) {
                if (!spw_close ()) {
                        fprintf (stderr,
-                                _("%s: error updating shadow file\n"),
-                                Prog);
+                                _("%s: error updating shadow file\n"), Prog);
                        pw_unlock ();
                        exit (1);
                }
@@ -358,8 +354,7 @@ int main (int argc, char **argv)
        }
 #endif
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: error updating password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error updating password file\n"), Prog);
                exit (1);
        }
 
index 476adefdd9ea90aa7a4035ecf0cada5ea36f73ac..396f37148bd34ca45f4704707affc4b45beca28a 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: chsh.c,v 1.24 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: chsh.c,v 1.29 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
@@ -48,6 +48,10 @@ RCSID (PKG_VER "$Id: chsh.c,v 1.24 2005/01/17 23:12:04 kloczek Exp $")
 #ifdef USE_PAM
 #include "pam_defs.h"
 #endif
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+#include <selinux/av_permissions.h>
+#endif
 #ifndef SHELLS_FILE
 #define SHELLS_FILE "/etc/shells"
 #endif
@@ -58,10 +62,6 @@ static char loginsh[BUFSIZ]; /* Name of new login shell */
 
 /* external identifiers */
 
-#ifdef NDBM
-extern int pw_dbm_mode;
-#endif
-
 /* local function prototypes */
 static void usage (void);
 static void new_fields (void);
@@ -86,8 +86,7 @@ static void usage (void)
 
 static void new_fields (void)
 {
-       printf (_
-               ("Enter the new value, or press ENTER for the default\n"));
+       printf (_("Enter the new value, or press ENTER for the default\n"));
        change_field (loginsh, sizeof loginsh, _("Login Shell"));
 }
 
@@ -135,9 +134,6 @@ int main (int argc, char **argv)
         */
 
        amroot = getuid () == 0;
-#ifdef NDBM
-       pw_dbm_mode = O_RDWR;
-#endif
 
        /*
         * Get the program name. The program name is used as a prefix to
@@ -211,8 +207,7 @@ int main (int argc, char **argv)
                         Prog, user);
 
                if (!yp_get_default_domain (&nis_domain) &&
-                   !yp_master (nis_domain, "passwd.byname",
-                               &nis_master)) {
+                   !yp_master (nis_domain, "passwd.byname", &nis_master)) {
                        fprintf (stderr,
                                 _
                                 ("%s: `%s' is the NIS master for this client.\n"),
@@ -231,8 +226,7 @@ int main (int argc, char **argv)
                SYSLOG ((LOG_WARN, "can't change shell for `%s'", user));
                closelog ();
                fprintf (stderr,
-                        _("You may not change the shell for %s.\n"),
-                        user);
+                        _("You may not change the shell for %s.\n"), user);
                exit (1);
        }
 
@@ -245,11 +239,26 @@ int main (int argc, char **argv)
                SYSLOG ((LOG_WARN, "can't change shell for `%s'", user));
                closelog ();
                fprintf (stderr,
-                        _("You may not change the shell for %s.\n"),
-                        user);
+                        _("You may not change the shell for %s.\n"), user);
+               exit (1);
+       }
+#ifdef WITH_SELINUX
+       /*
+        * If the UID of the user does not match the current real UID,
+        * check if the change is allowed by SELinux policy.
+        */
+
+       if ((pw->pw_uid != getuid ())
+           && (checkPasswdAccess (PASSWD__CHSH) != 0)) {
+               SYSLOG ((LOG_WARN, "can't change shell for `%s'", user));
+               closelog ();
+               fprintf (stderr,
+                        _("You may not change the shell for %s.\n"), user);
                exit (1);
        }
+#endif
 
+#ifndef USE_PAM
        /*
         * Non-privileged users are optionally authenticated (must enter
         * the password of the user whose information is being changed)
@@ -257,9 +266,11 @@ int main (int argc, char **argv)
         * chfn/chsh.  --marekm
         */
 
-       if (!amroot && getdef_bool ("CHFN_AUTH"))
+       if (!amroot && getdef_bool ("CHSH_AUTH"))
                passwd_check (pw->pw_name, pw->pw_passwd, "chsh");
 
+#endif                         /* !USE_PAM */
+
        /*
         * Now get the login shell. Either get it from the password
         * file, or use the value from the command line.
@@ -286,13 +297,11 @@ int main (int argc, char **argv)
         */
 
        if (valid_field (loginsh, ":,=")) {
-               fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog,
-                        loginsh);
+               fprintf (stderr, _("%s: Invalid entry: %s\n"), Prog, loginsh);
                closelog ();
                exit (1);
        }
-       if (!amroot
-           && (!check_shell (loginsh) || access (loginsh, X_OK) != 0)) {
+       if (!amroot && (!check_shell (loginsh) || access (loginsh, X_OK) != 0)) {
                fprintf (stderr, _("%s is an invalid shell.\n"), loginsh);
                closelog ();
                exit (1);
@@ -344,8 +353,7 @@ int main (int argc, char **argv)
        if (!pw) {
                pw_unlock ();
                fprintf (stderr,
-                        _("%s: %s not found in /etc/passwd\n"), Prog,
-                        user);
+                        _("%s: %s not found in /etc/passwd\n"), Prog, user);
                exit (1);
        }
 
@@ -364,22 +372,10 @@ int main (int argc, char **argv)
        if (!pw_update (&pwent)) {
                SYSLOG ((LOG_ERR, "error updating passwd entry"));
                closelog ();
-               fprintf (stderr,
-                        _("Error updating the password entry.\n"));
+               fprintf (stderr, _("Error updating the password entry.\n"));
                pw_unlock ();
                exit (1);
        }
-#ifdef NDBM
-       if (pw_dbm_present () && !pw_dbm_update (&pwent)) {
-               SYSLOG ((LOG_ERR, "error updating DBM passwd entry"));
-               closelog ();
-               fprintf (stderr,
-                        _("Error updating the DBM password entry.\n"));
-               pw_unlock ();
-               exit (1);
-       }
-       endpwent ();
-#endif
 
        /*
         * Changes have all been made, so commit them and unlock the file.
@@ -388,8 +384,7 @@ int main (int argc, char **argv)
        if (!pw_close ()) {
                SYSLOG ((LOG_ERR, "can't rewrite /etc/passwd"));
                closelog ();
-               fprintf (stderr,
-                        _("Cannot commit password file changes.\n"));
+               fprintf (stderr, _("Cannot commit password file changes.\n"));
                pw_unlock ();
                exit (1);
        }
@@ -399,8 +394,7 @@ int main (int argc, char **argv)
                fprintf (stderr, _("Cannot unlock the password file.\n"));
                exit (1);
        }
-       SYSLOG ((LOG_INFO, "changed user `%s' shell to `%s'", user,
-                loginsh));
+       SYSLOG ((LOG_INFO, "changed user `%s' shell to `%s'", user, loginsh));
 
        nscd_flush_cache ("passwd");
 
index aaa507fedf4da6bcf363ad52830c3b1a0d266926..1b00faa696576f8059a04d1a4e76af7c721a5332 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: expiry.c,v 1.12 2002/01/05 15:41:43 kloczek Exp $")
+RCSID (PKG_VER "$Id: expiry.c,v 1.13 2005/03/31 05:14:54 kloczek Exp $")
 #include <sys/types.h>
 #include <signal.h>
 #include <stdio.h>
@@ -98,8 +98,7 @@ int main (int argc, char **argv)
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
-       if (argc != 2
-           || (strcmp (argv[1], "-f") && strcmp (argv[1], "-c")))
+       if (argc != 2 || (strcmp (argv[1], "-f") && strcmp (argv[1], "-c")))
                usage ();
 
 #if 0                          /* could be setgid shadow with /etc/shadow mode 0640 */
@@ -110,8 +109,7 @@ int main (int argc, char **argv)
 
        if (geteuid () != 0) {
                fprintf (stderr,
-                        _("%s: WARNING!  Must be set-UID root!\n"),
-                        argv[0]);
+                        _("%s: WARNING!  Must be set-UID root!\n"), argv[0]);
                exit (10);
        }
 #endif
index cd5c78dddb1b0819d28836b1cf4e7e59783cfc93..2e1da5da9277f3a3f570809ae2f2ffc5ee47551d 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: faillog.c,v 1.17 2005/01/02 06:36:48 kloczek Exp $")
+RCSID (PKG_VER "$Id: faillog.c,v 1.22 2005/04/25 10:25:50 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -62,8 +62,9 @@ static void usage (void)
                           "  -a, --all                 display faillog records for all users\n"
                           "  -h, --help                        display this help message and exit\n"
                           "  -l, --lock-time SEC               after failed login lock accout to SEC seconds\n"
-                          "  -m, --maximum MAX         set maiximum failed login counters to MAX\n"
+                          "  -m, --maximum MAX         set maximum failed login counters to MAX\n"
                           "  -r, --reset                       reset the counters of login failures\n"
+                          "  -t, --time DAYS           display faillog records more recent than DAYS\n"
                           "  -u, --user LOGIN          display faillog record or maintains failure counters\n"
                           "                            and limits (if used with -r, -m or -l options) only\n"
                           "                            for user with LOGIN\n"));
@@ -83,24 +84,21 @@ static void print_one (const struct faillog *fl, uid_t uid)
 #endif
 
        if (!once) {
-               printf (_("Username   Failures  Maximum  Latest\n"));
+               printf (_("Login       Failures Maximum Latest                   On\n"));
                once++;
        }
        pwent = getpwuid (uid);
        time (&now);
        tm = localtime (&fl->fail_time);
 #ifdef HAVE_STRFTIME
-       strftime (ptime, sizeof (ptime), "%a %b %e %H:%M:%S %z %Y", tm);
+       strftime (ptime, sizeof (ptime), "%D %H:%M:%S %z", tm);
        cp = ptime;
-#else
-       cp = asctime (tm);
-       cp[24] = '\0';
 #endif
        if (pwent) {
-               printf ("%-12s   %4d     %4d",
+               printf ("%-9s   %5d    %5d   ",
                        pwent->pw_name, fl->fail_cnt, fl->fail_max);
                if (fl->fail_time) {
-                       printf (_("  %s on %s"), cp, fl->fail_line);
+                       printf ("%s  %s", cp, fl->fail_line);
                        if (fl->fail_locktime) {
                                if (fl->fail_time + fl->fail_locktime > now
                                    && fl->fail_cnt)
@@ -180,8 +178,7 @@ static void print (void)
                        return;
 
                fseeko (fail, (off_t) user * sizeof faillog, SEEK_SET);
-               if (fread ((char *) &faillog, sizeof faillog, 1, fail) ==
-                   1)
+               if (fread ((char *) &faillog, sizeof faillog, 1, fail) == 1)
                        print_one (&faillog, user);
                else
                        perror (FAILLOG_FILE);
@@ -295,7 +292,6 @@ int main (int argc, char **argv)
        textdomain (PACKAGE);
 
        /* try to open for read/write, if that fails - read only */
-
        fail = fopen (FAILLOG_FILE, "r+");
        if (!fail)
                fail = fopen (FAILLOG_FILE, "r");
@@ -308,24 +304,28 @@ int main (int argc, char **argv)
                int option_index = 0;
                int c;
                static struct option long_options[] = {
+                       {"all", no_argument, NULL, 'a'},
                        {"help", no_argument, NULL, 'h'},
                        {"lock-secs", no_argument, NULL, 'l'},
                        {"maximum", no_argument, NULL, 'm'},
                        {"reset", no_argument, NULL, 'r'},
+                       {"time", no_argument, NULL, 't'},
                        {"user", no_argument, NULL, 'u'},
-                       {"", no_argument, NULL, 't'},
                        {NULL, 0, NULL, '\0'}
                };
 
                while ((c =
                        getopt_long (argc, argv, "ahl:m:rt:u:",
                                     long_options, &option_index)) != -1) {
-               switch (c) {
+                       switch (c) {
                        case 'a':
                                aflg++;
                                if (uflg)
                                        usage ();
                                break;
+                       case 'h':
+                               usage ();
+                               break;
                        case 'l':
                                set_locktime ((long) atoi (optarg));
                                anyflag++;
@@ -334,32 +334,29 @@ int main (int argc, char **argv)
                                setmax (atoi (optarg));
                                anyflag++;
                                break;
-                       case 'p':
-                               print ();
-                               anyflag++;
-                               break;
                        case 'r':
                                reset ();
                                anyflag++;
                                break;
+                       case 't':
+                               days = atoi (optarg);
+                               seconds = days * DAY;
+                               tflg++;
+                               break;
                        case 'u':
                                if (aflg)
                                        usage ();
 
                                pwent = getpwnam (optarg);
                                if (!pwent) {
-                                       fprintf (stderr, _("Unknown User: %s\n"),
+                                       fprintf (stderr,
+                                                _("Unknown User: %s\n"),
                                                 optarg);
                                        exit (1);
                                }
                                uflg++;
                                user = pwent->pw_uid;
                                break;
-                       case 't':
-                               days = atoi (optarg);
-                               seconds = days * DAY;
-                               tflg++;
-                               break;
                        default:
                                usage ();
                        }
index e02762794a107c9f9c52026e13c6114dc149e2d1..b107c69e2eeed5b291910534b4574f967bec0576 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: gpasswd.c,v 1.22 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: gpasswd.c,v 1.24 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <pwd.h>
@@ -57,13 +57,6 @@ static int
 #define        RETRIES 3
 #endif
 
-#ifdef NDBM
-#ifdef SHADOWGRP
-extern int sg_dbm_mode;
-#endif
-extern int gr_dbm_mode;
-#endif
-
 /* local function prototypes */
 static void usage (void);
 static RETSIGTYPE die (int);
@@ -205,13 +198,6 @@ int main (int argc, char **argv)
         */
 
        amroot = getuid () == 0;
-#ifdef NDBM
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif
-       gr_dbm_mode = O_RDWR;
-#endif
-
        Prog = Basename (argv[0]);
 
        OPENLOG ("gpasswd");
@@ -437,8 +423,7 @@ int main (int argc, char **argv)
        if (dflg) {
                int removed = 0;
 
-               printf (_("Removing user %s from group %s\n"), user,
-                       group);
+               printf (_("Removing user %s from group %s\n"), user, group);
 
                if (is_on_list (grent.gr_mem, user)) {
                        removed = 1;
@@ -482,8 +467,7 @@ int main (int argc, char **argv)
         */
 
        if (Mflg) {
-               SYSLOG ((LOG_INFO, "set members of %s to %s", group,
-                        members));
+               SYSLOG ((LOG_INFO, "set members of %s to %s", group, members));
 #ifdef SHADOWGRP
                sgent.sg_mem = comma_to_list (members);
 #endif
@@ -605,8 +589,7 @@ int main (int argc, char **argv)
        }
 #ifdef SHADOWGRP
        if (is_shadowgrp && !sgr_update (&sgent)) {
-               fprintf (stderr, _("%s: can't update shadow entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't update shadow entry\n"), Prog);
                SYSLOG ((LOG_WARN, "cannot update /etc/gshadow"));
                exit (1);
        }
@@ -618,8 +601,7 @@ int main (int argc, char **argv)
        }
 #ifdef SHADOWGRP
        if (is_shadowgrp && !sgr_close ()) {
-               fprintf (stderr, _("%s: can't re-write shadow file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't re-write shadow file\n"), Prog);
                SYSLOG ((LOG_WARN, "cannot re-write /etc/gshadow"));
                exit (1);
        }
@@ -630,24 +612,6 @@ int main (int argc, char **argv)
                fprintf (stderr, _("%s: can't unlock file\n"), Prog);
                exit (1);
        }
-#ifdef NDBM
-       if (gr_dbm_present () && !gr_dbm_update (&grent)) {
-               fprintf (stderr, _("%s: can't update DBM files\n"), Prog);
-               SYSLOG ((LOG_WARN, "cannot update /etc/group DBM files"));
-               exit (1);
-       }
-       endgrent ();
-#ifdef SHADOWGRP
-       if (is_shadowgrp && sg_dbm_present () && !sg_dbm_update (&sgent)) {
-               fprintf (stderr, _("%s: can't update DBM shadow files\n"),
-                        Prog);
-               SYSLOG ((LOG_WARN,
-                        "cannot update /etc/gshadow DBM files"));
-               exit (1);
-       }
-       endsgent ();
-#endif
-#endif
        exit (0);
        /* NOT REACHED */
 }
index de8eec65e6afc65ba244a92e790a21ea22f51b99..31882fd179dcb7bf5cac98e55a978ca099afcfbd 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: groupadd.c,v 1.29 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: groupadd.c,v 1.31 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <grp.h>
@@ -73,11 +73,6 @@ 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) */
 
-#ifdef NDBM
-extern int gr_dbm_mode;
-extern int sg_dbm_mode;
-#endif
-
 /* local function prototypes */
 static void usage (void);
 static void new_grent (struct group *);
@@ -154,7 +149,6 @@ static void grp_update (void)
        /*
         * Create the initial entries for this new group.
         */
-
        new_grent (&grp);
 #ifdef SHADOWGRP
        new_sgent (&sgrp);
@@ -163,50 +157,19 @@ static void grp_update (void)
        /*
         * Write out the new group file entry.
         */
-
        if (!gr_update (&grp)) {
-               fprintf (stderr, _("%s: error adding new group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
-#ifdef NDBM
-
-       /*
-        * Update the DBM group file with the new entry as well.
-        */
-
-       if (gr_dbm_present () && !gr_dbm_update (&grp)) {
-               fprintf (stderr, _("%s: cannot add new dbm group entry\n"),
-                        Prog);
-               fail_exit (E_GRP_UPDATE);
-       }
-       endgrent ();
-#endif                         /* NDBM */
 
 #ifdef SHADOWGRP
-
        /*
         * Write out the new shadow group entries as well.
         */
-
        if (is_shadow_grp && !sgr_update (&sgrp)) {
-               fprintf (stderr, _("%s: error adding new group entry\n"),
-                        Prog);
-               fail_exit (E_GRP_UPDATE);
-       }
-#ifdef NDBM
-
-       /*
-        * Update the DBM group file with the new entry as well.
-        */
-
-       if (is_shadow_grp && sg_dbm_present () && !sg_dbm_update (&sgrp)) {
-               fprintf (stderr, _("%s: cannot add new dbm group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
-       endsgent ();
-#endif                         /* NDBM */
 #endif                         /* SHADOWGRP */
        SYSLOG ((LOG_INFO, "new group: name=%s, gid=%u",
                 group_name, (unsigned int) group_id));
@@ -292,8 +255,7 @@ static void find_new_gid (void)
 #endif
                }
                if (group_id == gid_max) {
-                       fprintf (stderr, _("%s: can't get unique gid\n"),
-                                Prog);
+                       fprintf (stderr, _("%s: can't get unique gid\n"), Prog);
                        fail_exit (E_GID_IN_USE);
                }
        }
@@ -405,16 +367,14 @@ static void process_flags (int argc, char **argv)
 static void close_files (void)
 {
        if (!gr_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        gr_unlock ();
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow group file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp)
@@ -431,26 +391,22 @@ static void close_files (void)
 static void open_files (void)
 {
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: unable to lock group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (!gr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_lock ()) {
                fprintf (stderr,
-                        _("%s: unable to lock shadow group file\n"),
-                        Prog);
+                        _("%s: unable to lock shadow group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp && !sgr_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: unable to open shadow group file\n"),
-                        Prog);
+                        _("%s: unable to open shadow group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
 #endif                         /* SHADOWGRP */
@@ -499,9 +455,9 @@ int main (int argc, char **argv)
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
-       OPENLOG("groupadd");
+       OPENLOG ("groupadd");
 
-       process_flags(argc, argv);
+       process_flags (argc, argv);
 
 #ifdef USE_PAM
        retval = PAM_SUCCESS;
@@ -512,8 +468,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("groupadd", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("groupadd", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -531,8 +486,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 
@@ -543,18 +497,6 @@ int main (int argc, char **argv)
        is_shadow_grp = sgr_file_present ();
 #endif
 
-       /*
-        * The open routines for the DBM files don't use read-write as the
-        * mode, so we have to clue them in.
-        */
-
-#ifdef NDBM
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif                         /* SHADOWGRP */
-#endif                         /* NDBM */
-
        /*
         * Start with a quick check to see if the group exists.
         */
@@ -563,8 +505,7 @@ int main (int argc, char **argv)
                if (fflg) {
                        exit (E_SUCCESS);
                }
-               fprintf (stderr, _("%s: group %s exists\n"), Prog,
-                        group_name);
+               fprintf (stderr, _("%s: group %s exists\n"), Prog, group_name);
                exit (E_NAME_IN_USE);
        }
 
@@ -572,7 +513,6 @@ int main (int argc, char **argv)
         * Do the hard stuff - open the files, create the group entries,
         * then close and update the files.
         */
-
        open_files ();
 
        if (!gflg || !oflg)
index c4c0bfefd12318e4a67d7e44a9124a847f0eea01..02f7fcf3dd0e459552a42b068f3521a01b8dc457 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: groupdel.c,v 1.18 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: groupdel.c,v 1.20 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <grp.h>
@@ -49,11 +49,6 @@ static char *group_name;
 static char *Prog;
 static int errors;
 
-#ifdef NDBM
-extern int gr_dbm_mode;
-extern int sg_dbm_mode;
-#endif
-
 #include "groupio.h"
 
 #ifdef SHADOWGRP
@@ -97,62 +92,20 @@ static void usage (void)
 
 static void grp_update (void)
 {
-#ifdef NDBM
-       struct group *ogrp;
-#endif
-
        if (!gr_remove (group_name)) {
-               fprintf (stderr, _("%s: error removing group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error removing group entry\n"), Prog);
                errors++;
        }
-#ifdef NDBM
-
-       /*
-        * Update the DBM group file
-        */
-
-       if (gr_dbm_present ()) {
-               if ((ogrp = getgrnam (group_name)) &&
-                   !gr_dbm_remove (ogrp)) {
-                       fprintf (stderr,
-                                _("%s: error removing group dbm entry\n"),
-                                Prog);
-                       errors++;
-               }
-       }
-       endgrent ();
-#endif                         /* NDBM */
 
 #ifdef SHADOWGRP
-
        /*
         * Delete the shadow group entries as well.
         */
-
        if (is_shadow_grp && !sgr_remove (group_name)) {
                fprintf (stderr,
-                        _("%s: error removing shadow group entry\n"),
-                        Prog);
+                        _("%s: error removing shadow group entry\n"), Prog);
                errors++;
        }
-#ifdef NDBM
-
-       /*
-        * Update the DBM shadow group file
-        */
-
-       if (is_shadow_grp && sg_dbm_present ()) {
-               if (!sg_dbm_remove (group_name)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error removing shadow group dbm entry\n"),
-                                Prog);
-                       errors++;
-               }
-       }
-       endsgent ();
-#endif                         /* NDBM */
 #endif                         /* SHADOWGRP */
        SYSLOG ((LOG_INFO, "remove group `%s'\n", group_name));
        return;
@@ -168,16 +121,14 @@ static void grp_update (void)
 static void close_files (void)
 {
        if (!gr_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite group file\n"), Prog);
                errors++;
        }
        gr_unlock ();
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow group file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow group file\n"), Prog);
                errors++;
        }
        if (is_shadow_grp)
@@ -194,26 +145,22 @@ static void close_files (void)
 static void open_files (void)
 {
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: unable to lock group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (!gr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_lock ()) {
                fprintf (stderr,
-                        _("%s: unable to lock shadow group file\n"),
-                        Prog);
+                        _("%s: unable to lock shadow group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp && !sgr_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: unable to open shadow group file\n"),
-                        Prog);
+                        _("%s: unable to open shadow group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
 #endif                         /* SHADOWGRP */
@@ -252,8 +199,7 @@ static void group_busy (gid_t gid)
         * Can't remove the group.
         */
 
-       fprintf (stderr, _("%s: cannot remove user's primary group.\n"),
-                Prog);
+       fprintf (stderr, _("%s: cannot remove user's primary group.\n"), Prog);
        exit (E_GROUP_BUSY);
 }
 
@@ -295,7 +241,7 @@ int main (int argc, char **argv)
        textdomain (PACKAGE);
 
        if (argc != 2)
-               usage();
+               usage ();
 
        group_name = argv[1];
 
@@ -308,8 +254,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("groupdel", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("groupdel", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -327,8 +272,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 #endif                         /* USE_PAM */
@@ -339,33 +283,19 @@ int main (int argc, char **argv)
        is_shadow_grp = sgr_file_present ();
 #endif
 
-       /*
-        * The open routines for the DBM files don't use read-write
-        * as the mode, so we have to clue them in.
-        */
-
-#ifdef NDBM
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif                         /* SHADOWGRP */
-#endif                         /* NDBM */
-
        /*
         * Start with a quick check to see if the group exists.
         */
-
        if (!(grp = getgrnam (group_name))) {
                fprintf (stderr, _("%s: group %s does not exist\n"),
                         Prog, group_name);
                exit (E_NOTFOUND);
        }
-#ifdef USE_NIS
 
+#ifdef USE_NIS
        /*
         * Make sure this isn't a NIS group
         */
-
        if (__isgrNIS ()) {
                char *nis_domain;
                char *nis_master;
@@ -386,14 +316,12 @@ int main (int argc, char **argv)
         * Now check to insure that this isn't the primary group of
         * anyone.
         */
-
        group_busy (grp->gr_gid);
 
        /*
         * Do the hard stuff - open the files, delete the group entries,
         * then close and update the files.
         */
-
        open_files ();
 
        grp_update ();
index f3ff66cb06b7b09a11c598e9b5c8b98fa34e78a8..a86e8d73ba6092cdf967ebc980e92ff3cd749a4f 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: groupmod.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: groupmod.c,v 1.26 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #include <grp.h>
@@ -72,13 +72,8 @@ static char *Prog;
 
 static int
  oflg = 0,                     /* permit non-unique group ID to be specified with -g */
- gflg = 0,                     /* new ID value for the group */
- nflg = 0;                     /* a new name has been specified for the group */
-
-#ifdef NDBM
-extern int gr_dbm_mode;
-extern int sg_dbm_mode;
-#endif
+    gflg = 0,                  /* new ID value for the group */
+    nflg = 0;                  /* a new name has been specified for the group */
 
 /* local function prototypes */
 static void usage (void);
@@ -100,8 +95,7 @@ static void open_files (void);
 
 static void usage (void)
 {
-       fprintf (stderr,
-                _("Usage: groupmod [-g gid [-o]] [-n name] group\n"));
+       fprintf (stderr, _("Usage: groupmod [-g gid [-o]] [-n name] group\n"));
        exit (E_USAGE);
 }
 
@@ -177,41 +171,15 @@ static void grp_update (void)
         */
 
        if (!gr_update (&grp)) {
-               fprintf (stderr, _("%s: error adding new group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (nflg && !gr_remove (group_name)) {
-               fprintf (stderr, _("%s: error removing group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error removing group entry\n"), Prog);
                exit (E_GRP_UPDATE);
        }
-#ifdef NDBM
-
-       /*
-        * Update the DBM group file with the new entry as well.
-        */
-
-       if (gr_dbm_present ()) {
-               if (!gr_dbm_update (&grp)) {
-                       fprintf (stderr,
-                                _("%s: cannot add new dbm group entry\n"),
-                                Prog);
-                       exit (E_GRP_UPDATE);
-               }
-               if (nflg && (ogrp = getgrnam (group_name)) &&
-                   !gr_dbm_remove (ogrp)) {
-                       fprintf (stderr,
-                                _("%s: error removing group dbm entry\n"),
-                                Prog);
-                       exit (E_GRP_UPDATE);
-               }
-               endgrent ();
-       }
-#endif                         /* NDBM */
 
 #ifdef SHADOWGRP
-
        /*
         * Make sure there was a shadow entry to begin with. Skip down to
         * "out" if there wasn't. Can't just return because there might be
@@ -226,39 +194,13 @@ static void grp_update (void)
         */
 
        if (!sgr_update (&sgrp)) {
-               fprintf (stderr, _("%s: error adding new group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (nflg && !sgr_remove (group_name)) {
-               fprintf (stderr, _("%s: error removing group entry\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error removing group entry\n"), Prog);
                exit (E_GRP_UPDATE);
        }
-#ifdef NDBM
-
-       /*
-        * Update the DBM shadow group file with the new entry as well.
-        */
-
-       if (sg_dbm_present ()) {
-               if (!sg_dbm_update (&sgrp)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: cannot add new dbm shadow group entry\n"),
-                                Prog);
-                       exit (E_GRP_UPDATE);
-               }
-               if (nflg && !sg_dbm_remove (group_name)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error removing shadow group dbm entry\n"),
-                                Prog);
-                       exit (E_GRP_UPDATE);
-               }
-               endsgent ();
-       }
-#endif                         /* NDBM */
       out:
 #endif                         /* SHADOWGRP */
 
@@ -297,8 +239,7 @@ static void check_new_gid (void)
         * Tell the user what they did wrong.
         */
 
-       fprintf (stderr,
-                _("%s: %u is not a unique gid\n"), Prog, group_newid);
+       fprintf (stderr, _("%s: %u is not a unique gid\n"), Prog, group_newid);
        exit (E_GID_IN_USE);
 }
 
@@ -399,16 +340,14 @@ static void process_flags (int argc, char **argv)
 static void close_files (void)
 {
        if (!gr_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        gr_unlock ();
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow group file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp)
@@ -425,26 +364,22 @@ static void close_files (void)
 static void open_files (void)
 {
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: unable to lock group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (!gr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_lock ()) {
                fprintf (stderr,
-                        _("%s: unable to lock shadow group file\n"),
-                        Prog);
+                        _("%s: unable to lock shadow group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp && !sgr_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: unable to open shadow group file\n"),
-                        Prog);
+                        _("%s: unable to open shadow group file\n"), Prog);
                exit (E_GRP_UPDATE);
        }
 #endif                         /* SHADOWGRP */
@@ -490,7 +425,7 @@ int main (int argc, char **argv)
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
-       process_flags(argc, argv);
+       process_flags (argc, argv);
 
 #ifdef USE_PAM
        retval = PAM_SUCCESS;
@@ -501,8 +436,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("groupmod", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("groupmod", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -520,8 +454,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 #endif                         /* USE_PAM */
@@ -531,23 +464,9 @@ int main (int argc, char **argv)
 #ifdef SHADOWGRP
        is_shadow_grp = sgr_file_present ();
 #endif
-
-       /*
-        * The open routines for the DBM files don't use read-write as the
-        * mode, so we have to clue them in.
-        */
-
-#ifdef NDBM
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif                         /* SHADOWGRP */
-#endif                         /* NDBM */
-
        /*
         * Start with a quick check to see if the group exists.
         */
-
        if (!(grp = getgrnam (group_name))) {
                fprintf (stderr, _("%s: group %s does not exist\n"),
                         Prog, group_name);
@@ -556,11 +475,9 @@ int main (int argc, char **argv)
                group_id = grp->gr_gid;
 
 #ifdef USE_NIS
-
        /*
         * Now make sure it isn't an NIS group.
         */
-
        if (__isgrNIS ()) {
                char *nis_domain;
                char *nis_master;
index fc07e02370019332810ceba061e207e3720b087b..e143edcbdbdadaf363f48f431e455fec5c9ee055 100644 (file)
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: groups.c,v 1.9 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: groups.c,v 1.10 2005/03/31 05:14:54 kloczek Exp $")
 #include <stdio.h>
 #include <pwd.h>
 #include <grp.h>
 #include "prototypes.h"
 #include "defines.h"
-
 /*
  * Global variables
  */
index 133f9d29ebc57a0cd1790218b151461dc1444870..58465fc7793983908ef400c5dd64ae2d6fa2244b 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: grpck.c,v 1.21 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: grpck.c,v 1.23 2005/04/06 04:26:06 kloczek Exp $")
 #include <stdio.h>
 #include <fcntl.h>
 #include <grp.h>
@@ -84,8 +84,7 @@ static void delete_member (char **, const char *);
 static void usage (void)
 {
 #ifdef SHADOWGRP
-       fprintf (stderr, _("Usage: %s [-r] [-s] [group [gshadow]]\n"),
-                Prog);
+       fprintf (stderr, _("Usage: %s [-r] [-s] [group [gshadow]]\n"), Prog);
 #else
        fprintf (stderr, _("Usage: %s [-r] [-s] [group]\n"), Prog);
 #endif
@@ -189,8 +188,7 @@ int main (int argc, char **argv)
        }
 
        if (sort_mode && read_only) {
-               fprintf (stderr, _("%s: -s and -r are incompatibile\n"),
-                        Prog);
+               fprintf (stderr, _("%s: -s and -r are incompatibile\n"), Prog);
                exit (E_USAGE);
        }
 
@@ -232,8 +230,7 @@ int main (int argc, char **argv)
                        fprintf (stderr, _("%s: cannot lock file %s\n"),
                                 Prog, grp_file);
                        if (optind == argc)
-                               SYSLOG ((LOG_WARN, "cannot lock %s",
-                                        grp_file));
+                               SYSLOG ((LOG_WARN, "cannot lock %s", grp_file));
                        closelog ();
                        exit (E_CANT_LOCK);
                }
@@ -242,8 +239,7 @@ int main (int argc, char **argv)
                        fprintf (stderr, _("%s: cannot lock file %s\n"),
                                 Prog, sgr_file);
                        if (optind == argc)
-                               SYSLOG ((LOG_WARN, "cannot lock %s",
-                                        sgr_file));
+                               SYSLOG ((LOG_WARN, "cannot lock %s", sgr_file));
                        closelog ();
                        exit (E_CANT_LOCK);
                }
@@ -388,8 +384,7 @@ int main (int argc, char **argv)
                 */
                if (!check_group_name (grp->gr_name)) {
                        errors++;
-                       printf (_("invalid group name `%s'\n"),
-                               grp->gr_name);
+                       printf (_("invalid group name `%s'\n"), grp->gr_name);
                }
 
                /*
@@ -641,16 +636,9 @@ int main (int argc, char **argv)
         */
 
        if (errors)
-#ifdef NDBM
-               printf (deleted ?
-                       _
-                       ("%s: the files have been updated; run mkpasswd\n")
-                       : _("%s: no changes\n"), Prog);
-#else
                printf (deleted ?
                        _("%s: the files have been updated\n") :
                        _("%s: no changes\n"), Prog);
-#endif
 
        exit (errors ? E_BAD_ENTRY : E_OKAY);
 }
index 56be7fe8e285e9922c79f3db346541fa8096c96f..589529a8aaeb76aae587dced80d30aca9c9c3b4f 100644 (file)
@@ -27,7 +27,7 @@
 #include "sgroupio.h"
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: grpconv.c,v 1.15 2003/06/19 18:11:01 kloczek Exp $")
+RCSID (PKG_VER "$Id: grpconv.c,v 1.16 2005/03/31 05:14:54 kloczek Exp $")
 
 static int group_locked = 0;
 static int gshadow_locked = 0;
@@ -67,14 +67,12 @@ int main (int argc, char **argv)
        }
 
        if (!sgr_lock ()) {
-               fprintf (stderr, _("%s: can't lock shadow group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't lock shadow group file\n"), Prog);
                fail_exit (5);
        }
        gshadow_locked++;
        if (!sgr_open (O_CREAT | O_RDWR)) {
-               fprintf (stderr, _("%s: can't open shadow group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't open shadow group file\n"), Prog);
                fail_exit (1);
        }
 
@@ -107,8 +105,7 @@ int main (int argc, char **argv)
                if (sg) {
                        /* update existing shadow group entry */
                        sgent = *sg;
-                       if (strcmp (gr->gr_passwd, SHADOW_PASSWD_STRING) !=
-                           0)
+                       if (strcmp (gr->gr_passwd, SHADOW_PASSWD_STRING) != 0)
                                sgent.sg_passwd = gr->gr_passwd;
                } else {
                        static char *empty = 0;
@@ -163,8 +160,7 @@ int main (int argc, char **argv)
 int main (int argc, char **argv)
 {
        fprintf (stderr,
-                "%s: not configured for shadow group support.\n",
-                argv[0]);
+                "%s: not configured for shadow group support.\n", argv[0]);
        exit (1);
 }
 #endif                         /* !SHADOWGRP */
index 54b7184b729502e4c5c10270b117d7c5b7766ac5..a2b7d2f0f348b69869cbf409a10e767ec5c8b072 100644 (file)
@@ -11,7 +11,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: grpunconv.c,v 1.13 2003/06/19 18:11:01 kloczek Exp $")
+RCSID (PKG_VER "$Id: grpunconv.c,v 1.14 2005/03/31 05:14:54 kloczek Exp $")
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -63,14 +63,12 @@ int main (int argc, char **argv)
        }
 
        if (!sgr_lock ()) {
-               fprintf (stderr, _("%s: can't lock shadow group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't lock shadow group file\n"), Prog);
                fail_exit (5);
        }
        gshadow_locked++;
        if (!sgr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: can't open shadow group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't open shadow group file\n"), Prog);
                fail_exit (1);
        }
 
@@ -80,8 +78,7 @@ int main (int argc, char **argv)
        gr_rewind ();
        while ((gr = gr_next ())) {
                sg = sgr_locate (gr->gr_name);
-               if (sg
-                   && strcmp (gr->gr_passwd, SHADOW_PASSWD_STRING) == 0) {
+               if (sg && strcmp (gr->gr_passwd, SHADOW_PASSWD_STRING) == 0) {
                        /* add password to /etc/group */
                        grent = *gr;
                        grent.gr_passwd = sg->sg_passwd;
@@ -120,8 +117,7 @@ int main (int argc, char **argv)
 int main (int argc, char **argv)
 {
        fprintf (stderr,
-                "%s: not configured for shadow group support.\n",
-                argv[0]);
+                "%s: not configured for shadow group support.\n", argv[0]);
        exit (1);
 }
 #endif                         /* !SHADOWGRP */
index b68157722e023aacbd23e9c82b30d5b099730720..f4d1757dbb863c1447ef45067eadb16e00301c52 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: lastlog.c,v 1.15 2004/12/20 02:10:56 kloczek Exp $")
+RCSID (PKG_VER "$Id: lastlog.c,v 1.17 2005/04/25 10:26:37 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -38,11 +38,7 @@ RCSID (PKG_VER "$Id: lastlog.c,v 1.15 2004/12/20 02:10:56 kloczek Exp $")
 #include <time.h>
 #include "prototypes.h"
 #include "defines.h"
-#if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
-#endif
 #include <getopt.h>
 /*
  * Needed for MkLinux DR1/2/2.1 - J.
@@ -68,7 +64,7 @@ static void usage (void)
        fprintf (stdout, _("Usage: lastlog [options]\n"
                           "\n"
                           "Options:\n"
-                          "  -u, --login LOGIN print lastlog record for user with specyfied LOGIN\n"
+                          "  -u, --login LOGIN print lastlog record for user with specified LOGIN\n"
                           "  -h, --help                display this help message and exit\n"
                           "  -t, --time DAYS   print only lastlog records more recent than DAYS\n"));
        exit (1);
index 83fb37c9874c6225e3ce2e9583edb7fc0898b68f..469f912b2f33792049a036a54516ca0b0524910e 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: login.c,v 1.38 2005/01/17 23:12:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: login.c,v 1.52 2005/04/17 15:38:56 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <sys/stat.h>
@@ -39,25 +39,11 @@ RCSID (PKG_VER "$Id: login.c,v 1.38 2005/01/17 23:12:04 kloczek Exp $")
 #include <pwd.h>
 #include <grp.h>
 #include <signal.h>
-#if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
-#endif
 #include "faillog.h"
 #include "failure.h"
 #include "pwauth.h"
 #include "getdef.h"
-#ifdef RADIUS
-/*
- * Support for RADIUS authentication based on a hacked util-linux login
- * source sent to me by Jon Lewis. Not tested. You need to link login
- * with the radauth.c file (not included here - it doesn't have a clear
- * copyright statement, and I don't want to have problems with Debian
- * putting the whole package in non-free because of this).  --marekm
- */
-#include "radlogin.h"
-#endif
 #ifdef UT_ADDR
 #include <netdb.h>
 #endif
@@ -92,12 +78,12 @@ const char *hostname = "";
 static struct passwd pwent;
 
 #if HAVE_UTMPX_H
-extern struct  utmpx   utxent;
+extern struct utmpx utxent;
 struct utmpx failent;
 #else
 struct utmp failent;
 #endif
-extern struct  utmp    utent;
+extern struct utmp utent;
 
 struct lastlog lastlog;
 static int pflg = 0;
@@ -131,12 +117,6 @@ extern void dolastlog (struct lastlog *, const struct passwd *,
 
 extern char **environ;
 
-#ifndef USE_PAM
-extern int login_access (const char *, const char *);
-#endif
-
-extern void login_fbtab (const char *, uid_t, gid_t);
-
 #ifndef        ALARM
 #define        ALARM   60
 #endif
@@ -145,19 +125,20 @@ extern void login_fbtab (const char *, uid_t, gid_t);
 #define        RETRIES 3
 #endif
 
-#ifndef USE_PAM
-static struct faillog faillog;
-#endif
-
 /* local function prototypes */
 static void usage (void);
 static void setup_tty (void);
 static void check_flags (int, char *const *);
 
 #ifndef USE_PAM
+extern int login_access (const char *, const char *);
+
+static struct faillog faillog;
+
 static void bad_time_notify (void);
 static void check_nologin (void);
 #endif
+
 static void init_env (void);
 static RETSIGTYPE alarm_handler (int);
 
@@ -182,7 +163,6 @@ static void usage (void)
        exit (1);
 }
 
-
 static void setup_tty (void)
 {
        TERMIO termio;
@@ -196,35 +176,8 @@ static void setup_tty (void)
        termio.c_lflag |= ISIG | ICANON | ECHO | ECHOE;
        termio.c_iflag |= ICRNL;
 
-#if defined(ECHOKE) && defined(ECHOCTL)
-       termio.c_lflag |= ECHOKE | ECHOCTL;
-#endif
-#if defined(ECHOPRT) && defined(NOFLSH) && defined(TOSTOP)
-       termio.c_lflag &= ~(ECHOPRT | NOFLSH | TOSTOP);
-#endif
-#ifdef ONLCR
-       termio.c_oflag |= ONLCR;
-#endif
-
-#ifdef SUN4
-
-       /*
-        * Terminal setup for SunOS 4.1 courtesy of Steve Allen
-        * at UCO/Lick.
-        */
-
-       termio.c_cc[VEOF] = '\04';
-       termio.c_cflag &= ~CSIZE;
-       termio.c_cflag |= (PARENB | CS7);
-       termio.c_lflag |= (ISIG | ICANON | ECHO | IEXTEN);
-       termio.c_iflag |=
-           (BRKINT | IGNPAR | ISTRIP | IMAXBEL | ICRNL | IXON);
-       termio.c_iflag &= ~IXANY;
-       termio.c_oflag |= (XTABS | OPOST | ONLCR);
-#endif
        /* leave these values unchanged if not specified in login.defs */
-       termio.c_cc[VERASE] =
-           getdef_num ("ERASECHAR", termio.c_cc[VERASE]);
+       termio.c_cc[VERASE] = getdef_num ("ERASECHAR", termio.c_cc[VERASE]);
        termio.c_cc[VKILL] = getdef_num ("KILLCHAR", termio.c_cc[VKILL]);
 
        /*
@@ -236,48 +189,16 @@ static void setup_tty (void)
 }
 
 
+#ifndef USE_PAM
 /*
  * Tell the user that this is not the right time to login at this tty
  */
-#ifndef USE_PAM
 static void bad_time_notify (void)
 {
-#ifdef HUP_MESG_FILE
-       FILE *mfp;
-
-       if ((mfp = fopen (HUP_MESG_FILE, "r")) != NULL) {
-               int c;
-
-               while ((c = fgetc (mfp)) != EOF) {
-                       if (c == '\n')
-                               putchar ('\r');
-                       putchar (c);
-               }
-               fclose (mfp);
-       } else
-#endif
-               printf (_("Invalid login time\n"));
+       printf (_("Invalid login time\n"));
        fflush (stdout);
 }
-#endif
-
-
-static void check_flags (int argc, char *const *argv)
-{
-       int arg;
 
-       /*
-        * Check the flags for proper form. Every argument starting with
-        * "-" must be exactly two characters long. This closes all the
-        * clever rlogin, telnet, and getty holes.
-        */
-       for (arg = 1; arg < argc; arg++) {
-               if (argv[arg][0] == '-' && strlen (argv[arg]) > 2)
-                       usage ();
-       }
-}
-
-#ifndef USE_PAM
 static void check_nologin (void)
 {
        char *fname;
@@ -310,8 +231,7 @@ static void check_nologin (void)
                        fflush (stdout);
                        fclose (nlfp);
                } else
-                       printf (_
-                               ("\nSystem closed for routine maintenance\n"));
+                       printf (_("\nSystem closed for routine maintenance\n"));
                /*
                 * Non-root users must exit. Root gets the message, but
                 * gets to login.
@@ -321,12 +241,27 @@ static void check_nologin (void)
                        closelog ();
                        exit (0);
                }
-               printf (_
-                       ("\n[Disconnect bypassed -- root login allowed.]\n"));
+               printf (_("\n[Disconnect bypassed -- root login allowed.]\n"));
        }
 }
 #endif                         /* !USE_PAM */
 
+static void check_flags (int argc, char *const *argv)
+{
+       int arg;
+
+       /*
+        * Check the flags for proper form. Every argument starting with
+        * "-" must be exactly two characters long. This closes all the
+        * clever rlogin, telnet, and getty holes.
+        */
+       for (arg = 1; arg < argc; arg++) {
+               if (argv[arg][0] == '-' && strlen (argv[arg]) > 2)
+                       usage ();
+       }
+}
+
+
 static void init_env (void)
 {
        char *cp, *tmp;
@@ -359,8 +294,7 @@ static void init_env (void)
 
 static RETSIGTYPE alarm_handler (int sig)
 {
-       fprintf (stderr, _("\nLogin timed out after %d seconds.\n"),
-                timeout);
+       fprintf (stderr, _("\nLogin timed out after %d seconds.\n"), timeout);
        exit (0);
 }
 
@@ -417,22 +351,6 @@ int main (int argc, char **argv)
 #if defined(SHADOWPWD) && !defined(USE_PAM)
        struct spwd *spwd = NULL;
 #endif
-#ifdef RADIUS
-       RAD_USER_DATA rad_user_data;
-       int is_rad_login;
-#endif
-#if defined(RADIUS) || defined(DES_RPC) || defined(KERBEROS)
-       /* from pwauth.c */
-       extern char *clear_pass;
-       extern int wipe_clear_pass;
-
-       /*
-        * We may need the password later, don't want pw_auth() to wipe it
-        * (we do it ourselves when it is no longer needed).  --marekm
-        */
-       wipe_clear_pass = 0;
-#endif
-
        /*
         * Some quick initialization.
         */
@@ -541,8 +459,7 @@ int main (int argc, char **argv)
                 * be unknown, etc.).  --marekm
                 */
                if ((he = gethostbyname (hostname))) {
-                       utent.ut_addr =
-                           *((int32_t *) (he->h_addr_list[0]));
+                       utent.ut_addr = *((int32_t *) (he->h_addr_list[0]));
 #endif
 #ifdef UT_HOST
                        strncpy (utent.ut_host, hostname,
@@ -645,8 +562,7 @@ int main (int argc, char **argv)
 
                if (*cp)
                        snprintf (fromhost, sizeof fromhost,
-                                 _(" on `%.100s' from `%.200s'"), tty,
-                                 cp);
+                                 _(" on `%.100s' from `%.200s'"), tty, cp);
                else
                        snprintf (fromhost, sizeof fromhost,
                                  _(" on `%.100s'"), tty);
@@ -698,12 +614,10 @@ int main (int argc, char **argv)
                                          "%s login: ", hostn);
                        else
                                snprintf (login_prompt,
-                                         sizeof (login_prompt),
-                                         "login: ");
+                                         sizeof (login_prompt), "login: ");
 
                        retcode =
-                           pam_set_item (pamh, PAM_USER_PROMPT,
-                                         login_prompt);
+                           pam_set_item (pamh, PAM_USER_PROMPT, login_prompt);
                        PAM_FAIL_CHECK;
 
                        /* if we didn't get a user on the command line,
@@ -751,14 +665,12 @@ int main (int argc, char **argv)
                                                "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s",
                                                failcount, hostname,
                                                pam_user,
-                                               pam_strerror (pamh,
-                                                             retcode));
+                                               pam_strerror (pamh, retcode));
                                else
                                        syslog (LOG_NOTICE,
                                                "FAILED LOGIN SESSION FROM %s FOR %s, %s",
                                                hostname, pam_user,
-                                               pam_strerror (pamh,
-                                                             retcode));
+                                               pam_strerror (pamh, retcode));
 
                                fprintf (stderr, "\nLogin incorrect\n");
                                pam_end (pamh, retcode);
@@ -780,13 +692,12 @@ int main (int argc, char **argv)
                   First get the username that we are actually using, though.
                 */
                retcode =
-                   pam_get_item (pamh, PAM_USER,
-                                 (const void **) &pam_user);
+                   pam_get_item (pamh, PAM_USER, (const void **) &pam_user);
                setpwent ();
                pwd = getpwnam (pam_user);
 
                if (fflg) {
-                       retcode = pam_acct_mgmt(pamh, 0);
+                       retcode = pam_acct_mgmt (pamh, 0);
                        PAM_FAIL_CHECK;
                }
 
@@ -802,29 +713,16 @@ int main (int argc, char **argv)
 #else                          /* ! USE_PAM */
                while (1) {     /* repeatedly get login/password pairs */
                        failed = 0;     /* haven't failed authentication yet */
-#ifdef RADIUS
-                       is_rad_login = 0;
-#endif
-               if (!username[0]) {     /* need to get a login id */
-                       if (subroot) {
-                               closelog ();
-                               exit (1);
+                       if (!username[0]) {     /* need to get a login id */
+                               if (subroot) {
+                                       closelog ();
+                                       exit (1);
+                               }
+                               preauth_flag = 0;
+                               login_prompt (_("\n%s login: "), username,
+                                             sizeof username);
+                               continue;
                        }
-                       preauth_flag = 0;
-#ifndef LOGIN_PROMPT
-#ifdef __linux__               /* hostname login: - like in util-linux login */
-                       login_prompt (_("\n%s login: "), username,
-                                     sizeof username);
-#else
-                       login_prompt (_("login: "), username,
-                                     sizeof username);
-#endif
-#else
-                       login_prompt (LOGIN_PROMPT, username,
-                                     sizeof username);
-#endif
-                       continue;
-               }
 #endif                         /* ! USE_PAM */
 
 #ifdef USE_PAM
@@ -846,9 +744,7 @@ int main (int argc, char **argv)
 #ifndef USE_PAM
 #ifdef SHADOWPWD
                spwd = NULL;
-               if (pwd
-                   && strcmp (pwd->pw_passwd,
-                              SHADOW_PASSWD_STRING) == 0) {
+               if (pwd && strcmp (pwd->pw_passwd, SHADOW_PASSWD_STRING) == 0) {
                        spwd = getspnam (username);
                        if (spwd)
                                pwent.pw_passwd = spwd->sp_pwdp;
@@ -864,8 +760,7 @@ int main (int argc, char **argv)
                 * is locked and the user cannot login, even if they have
                 * been "pre-authenticated."
                 */
-               if (pwent.pw_passwd[0] == '!'
-                   || pwent.pw_passwd[0] == '*')
+               if (pwent.pw_passwd[0] == '!' || pwent.pw_passwd[0] == '*')
                        failed = 1;
 
                /*
@@ -876,30 +771,9 @@ int main (int argc, char **argv)
                        goto auth_ok;
 
                if (pw_auth
-                   (pwent.pw_passwd, username, reason,
-                    (char *) 0) == 0)
+                   (pwent.pw_passwd, username, reason, (char *) 0) == 0)
                        goto auth_ok;
 
-#ifdef RADIUS
-               /*
-                * If normal passwd authentication didn't work, try radius.
-                */
-
-               if (failed) {
-                       pwd =
-                           rad_authenticate (&rad_user_data,
-                                             username,
-                                             clear_pass ?
-                                             clear_pass : "");
-                       if (pwd) {
-                               is_rad_login = 1;
-                               pwent = *pwd;
-                               failed = 0;
-                               goto auth_ok;
-                       }
-               }
-#endif                         /* RADIUS */
-
                /*
                 * Don't log unknown usernames - I mistyped the password for
                 * username at least once. Should probably use LOG_AUTHPRIV
@@ -918,32 +792,20 @@ int main (int argc, char **argv)
                 * authenticated and so on.
                 */
 
-#if defined(RADIUS) && !(defined(DES_RPC) || defined(KERBEROS))
-               if (clear_pass) {
-                       strzero (clear_pass);
-                       clear_pass = NULL;
-               }
-#endif
-
                if (!failed && pwent.pw_name && pwent.pw_uid == 0
                    && !is_console) {
-                       SYSLOG ((LOG_CRIT, "ILLEGAL ROOT LOGIN %s",
-                                fromhost));
+                       SYSLOG ((LOG_CRIT, "ILLEGAL ROOT LOGIN %s", fromhost));
                        failed = 1;
                }
-#ifdef LOGIN_ACCESS
                if (!failed
-                   && !login_access (username,
-                     *hostname ? hostname : tty))
-               {
-                       SYSLOG ((LOG_WARN, "LOGIN `%s' REFUSED %s", username,
-                                fromhost));
+                   && !login_access (username, *hostname ? hostname : tty)) {
+                       SYSLOG ((LOG_WARN, "LOGIN `%s' REFUSED %s",
+                                username, fromhost));
                        failed = 1;
                }
-#endif
                if (pwd && getdef_bool ("FAILLOG_ENAB") &&
                    !failcheck (pwent.pw_uid, &faillog, failed)) {
-                       SYSLOG ((LOG_CRIT, 
+                       SYSLOG ((LOG_CRIT,
                                 "exceeded failure limit for `%s' %s",
                                 username, fromhost));
                        failed = 1;
@@ -960,14 +822,15 @@ int main (int argc, char **argv)
 #if HAVE_UTMPX_H
                        failent = utxent;
                        if (sizeof (failent.ut_tv) == sizeof (struct timeval))
-                         gettimeofday ((struct timeval *) &failent.ut_tv, NULL);
-                       else
-                         {
+                               gettimeofday ((struct timeval *)
+                                             &failent.ut_tv, NULL);
+                       else {
                                struct timeval tv;
+
                                gettimeofday (&tv, NULL);
                                failent.ut_tv.tv_sec = tv.tv_sec;
                                failent.ut_tv.tv_usec = tv.tv_usec;
-                         }
+                       }
 #else
                        failent = utent;
                        failent.ut_time = time (NULL);
@@ -975,8 +838,7 @@ int main (int argc, char **argv)
                        if (pwd) {
                                failent_user = pwent.pw_name;
                        } else {
-                               if (getdef_bool
-                                   ("LOG_UNKFAIL_ENAB"))
+                               if (getdef_bool ("LOG_UNKFAIL_ENAB"))
                                        failent_user = username;
                                else
                                        failent_user = "UNKNOWN";
@@ -1003,8 +865,7 @@ int main (int argc, char **argv)
                 */
 
                if (pwent.pw_passwd[0] == '\0')
-                       pw_auth ("!", username, reason,
-                                (char *) 0);
+                       pw_auth ("!", username, reason, (char *) 0);
 #endif
                /*
                 * Wait a while (a la SVR4 /usr/bin/login) before attempting
@@ -1022,9 +883,9 @@ int main (int argc, char **argv)
                        closelog ();
                        exit (1);
                }
-       }               /* while (1) */
+       }                       /* while (1) */
 #endif                         /* ! USE_PAM */
-       alarm (0);      /* turn off alarm clock */
+       alarm (0);              /* turn off alarm clock */
 #ifndef USE_PAM                        /* PAM does this */
        /*
         * porttime checks moved here, after the user has been
@@ -1067,8 +928,7 @@ int main (int argc, char **argv)
        }
 #ifndef USE_PAM                        /* pam_lastlog handles this */
        if (getdef_bool ("LASTLOG_ENAB"))       /* give last login and log this one */
-               dolastlog (&lastlog, &pwent, utent.ut_line,
-                          hostname);
+               dolastlog (&lastlog, &pwent, utent.ut_line, hostname);
 #endif
 
 #ifndef USE_PAM                        /* PAM handles this as well */
@@ -1079,7 +939,7 @@ int main (int argc, char **argv)
         * program.  --marekm
         */
 #ifdef SHADOWPWD
-       if (spwd) {     /* check for age of password */
+       if (spwd) {             /* check for age of password */
                if (expire (&pwent, spwd)) {
                        pwd = getpwnam (username);
                        spwd = getspnam (username);
@@ -1088,59 +948,10 @@ int main (int argc, char **argv)
                }
        }
 #endif                         /* SHADOWPWD */
-
-#ifdef RADIUS
-       if (is_rad_login) {
-               char whofilename[128];
-               FILE *whofile;
-
-               snprintf (whofilename, sizeof whofilename,
-                         "/var/log/radacct/%.20s", tty);
-               whofile = fopen (whofilename, "w");
-               if (whofile) {
-                       fprintf (whofile, "%s\n", username);
-                       fclose (whofile);
-               }
-       }
-#endif
        setup_limits (&pwent);  /* nice, ulimit etc. */
 #endif                         /* ! USE_PAM */
        chown_tty (tty, &pwent);
 
-#ifdef LOGIN_FBTAB
-       /*
-        * XXX - not supported yet. Change permissions and ownerships of
-        * devices like floppy/audio/mouse etc. for console logins, based
-        * on /etc/fbtab or /etc/logindevperm configuration files (Suns do
-        * this with their framebuffer devices). Problems:
-        *
-        * - most systems (except BSD) don't have that nice revoke() system
-        *   call to ensure the previous user didn't leave a process holding
-        *   one of these devices open or mmap'ed. Any volunteers to do it
-        *   in Linux?
-        *
-        * - what to do with different users logged in on different virtual
-        *   consoles?  Maybe permissions should be changed only on user's
-        *   request, by running a separate (setuid root) program?
-        *
-        * - init/telnetd/rlogind/whatever should restore permissions after
-        *   the user logs out.
-        *
-        * Try the new CONSOLE_GROUPS feature instead. It adds specified
-        * groups (like "floppy") to the group set if the user is logged in
-        * on the console. This still has the first problem (users leaving
-        * processes with these devices open), but doesn't need to change
-        * any permissions, just make them 0660 root:floppy etc.  --marekm
-        *
-        * Warning: users can still gain permanent access to these groups
-        * unless any user-writable filesystems are mounted with the
-        * "nosuid" option. Alternatively, the kernel could be modified to
-        * prevent ordinary users from setting the setgid bit on
-        * executables.
-        */
-       login_fbtab (tty, pwent.pw_uid, pwent.pw_gid);
-#endif
-
        /* We call set_groups() above because this clobbers pam_groups.so */
 #ifndef USE_PAM
        if (setup_uid_gid (&pwent, is_console))
@@ -1149,19 +960,6 @@ int main (int argc, char **argv)
 #endif
                exit (1);
 
-#ifdef KERBEROS
-       if (clear_pass)
-               login_kerberos (username, clear_pass);
-#endif
-#ifdef DES_RPC
-       if (clear_pass)
-               login_desrpc (clear_pass);
-#endif
-#if defined(DES_RPC) || defined(KERBEROS)
-       if (clear_pass)
-               strzero (clear_pass);
-#endif
-
        setup_env (&pwent);     /* set env vars, cd to the home dir */
 
 #ifdef USE_PAM
@@ -1198,13 +996,13 @@ int main (int argc, char **argv)
                                      ("Warning: login re-enabled after temporary lockout.\n"));
                                SYSLOG ((LOG_WARN,
                                         "login `%s' re-enabled after temporary lockout (%d failures)",
-                                        username,
-                                        (int) faillog.fail_cnt));
+                                        username, (int) faillog.fail_cnt));
                        }
                }
                if (getdef_bool ("LASTLOG_ENAB")
                    && lastlog.ll_time != 0) {
                        time_t ll_time = lastlog.ll_time;
+
 #ifdef HAVE_STRFTIME
                        strftime (ptime, sizeof (ptime),
                                  "%a %b %e %H:%M:%S %z %Y",
@@ -1213,8 +1011,7 @@ int main (int argc, char **argv)
                                ptime, lastlog.ll_line);
 #else
                        printf (_("Last login: %.19s on %s"),
-                               ctime (&ll_time),
-                               lastlog.ll_line);
+                               ctime (&ll_time), lastlog.ll_line);
 #endif
 #ifdef HAVE_LL_HOST            /* __linux__ || SUN4 */
                        if (lastlog.ll_host[0])
@@ -1235,8 +1032,7 @@ int main (int argc, char **argv)
        } else
                addenv ("HUSHLOGIN=TRUE", NULL);
 
-       if (getdef_str ("TTYTYPE_FILE") != NULL
-           && getenv ("TERM") == NULL)
+       if (getdef_str ("TTYTYPE_FILE") != NULL && getenv ("TERM") == NULL)
                ttytype (tty);
 
        signal (SIGQUIT, SIG_DFL);      /* default quit signal */
@@ -1280,26 +1076,19 @@ int main (int argc, char **argv)
 #endif
        signal (SIGINT, SIG_DFL);       /* default interrupt signal */
 
-       endpwent ();    /* stop access to password file */
-       endgrent ();    /* stop access to group file */
+       endpwent ();            /* stop access to password file */
+       endgrent ();            /* stop access to group file */
 #ifdef SHADOWPWD
-       endspent ();    /* stop access to shadow passwd file */
+       endspent ();            /* stop access to shadow passwd file */
 #endif
 #ifdef SHADOWGRP
-       endsgent ();    /* stop access to shadow group file */
+       endsgent ();            /* stop access to shadow group file */
 #endif
        if (pwent.pw_uid == 0)
                SYSLOG ((LOG_NOTICE, "ROOT LOGIN %s", fromhost));
        else if (getdef_bool ("LOG_OK_LOGINS"))
                SYSLOG ((LOG_INFO, "`%s' logged in %s", username, fromhost));
        closelog ();
-#ifdef RADIUS
-       if (is_rad_login) {
-               printf (_("Starting rad_login\n"));
-               rad_login (&rad_user_data);
-               exit (0);
-       }
-#endif
        if ((tmp = getdef_str ("FAKE_SHELL")) != NULL) {
                shell (tmp, pwent.pw_shell);    /* fake shell */
        }
similarity index 95%
rename from libmisc/login_access.c
rename to src/login_nopam.c
index 8c26ada7356740c47fb40e4e8ed3ac07d05f957e..8f124fb20c2ee0d33f9b569de07615f4b1effd7b 100644 (file)
@@ -21,9 +21,9 @@
 #include <config.h>
 #endif
 
-#ifdef LOGIN_ACCESS
+#ifndef USE_PAM
 #include "rcsid.h"
-RCSID ("$Id: login_access.c,v 1.9 2003/05/05 21:44:15 kloczek Exp $")
+RCSID ("$Id: login_nopam.c,v 1.3 2005/04/17 15:38:56 kloczek Exp $")
 #include "prototypes.h"
     /*
      * This module implements a simple but effective form of login access
@@ -154,8 +154,7 @@ static int list_match (char *list, const char *item, int (*match_fn) ())
         * the match is affected by any exceptions.
         */
 
-       for (tok = strtok (list, sep); tok != 0;
-            tok = strtok ((char *) 0, sep)) {
+       for (tok = strtok (list, sep); tok != 0; tok = strtok ((char *) 0, sep)) {
                if (strcasecmp (tok, "EXCEPT") == 0)    /* EXCEPT: give up */
                        break;
                if ((match = (*match_fn) (tok, item)))  /* YES */
@@ -167,8 +166,7 @@ static int list_match (char *list, const char *item, int (*match_fn) ())
                while ((tok = strtok ((char *) 0, sep))
                       && strcasecmp (tok, "EXCEPT"))
                        /* VOID */ ;
-               if (tok == 0
-                   || list_match ((char *) 0, item, match_fn) == NO)
+               if (tok == 0 || list_match ((char *) 0, item, match_fn) == NO)
                        return (match);
        }
        return (NO);
@@ -262,8 +260,7 @@ char *string;
 
        hp = gethostbyname (string);
        if (hp)
-               return
-                   inet_ntoa (*((struct in_addr *) *(hp->h_addr_list)));
+               return inet_ntoa (*((struct in_addr *) *(hp->h_addr_list)));
 
        syslog (LOG_ERR, "%s - unknown host", string);
        return string;
@@ -297,8 +294,7 @@ static int from_match (const char *tok, const char *string)
                if (strchr (string, '.') == 0)
                        return (YES);
        } else if (tok[(tok_len = strlen (tok)) - 1] == '.'     /* network */
-                  && strncmp (tok, resolve_hostname (string),
-                              tok_len) == 0) {
+                  && strncmp (tok, resolve_hostname (string), tok_len) == 0) {
                return (YES);
        }
        return (NO);
@@ -321,4 +317,5 @@ static int string_match (const char *tok, const char *string)
        }
        return (NO);
 }
-#endif                         /* LOGIN_ACCESS */
+
+#endif                         /* !USE_PAM */
index 62d15322974fd86e61ca5fc26e507d1cc6993cee..d5532d11fc60f80aba75eb9afbd6e3866e445a5a 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: logoutd.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: logoutd.c,v 1.25 2005/03/31 05:14:54 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -249,8 +249,7 @@ int main (int argc, char **argv)
 #define O_NOCTTY 0
 #endif
                        tty_fd =
-                           open (tty_name,
-                                 O_WRONLY | O_NDELAY | O_NOCTTY);
+                           open (tty_name, O_WRONLY | O_NDELAY | O_NOCTTY);
                        if (tty_fd != -1) {
                                send_mesg_to_tty (tty_fd);
                                close (tty_fd);
index b08104f53eda46f41ee0560f1e9e1fe90b5854d5..aa9280c31bdf4eb3c7267ec1b1784f3a76a3e8c5 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: mkpasswd.c,v 1.11 2005/01/17 23:12:05 kloczek Exp $")
+RCSID (PKG_VER "$Id: mkpasswd.c,v 1.12 2005/03/31 05:14:54 kloczek Exp $")
 #include <sys/stat.h>
 #include "prototypes.h"
 #include "defines.h"
@@ -323,7 +323,7 @@ int main (int argc, char **argv)
 #ifdef SHADOWPWD
                        if (sflg && pflg)
                                printf (_
-                                       ("adding record for name %s\n"), 
+                                       ("adding record for name %s\n"),
                                        shadow->sp_namp);
 #endif
                        if (!sflg && gflg)
@@ -373,8 +373,7 @@ int main (int argc, char **argv)
         */
 
        if (vflg)
-               printf (_("added %d entries, longest was %d\n"), cnt,
-                       longest);
+               printf (_("added %d entries, longest was %d\n"), cnt, longest);
 
        exit (errors);
  /*NOTREACHED*/}
@@ -387,8 +386,7 @@ static void usage (void)
 {
 #ifdef SHADOWPWD
 #ifdef SHADOWGRP
-       fprintf (stderr, _("Usage: %s [-vf] [-p|g|sp|sg] file\n"),
-                Progname);
+       fprintf (stderr, _("Usage: %s [-vf] [-p|g|sp|sg] file\n"), Progname);
 #else                          /* !SHADOWGRP */
        fprintf (stderr, _("Usage: %s [-vf] [-p|g|sp] file\n"), Progname);
 #endif                         /* SHADOWGRP */
index 8d63ac9d809f4269a61cee65ad45de21ca0600ee..95dbca75deab4fb0357398b198c58beda7588261 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: newgrp.c,v 1.26 2003/07/29 06:16:04 kloczek Exp $")
+RCSID (PKG_VER "$Id: newgrp.c,v 1.27 2005/03/31 05:14:54 kloczek Exp $")
 #include <stdio.h>
 #include <errno.h>
 #include <grp.h>
@@ -153,8 +153,7 @@ int main (int argc, char **argv)
         *      sg [-] groupid [[-c command]
         */
 
-       if (argc > 0
-           && (!strcmp (argv[0], "-") || !strcmp (argv[0], "-l"))) {
+       if (argc > 0 && (!strcmp (argv[0], "-") || !strcmp (argv[0], "-l"))) {
                argc--;
                argv++;
                initflag = 1;
@@ -232,8 +231,7 @@ int main (int argc, char **argv)
        /* don't use getgroups(0, 0) - it doesn't work on some systems */
        i = 16;
        for (;;) {
-               grouplist =
-                   (GETGROUPS_T *) xmalloc (i * sizeof (GETGROUPS_T));
+               grouplist = (GETGROUPS_T *) xmalloc (i * sizeof (GETGROUPS_T));
                ngroups = getgroups (i, grouplist);
                if (i > ngroups && !(ngroups == -1 && errno == EINVAL))
                        break;
@@ -578,7 +576,7 @@ int main (int argc, char **argv)
 
        shell (prog, initflag ? (char *) 0 : cp);
        /* NOTREACHED */
-failure:
+      failure:
 
        /*
         * The previous code, when run as newgrp, re-exec'ed the shell in
index 1ae603bc31b85bc110ba0de7c8a0a3e7f7f5784a..a9487bd4ecb307dc0f7595270d72f19c6c0d9965 100644 (file)
@@ -36,7 +36,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: newusers.c,v 1.19 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: newusers.c,v 1.21 2005/03/31 05:14:54 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "prototypes.h"
@@ -104,10 +104,8 @@ static int add_group (const char *name, const char *gid, gid_t * ngid)
                        if (strcmp (grent.gr_mem[i], name) == 0)
                                return 0;
 
-               grent.gr_mem =
-                   (char **) xmalloc (sizeof (char *) * (i + 2));
-               memcpy (grent.gr_mem, grp->gr_mem,
-                       sizeof (char *) * (i + 2));
+               grent.gr_mem = (char **) xmalloc (sizeof (char *) * (i + 2));
+               memcpy (grent.gr_mem, grp->gr_mem, sizeof (char *) * (i + 2));
                grent.gr_mem[i] = xstrdup (name);
                grent.gr_mem[i + 1] = (char *) 0;
 
@@ -188,8 +186,7 @@ static int add_group (const char *name, const char *gid, gid_t * ngid)
  * add_user - create a new user ID
  */
 
-static int
-add_user (const char *name, const char *uid, uid_t * nuid, gid_t gid)
+static int add_user (const char *name, const char *uid, uid_t * nuid, gid_t gid)
 {
        const struct passwd *pwd;
        struct passwd pwent;
@@ -343,8 +340,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("newusers", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("newusers", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -362,16 +358,14 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 #endif                         /* USE_PAM */
 
        if (argc == 2) {
                if (!freopen (argv[1], "r", stdin)) {
-                       snprintf (buf, sizeof buf, "%s: %s", Prog,
-                                 argv[1]);
+                       snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
                        perror (buf);
                        exit (1);
                }
@@ -397,8 +391,7 @@ int main (int argc, char **argv)
 #endif
        {
                fprintf (stderr,
-                        _("%s: can't lock files, try again later\n"),
-                        Prog);
+                        _("%s: can't lock files, try again later\n"), Prog);
                (void) pw_unlock ();
 #ifdef SHADOWPWD
                if (is_shadow)
@@ -531,13 +524,12 @@ int main (int argc, char **argv)
 
                if (newpw.pw_dir[0] && access (newpw.pw_dir, F_OK)) {
                        if (mkdir (newpw.pw_dir,
-                                  0777 & ~getdef_num ("UMASK", 077)))
+                                  0777 & ~getdef_num ("UMASK", 022)))
                                fprintf (stderr,
                                         _("%s: line %d: mkdir failed\n"),
                                         Prog, line);
                        else if (chown
-                                (newpw.pw_dir, newpw.pw_uid,
-                                 newpw.pw_gid))
+                                (newpw.pw_dir, newpw.pw_uid, newpw.pw_gid))
                                fprintf (stderr,
                                         _("%s: line %d: chown failed\n"),
                                         Prog, line);
index 40f51e5ebbdc715cc29806bb2263cfdc7d73a1eb..9a6402757ee11ba905315e6ee36fac84824d45f4 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: passwd.c,v 1.31 2005/01/17 23:12:05 kloczek Exp $")
+RCSID (PKG_VER "$Id: passwd.c,v 1.36 2005/04/15 21:23:49 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include <sys/types.h>
@@ -56,6 +56,10 @@ RCSID (PKG_VER "$Id: passwd.c,v 1.31 2005/01/17 23:12:05 kloczek Exp $")
 #include "pwio.h"
 #include "nscd.h"
 #include "getdef.h"
+#ifdef WITH_SELINUX
+#include <selinux/selinux.h>
+#include <selinux/av_permissions.h>
+#endif
 /*
  * exit status values
  */
@@ -77,18 +81,18 @@ static int amroot;          /* The real UID was 0 */
 static int
 #ifdef SHADOWPWD
  eflg = 0,                     /* -e - force password change */
iflg = 0,                     /* -i - set inactive days */
kflg = 0,                     /* -k - change only if expired */
nflg = 0,                     /* -n - set minimum days */
wflg = 0,                     /* -w - set warning days */
xflg = 0,                     /* -x - set maximum days */
-#endif
aflg = 0,                     /* -a - show status for all users */
dflg = 0,                     /* -d - delete password */
lflg = 0,                     /* -l - lock account */
qflg = 0,                     /* -q - quiet mode */
Sflg = 0,                     /* -S - show password status */
uflg = 0;                     /* -u - unlock account */
   iflg = 0,                  /* -i - set inactive days */
   kflg = 0,                  /* -k - change only if expired */
   nflg = 0,                  /* -n - set minimum days */
   wflg = 0,                  /* -w - set warning days */
   xflg = 0,                  /* -x - set maximum days */
+#endif
   aflg = 0,                  /* -a - show status for all users */
   dflg = 0,                  /* -d - delete password */
   lflg = 0,                  /* -l - lock account */
   qflg = 0,                  /* -q - quiet mode */
   Sflg = 0,                  /* -S - show password status */
   uflg = 0;                  /* -u - unlock account */
 
 /*
  * set to 1 if there are any flags which require root privileges,
@@ -114,11 +118,6 @@ static int do_update_pwd = 0;
  * External identifiers
  */
 
-#ifdef NDBM
-extern int sp_dbm_mode;
-extern int pw_dbm_mode;
-#endif
-
 /* local function prototypes */
 static void usage (int);
 
@@ -158,8 +157,7 @@ static void usage (int status)
                         _
                         ("       %s [-x max] [-n min] [-w warn] [-i inact] name\n"),
                         Prog);
-               fprintf (stderr, _("       %s {-l|-u|-d|-S|-e} name\n"),
-                        Prog);
+               fprintf (stderr, _("       %s {-l|-u|-d|-S|-e} name\n"), Prog);
        }
        exit (status);
 }
@@ -261,8 +259,7 @@ Please use a combination of upper and lower case letters and numbers.\n"), getde
                STRFCPY (pass, cp);
                strzero (cp);
 
-               if (!amroot
-                   && (!obscure (orig, pass, pw) || reuse (pass, pw))) {
+               if (!amroot && (!obscure (orig, pass, pw) || reuse (pass, pw))) {
                        printf (_("Try again.\n"));
                        continue;
                }
@@ -283,8 +280,7 @@ Please use a combination of upper and lower case letters and numbers.\n"), getde
                        return -1;
                }
                if (strcmp (cp, pass))
-                       fprintf (stderr,
-                                _("They don't match; try again.\n"));
+                       fprintf (stderr, _("They don't match; try again.\n"));
                else {
                        strzero (cp);
                        break;
@@ -363,8 +359,7 @@ static void check_password (const struct passwd *pw)
                fprintf (stderr,
                         _("The password for %s cannot be changed.\n"),
                         sp->sp_namp);
-               SYSLOG ((LOG_WARN, "password locked for `%s'",
-                        sp->sp_namp));
+               SYSLOG ((LOG_WARN, "password locked for `%s'", sp->sp_namp));
                closelog ();
                exit (E_NOPERM);
        }
@@ -381,8 +376,7 @@ static void check_password (const struct passwd *pw)
                fprintf (stderr,
                         _("The password for %s cannot be changed.\n"),
                         pw->pw_name);
-               SYSLOG ((LOG_WARN, "password locked for `%s'",
-                        pw->pw_name));
+               SYSLOG ((LOG_WARN, "password locked for `%s'", pw->pw_name));
                closelog ();
                exit (E_NOPERM);
        }
@@ -395,8 +389,7 @@ static void check_password (const struct passwd *pw)
                         _
                         ("Sorry, the password for %s cannot be changed yet.\n"),
                         pw->pw_name);
-               SYSLOG ((LOG_WARN, "now < minimum age for `%s'",
-                        pw->pw_name));
+               SYSLOG ((LOG_WARN, "now < minimum age for `%s'", pw->pw_name));
                closelog ();
                exit (E_NOPERM);
        }
@@ -532,23 +525,12 @@ static void update_noshadow (void)
                oom ();
        npw->pw_passwd = update_crypt_pw (npw->pw_passwd);
        if (!pw_update (npw)) {
-               fprintf (stderr,
-                        _("Error updating the password entry.\n"));
+               fprintf (stderr, _("Error updating the password entry.\n"));
                SYSLOG ((LOG_ERR, "error updating password entry"));
                fail_exit (E_FAILURE);
        }
-#ifdef NDBM
-       if (pw_dbm_present () && !pw_dbm_update (npw)) {
-               fprintf (stderr,
-                        _("Error updating the DBM password entry.\n"));
-               SYSLOG ((LOG_ERR, "error updaring dbm password entry"));
-               fail_exit (E_FAILURE);
-       }
-       endpwent ();
-#endif
        if (!pw_close ()) {
-               fprintf (stderr,
-                        _("Cannot commit password file changes.\n"));
+               fprintf (stderr, _("Cannot commit password file changes.\n"));
                SYSLOG ((LOG_ERR, "can't rewrite password file"));
                fail_exit (E_FAILURE);
        }
@@ -604,23 +586,12 @@ static void update_shadow (void)
                nsp->sp_lstchg = 0;
 
        if (!spw_update (nsp)) {
-               fprintf (stderr,
-                        _("Error updating the password entry.\n"));
+               fprintf (stderr, _("Error updating the password entry.\n"));
                SYSLOG ((LOG_ERR, "error updating password entry"));
                fail_exit (E_FAILURE);
        }
-#ifdef NDBM
-       if (sp_dbm_present () && !sp_dbm_update (nsp)) {
-               fprintf (stderr,
-                        _("Error updating the DBM password entry.\n"));
-               SYSLOG ((LOG_ERR, "error updaring dbm password entry"));
-               fail_exit (E_FAILURE);
-       }
-       endspent ();
-#endif
        if (!spw_close ()) {
-               fprintf (stderr,
-                        _("Cannot commit password file changes.\n"));
+               fprintf (stderr, _("Cannot commit password file changes.\n"));
                SYSLOG ((LOG_ERR, "can't rewrite password file"));
                fail_exit (E_FAILURE);
        }
@@ -831,8 +802,7 @@ int main (int argc, char **argv)
        pw = get_my_pwent ();
        if (!pw) {
                fprintf (stderr,
-                        _("%s: Cannot determine your user name.\n"),
-                        Prog);
+                        _("%s: Cannot determine your user name.\n"), Prog);
                exit (E_NOPERM);
        }
        myname = xstrdup (pw->pw_name);
@@ -850,8 +820,7 @@ int main (int argc, char **argv)
                if (anyflag || !Sflg || (optind < argc))
                        usage (E_USAGE);
                if (!amroot) {
-                       fprintf (stderr, _("%s: permission denied.\n"),
-                                Prog);
+                       fprintf (stderr, _("%s: permission denied.\n"), Prog);
                        exit (E_NOPERM);
                }
                setpwent ();
@@ -890,30 +859,33 @@ int main (int argc, char **argv)
                fprintf (stderr, _("%s: permission denied.\n"), Prog);
                exit (E_NOPERM);
        }
-#ifdef NDBM
-       endpwent ();
-       pw_dbm_mode = O_RDWR;
-#ifdef SHADOWPWD
-       sp_dbm_mode = O_RDWR;
-#endif
-#endif
 
        pw = getpwnam (name);
        if (!pw) {
                fprintf (stderr, _("%s: unknown user %s\n"), Prog, name);
                exit (E_NOPERM);
        }
-
+#ifdef WITH_SELINUX
        /*
-        * Now I have a name, let's see if the UID for the name matches the
-        * current real UID.
+        * If the UID of the user does not match the current real UID,
+        * check if the change is allowed by SELinux policy.
+        */
+       if ((pw->pw_uid != getuid ())
+           && (checkPasswdAccess (PASSWD__PASSWD) != 0)) {
+#else
+       /*
+        * If the UID of the user does not match the current real UID,
+        * check if I'm root.
         */
-
        if (!amroot && pw->pw_uid != getuid ()) {
+#endif
                fprintf (stderr,
-                        _("You may not change the password for %s.\n"),
-                        name);
-               SYSLOG ((LOG_WARN, "can't change pwd for `%s'", name));
+                        _
+                        ("%s: You may not view or modify password information for %s.\n"),
+                        Prog, name);
+               SYSLOG ((LOG_WARN,
+                        "%s: can't view or modify password information for %s",
+                        Prog, name));
                closelog ();
                exit (E_NOPERM);
        }
@@ -1009,8 +981,7 @@ int main (int argc, char **argv)
        nscd_flush_cache ("shadow");
 #endif
 
-       SYSLOG ((LOG_INFO, "password for `%s' changed by `%s'", name,
-                myname));
+       SYSLOG ((LOG_INFO, "password for `%s' changed by `%s'", name, myname));
        closelog ();
        if (!qflg)
                printf (_("Password changed.\n"));
index 57bc1624c268b27df95bbaf5816af8351d1d216c..9284483d45a30b96c7d38c0d10369a448ce44624 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: pwck.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: pwck.c,v 1.26 2005/04/06 04:26:06 kloczek Exp $")
 #include <stdio.h>
 #include <fcntl.h>
 #include <grp.h>
@@ -172,8 +172,7 @@ int main (int argc, char **argv)
        }
 
        if (sort_mode && read_only) {
-               fprintf (stderr, _("%s: -s and -r are incompatibile\n"),
-                        Prog);
+               fprintf (stderr, _("%s: -s and -r are incompatibile\n"), Prog);
                exit (E_USAGE);
        }
 
@@ -215,8 +214,7 @@ int main (int argc, char **argv)
                        fprintf (stderr, _("%s: cannot lock file %s\n"),
                                 Prog, pwd_file);
                        if (optind == argc)
-                               SYSLOG ((LOG_WARN, "cannot lock %s",
-                                        pwd_file));
+                               SYSLOG ((LOG_WARN, "cannot lock %s", pwd_file));
                        closelog ();
                        exit (E_CANTLOCK);
                }
@@ -225,8 +223,7 @@ int main (int argc, char **argv)
                        fprintf (stderr, _("%s: cannot lock file %s\n"),
                                 Prog, spw_file);
                        if (optind == argc)
-                               SYSLOG ((LOG_WARN, "cannot lock %s",
-                                        spw_file));
+                               SYSLOG ((LOG_WARN, "cannot lock %s", spw_file));
                        closelog ();
                        exit (E_CANTLOCK);
                }
@@ -370,8 +367,7 @@ int main (int argc, char **argv)
                 * Check for invalid usernames.  --marekm
                 */
                if (!check_user_name (pwd->pw_name)) {
-                       printf (_("invalid user name '%s'\n"),
-                               pwd->pw_name);
+                       printf (_("invalid user name '%s'\n"), pwd->pw_name);
                        errors++;
                }
 
@@ -606,16 +602,9 @@ int main (int argc, char **argv)
         */
 
        if (errors)
-#ifdef NDBM
-               printf (deleted ?
-                       _
-                       ("%s: the files have been updated; run mkpasswd\n")
-                       : _("%s: no changes\n"), Prog);
-#else
                printf (deleted ?
                        _("%s: the files have been updated\n") :
                        _("%s: no changes\n"), Prog);
-#endif
 
        closelog ();
        exit (errors ? E_BADENTRY : E_OKAY);
index 89ad42cb8c089b89de08165b7ef2648de7c335f2..d713c7d704856107c497ed529c43595e43531006 100644 (file)
@@ -29,7 +29,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: pwconv.c,v 1.15 2003/06/19 18:11:01 kloczek Exp $")
+RCSID (PKG_VER "$Id: pwconv.c,v 1.16 2005/03/31 05:14:54 kloczek Exp $")
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -130,8 +130,7 @@ int main (int argc, char **argv)
                sp = spw_locate (pw->pw_name);
                if (sp) {
                        /* do we need to update this entry? */
-                       if (strcmp (pw->pw_passwd, SHADOW_PASSWD_STRING) ==
-                           0)
+                       if (strcmp (pw->pw_passwd, SHADOW_PASSWD_STRING) == 0)
                                continue;
                        /* update existing shadow entry */
                        spent = *sp;
@@ -168,13 +167,11 @@ int main (int argc, char **argv)
        }
 
        if (!spw_close ()) {
-               fprintf (stderr, _("%s: can't update shadow file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't update shadow file\n"), Prog);
                fail_exit (E_FAILURE);
        }
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: can't update passwd file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't update passwd file\n"), Prog);
                fail_exit (E_FAILURE);
        }
        chmod (PASSWD_FILE "-", 0600);  /* /etc/passwd- (backup file) */
@@ -187,8 +184,7 @@ int main (int argc, char **argv)
 int main (int argc, char **argv)
 {
        fprintf (stderr,
-                "%s: not configured for shadow password support.\n",
-                argv[0]);
+                "%s: not configured for shadow password support.\n", argv[0]);
        exit (1);
 }
 #endif                         /* !SHADOWPWD */
index 1af354cb5b793a372d898d20e01e8ceb3b113661..f179fe54df79c59c8d4815dee828bb58ac9246d3 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: pwunconv.c,v 1.15 2003/06/19 18:11:01 kloczek Exp $")
+RCSID (PKG_VER "$Id: pwunconv.c,v 1.16 2005/03/31 05:14:54 kloczek Exp $")
 #include "defines.h"
 #include <sys/types.h>
 #include <stdio.h>
@@ -129,21 +129,18 @@ int main (int argc, char **argv)
 
        if (!spw_close ()) {
                fprintf (stderr,
-                        _("%s: can't update shadow password file\n"),
-                        Prog);
+                        _("%s: can't update shadow password file\n"), Prog);
                fail_exit (3);
        }
 
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: can't update password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: can't update password file\n"), Prog);
                fail_exit (3);
        }
 
        if (unlink (SHADOW) != 0) {
                fprintf (stderr,
-                        _("%s: can't delete shadow password file\n"),
-                        Prog);
+                        _("%s: can't delete shadow password file\n"), Prog);
                fail_exit (3);
        }
 
@@ -162,8 +159,7 @@ int main (int argc, char **argv)
 int main (int argc, char **argv)
 {
        fprintf (stderr,
-                "%s: not configured for shadow password support.\n",
-                argv[0]);
+                "%s: not configured for shadow password support.\n", argv[0]);
        exit (1);
 }
 #endif                         /* !SHADOWPWD */
index 0584a4ce3a99eb5acf5448bdb889ae2326c2356f..436e9dbd3b082c5c6441133999542a35b62b52c3 100644 (file)
--- a/src/su.c
+++ b/src/su.c
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: su.c,v 1.28 2004/11/09 03:57:36 kloczek Exp $")
+RCSID (PKG_VER "$Id: su.c,v 1.30 2005/04/02 14:09:48 kloczek Exp $")
 #include <sys/types.h>
 #include <stdio.h>
 #ifdef USE_PAM
@@ -111,7 +111,7 @@ static int iswheel (const char *username)
 {
        struct group *grp;
 
-       grp = getgrgid (0);
+       grp = getgrnam ("wheel");;
        if (!grp || !grp->gr_mem)
                return 0;
        return is_on_list (grp->gr_mem, username);
@@ -126,8 +126,7 @@ static void su_failure (const char *tty)
        if (getdef_bool ("SYSLOG_SU_ENAB"))
                SYSLOG ((pwent.pw_uid ? LOG_INFO : LOG_NOTICE,
                         "- %s %s-%s", tty,
-                        oldname[0] ? oldname : "???",
-                        name[0] ? name : "???"));
+                        oldname[0] ? oldname : "???", name[0] ? name : "???"));
        closelog ();
 #endif
        puts (_("Sorry."));
@@ -168,8 +167,7 @@ static void run_shell (const char *shellstr, char *args[], int doshell)
                        exit (exit_status);
                }
        } else if (child == -1) {
-               (void) fprintf (stderr, "%s: Cannot fork user shell\n",
-                               Prog);
+               (void) fprintf (stderr, "%s: Cannot fork user shell\n", Prog);
                SYSLOG ((LOG_WARN, "Cannot execute %s", pwent.pw_shell));
                closelog ();
                exit (1);
@@ -222,8 +220,7 @@ static void run_shell (const char *shellstr, char *args[], int doshell)
        if (ret != PAM_SUCCESS) {
                SYSLOG ((LOG_ERR, "pam_close_session: %s",
                         pam_strerror (pamh, ret)));
-               fprintf (stderr, "%s: %s\n", Prog,
-                        pam_strerror (pamh, ret));
+               fprintf (stderr, "%s: %s\n", Prog, pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                exit (1);
        }
@@ -320,8 +317,7 @@ int main (int argc, char **argv)
                 */
                if (!amroot) {
                        fprintf (stderr,
-                                _("%s: must be run from a terminal\n"),
-                                Prog);
+                                _("%s: must be run from a terminal\n"), Prog);
                        exit (1);
                }
                tty = "???";
@@ -427,13 +423,11 @@ int main (int argc, char **argv)
 
        ret = pam_set_item (pamh, PAM_TTY, (const void *) tty);
        if (ret == PAM_SUCCESS)
-               ret =
-                   pam_set_item (pamh, PAM_RUSER, (const void *) oldname);
+               ret = pam_set_item (pamh, PAM_RUSER, (const void *) oldname);
        if (ret != PAM_SUCCESS) {
                SYSLOG ((LOG_ERR, "pam_set_item: %s",
                         pam_strerror (pamh, ret)));
-               fprintf (stderr, "%s: %s\n", Prog,
-                        pam_strerror (pamh, ret));
+               fprintf (stderr, "%s: %s\n", Prog, pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                exit (1);
        }
@@ -487,8 +481,7 @@ int main (int argc, char **argv)
                if (pwent.pw_uid == 0 && getdef_bool ("SU_WHEEL_ONLY")
                    && !iswheel (oldname)) {
                        fprintf (stderr,
-                                _("You are not authorized to su %s\n"),
-                                name);
+                                _("You are not authorized to su %s\n"), name);
                        exit (1);
                }
 #ifdef SU_ACCESS
@@ -504,8 +497,7 @@ int main (int argc, char **argv)
                        break;
                default:        /* access denied (-1) or unexpected value */
                        fprintf (stderr,
-                                _("You are not authorized to su %s\n"),
-                                name);
+                                _("You are not authorized to su %s\n"), name);
                        exit (1);
                }
 #endif                         /* SU_ACCESS */
@@ -524,8 +516,7 @@ int main (int argc, char **argv)
        if (ret != PAM_SUCCESS) {
                SYSLOG ((LOG_ERR, "pam_authenticate: %s",
                         pam_strerror (pamh, ret)));
-               fprintf (stderr, "%s: %s\n", Prog,
-                        pam_strerror (pamh, ret));
+               fprintf (stderr, "%s: %s\n", Prog, pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                su_failure (tty);
        }
@@ -639,8 +630,7 @@ int main (int argc, char **argv)
 #ifdef USE_SYSLOG
        if (getdef_bool ("SYSLOG_SU_ENAB"))
                SYSLOG ((LOG_INFO, "+ %s %s-%s", tty,
-                        oldname[0] ? oldname : "???",
-                        name[0] ? name : "???"));
+                        oldname[0] ? oldname : "???", name[0] ? name : "???"));
 #endif
 
 #ifdef USE_PAM
@@ -656,10 +646,8 @@ int main (int argc, char **argv)
         */
        ret = pam_setcred (pamh, PAM_ESTABLISH_CRED);
        if (ret != PAM_SUCCESS) {
-               SYSLOG ((LOG_ERR, "pam_setcred: %s",
-                        pam_strerror (pamh, ret)));
-               fprintf (stderr, "%s: %s\n", Prog,
-                        pam_strerror (pamh, ret));
+               SYSLOG ((LOG_ERR, "pam_setcred: %s", pam_strerror (pamh, ret)));
+               fprintf (stderr, "%s: %s\n", Prog, pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                exit (1);
        }
@@ -668,8 +656,7 @@ int main (int argc, char **argv)
        if (ret != PAM_SUCCESS) {
                SYSLOG ((LOG_ERR, "pam_open_session: %s",
                         pam_strerror (pamh, ret)));
-               fprintf (stderr, "%s: %s\n", Prog,
-                        pam_strerror (pamh, ret));
+               fprintf (stderr, "%s: %s\n", Prog, pam_strerror (pamh, ret));
                pam_end (pamh, ret);
                exit (1);
        }
index 56aecd73cc993088d74180fdc6ec816643df2703..13249f087f4f4b5da6fc5bf28f500136a558d0dc 100644 (file)
@@ -101,8 +101,7 @@ int check_su_auth (const char *actual_id, const char *wanted_id)
                                 "DENIED su from `%s' to `%s' (%s)\n",
                                 actual_id, wanted_id, SUAUTHFILE));
                        fprintf (stderr,
-                                _
-                                ("Access to su to that account DENIED.\n"));
+                                _("Access to su to that account DENIED.\n"));
                        fclose (authfile_fd);
                        return DENY;
                } else if (!strcmp (action, "NOPASS")) {
index b011d7bf537600a6cca99cbef5694af4e5532792..f4dfaad175089f10d1acb3c7d0f5e1c388ece1aa 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: sulogin.c,v 1.17 2003/05/12 04:39:17 kloczek Exp $")
+RCSID (PKG_VER "$Id: sulogin.c,v 1.18 2005/03/31 05:14:54 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include "getdef.h"
@@ -159,8 +159,7 @@ static RETSIGTYPE catch (int sig)
 
                        printf (_("No password entry for 'root'\n"));
 #ifdef USE_SYSLOG
-                       syslog (LOG_WARN,
-                               "No password entry for 'root'\n");
+                       syslog (LOG_WARN, "No password entry for 'root'\n");
                        closelog ();
 #endif
                        exit (1);
@@ -187,8 +186,7 @@ static RETSIGTYPE catch (int sig)
 #endif
                        puts ("\n");
 #ifdef TELINIT
-                       execl (PATH_TELINIT, "telinit", RUNLEVEL,
-                              (char *) 0);
+                       execl (PATH_TELINIT, "telinit", RUNLEVEL, (char *) 0);
 #endif
                        exit (0);
                } else {
index fee0dea2589a9d6458ac326a71efd9a58bd64abe..cbc0861e5c54442db84a1aa54a6977cea4f378a4 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: useradd.c,v 1.50 2004/11/09 02:45:43 kloczek Exp $")
+RCSID (PKG_VER "$Id: useradd.c,v 1.55 2005/04/17 00:15:55 kloczek Exp $")
 #include "prototypes.h"
 #include "defines.h"
 #include "chkname.h"
@@ -49,11 +49,7 @@ RCSID (PKG_VER "$Id: useradd.c,v 1.50 2004/11/09 02:45:43 kloczek Exp $")
 #include <pwd.h>
 #endif                         /* USE_PAM */
 #include "pwauth.h"
-#if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
-#endif
 #include "faillog.h"
 #include "nscd.h"
 #ifndef SKEL_DIR
@@ -112,51 +108,25 @@ static char *Prog;
 
 static int
  bflg = 0,                     /* new default root of home directory */
cflg = 0,                     /* comment (GECOS) field for new account */
dflg = 0,                     /* home directory for new account */
Dflg = 0,                     /* set/show new user default values */
eflg = 0,                     /* days since 1970-01-01 when account is locked */
fflg = 0,                     /* days until account with expired password is locked */
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 */
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 */
sflg = 0,                     /* shell program for new account */
uflg = 0;                     /* specify user ID for new account */
   cflg = 0,                  /* comment (GECOS) field for new account */
   dflg = 0,                  /* home directory for new account */
   Dflg = 0,                  /* set/show new user default values */
   eflg = 0,                  /* days since 1970-01-01 when account is locked */
   fflg = 0,                  /* days until account with expired password is locked */
   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 */
   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 */
   sflg = 0,                  /* shell program for new account */
   uflg = 0;                  /* specify user ID for new account */
 
 extern char *optarg;
 extern int optind;
 
-#ifdef NDBM
-extern int pw_dbm_mode;
-
-#ifdef SHADOWPWD
-extern int sp_dbm_mode;
-#endif
-
-extern int gr_dbm_mode;
-
-#ifdef SHADOWGRP
-extern int sg_dbm_mode;
-#endif
-#endif
-
 static int home_added;
 
-#ifdef NDBM
-static int pw_dbm_added;
-static int gr_dbm_added;
-
-#ifdef SHADOWPWD
-static int sp_dbm_added;
-#endif
-#ifdef SHADOWGRP
-static int sg_dbm_added;
-#endif
-#endif                         /* NDBM */
-
 #include "groupio.h"
 
 #ifdef SHADOWGRP
@@ -227,33 +197,10 @@ static void create_mail (void);
 
 static void fail_exit (int code)
 {
-#ifdef NDBM
-       struct passwd pwent;
-
-       if (pw_dbm_added) {
-               pwent.pw_name = user_name;
-               pwent.pw_uid = user_id;
-               pw_dbm_remove (&pwent);
-       }
-       if (gr_dbm_added)
-               fprintf (stderr, _("%s: rebuild the group database\n"),
-                        Prog);
-#ifdef SHADOWPWD
-       if (sp_dbm_added)
-               sp_dbm_remove (user_name);
-#endif
-#ifdef SHADOWGRP
-       if (sg_dbm_added)
-               fprintf (stderr,
-                        _("%s: rebuild the shadow group database\n"),
-                        Prog);
-#endif
-#endif                         /* NDBM */
        if (home_added)
                rmdir (user_home);
 
-       SYSLOG ((LOG_INFO, "failed adding user `%s', data deleted",
-                user_name));
+       SYSLOG ((LOG_INFO, "failed adding user `%s', data deleted", user_name));
        exit (code);
 }
 
@@ -280,8 +227,7 @@ static long get_number (const char *cp)
        if (*cp != '\0' && *ep == '\0') /* valid number */
                return val;
 
-       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog,
-                cp);
+       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog, cp);
        exit (E_BAD_ARG);
 }
 
@@ -294,8 +240,7 @@ static uid_t get_uid (const char *cp)
        if (*cp != '\0' && *ep == '\0') /* valid number */
                return val;
 
-       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog,
-                cp);
+       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog, cp);
        exit (E_BAD_ARG);
 }
 
@@ -342,8 +287,7 @@ static void get_defaults (void)
                 */
 
                if (MATCH (buf, DGROUP)) {
-                       unsigned int val =
-                           (unsigned int) strtoul (cp, &ep, 10);
+                       unsigned int val = (unsigned int) strtoul (cp, &ep, 10);
 
                        if (*cp != '\0' && *ep == '\0') {       /* valid number */
                                def_group = val;
@@ -359,8 +303,7 @@ static void get_defaults (void)
                                def_gname = xstrdup (cp);
                        } else {
                                fprintf (stderr,
-                                        _("%s: unknown group %s\n"), Prog,
-                                        cp);
+                                        _("%s: unknown group %s\n"), Prog, cp);
                        }
                }
 
@@ -498,8 +441,7 @@ static int set_defaults (void)
                        *cp = '\0';
 
                if (!out_group && MATCH (buf, DGROUP)) {
-                       fprintf (ofp, DGROUP "%u\n",
-                                (unsigned int) def_group);
+                       fprintf (ofp, DGROUP "%u\n", (unsigned int) def_group);
                        out_group++;
                } else if (!out_home && MATCH (buf, HOME)) {
                        fprintf (ofp, HOME "%s\n", def_home);
@@ -551,8 +493,7 @@ static int set_defaults (void)
                fprintf (ofp, SKEL "%s\n", def_template);
 
        if (!out_create_mail_spool)
-               fprintf (ofp, CREATE_MAIL_SPOOL "%s\n",
-                        def_create_mail_spool);
+               fprintf (ofp, CREATE_MAIL_SPOOL "%s\n", def_create_mail_spool);
 
        /*
         * Flush and close the file. Check for errors to make certain
@@ -571,8 +512,7 @@ static int set_defaults (void)
 
        snprintf (buf, sizeof buf, "%s-", def_file);
        if (rename (def_file, buf) && errno != ENOENT) {
-               snprintf (buf, sizeof buf, _("%s: rename: %s"), Prog,
-                         def_file);
+               snprintf (buf, sizeof buf, _("%s: rename: %s"), Prog, def_file);
                perror (buf);
                unlink (new_file);
                return -1;
@@ -583,8 +523,7 @@ static int set_defaults (void)
         */
 
        if (rename (new_file, def_file)) {
-               snprintf (buf, sizeof buf, _("%s: rename: %s"), Prog,
-                         new_file);
+               snprintf (buf, sizeof buf, _("%s: rename: %s"), Prog, new_file);
                perror (buf);
                return -1;
        }
@@ -814,13 +753,11 @@ static void grp_update (void)
         */
 
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: error locking group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error locking group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        if (!gr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: error opening group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error opening group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
 #ifdef SHADOWGRP
@@ -869,29 +806,12 @@ static void grp_update (void)
                ngrp->gr_mem = add_list (ngrp->gr_mem, user_name);
                if (!gr_update (ngrp)) {
                        fprintf (stderr,
-                                "%s: error adding new group entry\n",
-                                Prog);
+                                "%s: error adding new group entry\n", Prog);
                        fail_exit (E_GRP_UPDATE);
                }
-#ifdef NDBM
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-
-               if (!gr_dbm_update (ngrp)) {
-                       fprintf (stderr,
-                                "%s: cannot add new dbm group entry\n",
-                                Prog);
-                       fail_exit (E_GRP_UPDATE);
-               } else
-                       gr_dbm_added++;
-#endif
                SYSLOG ((LOG_INFO, "add `%s' to group `%s'",
                         user_name, ngrp->gr_name));
        }
-#ifdef NDBM
-       endgrent ();
-#endif
 
 #ifdef SHADOWGRP
        if (!is_shadow_grp)
@@ -934,29 +854,12 @@ static void grp_update (void)
                nsgrp->sg_mem = add_list (nsgrp->sg_mem, user_name);
                if (!sgr_update (nsgrp)) {
                        fprintf (stderr,
-                                _("%s: error adding new group entry\n"),
-                                Prog);
+                                _("%s: error adding new group entry\n"), Prog);
                        fail_exit (E_GRP_UPDATE);
                }
-#ifdef NDBM
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-
-               if (!sg_dbm_update (nsgrp)) {
-                       fprintf (stderr,
-                                _("%s: cannot add new dbm group entry\n"),
-                                Prog);
-                       fail_exit (E_GRP_UPDATE);
-               } else
-                       sg_dbm_added++;
-#endif                         /* NDBM */
                SYSLOG ((LOG_INFO, "add `%s' to shadow group `%s'",
                         user_name, nsgrp->sg_name));
        }
-#ifdef NDBM
-       endsgent ();
-#endif                         /* NDBM */
 #endif                         /* SHADOWGRP */
 }
 
@@ -1033,8 +936,7 @@ static void find_new_uid (void)
 #endif
                }
                if (user_id == uid_max) {
-                       fprintf (stderr, _("%s: can't get unique uid\n"),
-                                Prog);
+                       fprintf (stderr, _("%s: can't get unique uid\n"), Prog);
                        fail_exit (E_UID_IN_USE);
                }
        }
@@ -1294,23 +1196,20 @@ static void process_flags (int argc, char **argv)
 static void close_files (void)
 {
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow password file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #endif
        if (do_grp_update) {
                if (!gr_close ()) {
                        fprintf (stderr,
-                                _("%s: cannot rewrite group file\n"),
-                                Prog);
+                                _("%s: cannot rewrite group file\n"), Prog);
                        fail_exit (E_GRP_UPDATE);
                }
                gr_unlock ();
@@ -1342,28 +1241,24 @@ static void close_files (void)
 static void open_files (void)
 {
        if (!pw_lock ()) {
-               fprintf (stderr, _("%s: unable to lock password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock password file\n"), Prog);
                exit (E_PW_UPDATE);
        }
        if (!pw_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open password file\n"), Prog);
                pw_unlock ();
                exit (E_PW_UPDATE);
        }
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_lock ()) {
                fprintf (stderr,
-                        _("%s: cannot lock shadow password file\n"),
-                        Prog);
+                        _("%s: cannot lock shadow password file\n"), Prog);
                pw_unlock ();
                exit (E_PW_UPDATE);
        }
        if (is_shadow_pwd && !spw_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: cannot open shadow password file\n"),
-                        Prog);
+                        _("%s: cannot open shadow password file\n"), Prog);
                spw_unlock ();
                pw_unlock ();
                exit (E_PW_UPDATE);
@@ -1459,25 +1354,6 @@ static void usr_update (void)
                         _("%s: error adding new password entry\n"), Prog);
                exit (E_PW_UPDATE);
        }
-#ifdef NDBM
-       /*
-        * Update the DBM files. This creates the user before the flat
-        * files are updated. This is safe before the password field is
-        * either locked, or set to a valid authentication string.
-        */
-
-       if (pw_dbm_present ()) {
-               if (!pw_dbm_update (&pwent)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error updating password dbm entry\n"),
-                                Prog);
-                       exit (E_PW_UPDATE);
-               } else
-                       pw_dbm_added = 1;
-       }
-       endpwent ();
-#endif
 
 #ifdef SHADOWPWD
        /*
@@ -1490,26 +1366,6 @@ static void usr_update (void)
                         Prog);
                exit (E_PW_UPDATE);
        }
-#ifdef NDBM
-       /* 
-        * Update the DBM files for the shadow password. This entry is
-        * output before the entry in the flat file, but this is safe as
-        * the password is locked or the authentication string has the
-        * proper values.
-        */
-
-       if (is_shadow_pwd && sp_dbm_present ()) {
-               if (!sp_dbm_update (&spent)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error updating shadow passwd dbm entry\n"),
-                                Prog);
-                       fail_exit (E_PW_UPDATE);
-               } else
-                       sp_dbm_added++;
-               endspent ();
-       }
-#endif
 #endif                         /* SHADOWPWD */
 
        /*
@@ -1578,7 +1434,7 @@ static void create_mail (void)
                        if (access (ms, R_OK) != 0) {
                                fd = open (ms,
                                           O_CREAT | O_EXCL | O_WRONLY |
-                                          O_TRUNC);
+                                          O_TRUNC, 0);
                                if (fd != -1) {
                                        fchown (fd, user_id, mail_gid);
                                        fchmod (fd, mode);
@@ -1625,21 +1481,21 @@ int main (int argc, char **argv)
        bindtextdomain (PACKAGE, LOCALEDIR);
        textdomain (PACKAGE);
 
-       OPENLOG("useradd");
+       OPENLOG ("useradd");
 
-       sys_ngroups = sysconf(_SC_NGROUPS_MAX);
-       user_groups = malloc((1 + sys_ngroups) * sizeof(char *));
+       sys_ngroups = sysconf (_SC_NGROUPS_MAX);
+       user_groups = malloc ((1 + sys_ngroups) * sizeof (char *));
 
 #ifdef SHADOWPWD
-       is_shadow_pwd = spw_file_present();
+       is_shadow_pwd = spw_file_present ();
 #endif
 #ifdef SHADOWGRP
-       is_shadow_grp = sgr_file_present();
+       is_shadow_grp = sgr_file_present ();
 #endif
 
-       get_defaults();
+       get_defaults ();
 
-       process_flags(argc, argv);
+       process_flags (argc, argv);
 
 #ifdef USE_PAM
        retval = PAM_SUCCESS;
@@ -1650,8 +1506,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("useradd", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("useradd", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -1669,30 +1524,11 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
-
-       OPENLOG("useradd");
 #endif                         /* USE_PAM */
 
-       /*
-        * The open routines for the NDBM files don't use read-write
-        * as the mode, so we have to clue them in.
-        */
-
-#ifdef NDBM
-       pw_dbm_mode = O_RDWR;
-#ifdef SHADOWPWD
-       sp_dbm_mode = O_RDWR;
-#endif
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif
-#endif
-
        /*
         * See if we are messing with the defaults file, or creating
         * a new user.
@@ -1711,8 +1547,7 @@ int main (int argc, char **argv)
         */
 
        if (getpwnam (user_name)) {
-               fprintf (stderr, _("%s: user %s exists\n"), Prog,
-                        user_name);
+               fprintf (stderr, _("%s: user %s exists\n"), Prog, user_name);
                exit (E_NAME_IN_USE);
        }
 
index de41b64efcb7254ef65c3f6fa718f0260f8bd8d6..ca64527bbc9b1c885835b01549eefb215974a8a9 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: userdel.c,v 1.32 2005/01/17 23:12:05 kloczek Exp $")
+RCSID (PKG_VER "$Id: userdel.c,v 1.37 2005/04/06 04:26:06 kloczek Exp $")
 #include <sys/stat.h>
 #include <stdio.h>
 #include <errno.h>
@@ -65,19 +65,6 @@ static char *user_home;
 static char *Prog;
 static int fflg = 0, rflg = 0;
 
-#ifdef NDBM
-extern int pw_dbm_mode;
-
-#ifdef SHADOWPWD
-extern int sp_dbm_mode;
-#endif
-extern int gr_dbm_mode;
-
-#ifdef SHADOWGRP
-extern int sg_dbm_mode;
-#endif
-#endif
-
 #include "groupio.h"
 #include "pwio.h"
 
@@ -110,10 +97,7 @@ static void user_cancel (const char *);
 static int path_prefix (const char *, const char *);
 #endif
 static int is_owner (uid_t, const char *);
-
-#ifndef NO_REMOVE_MAILBOX
 static void remove_mailbox (void);
-#endif
 
 /*
  * usage - display usage message and exit
@@ -173,25 +157,15 @@ static void update_groups (void)
                ngrp->gr_mem = del_list (ngrp->gr_mem, user_name);
                if (!gr_update (ngrp))
                        fprintf (stderr,
-                                _("%s: error updating group entry\n"),
-                                Prog);
+                                _("%s: error updating group entry\n"), Prog);
 
                /*
                 * Update the DBM group file with the new entry as well.
                 */
 
-#ifdef NDBM
-               if (!gr_dbm_update (ngrp))
-                       fprintf (stderr,
-                                _("%s: cannot update dbm group entry\n"),
-                                Prog);
-#endif                         /* NDBM */
                SYSLOG ((LOG_INFO, "delete `%s' from group `%s'\n",
                         user_name, ngrp->gr_name));
        }
-#ifdef NDBM
-       endgrent ();
-#endif
        /*
         * we've removed their name from all the groups above, so
         * now if they have a group with the same name as their
@@ -204,22 +178,9 @@ static void update_groups (void)
 
                gr_remove (grp->gr_name);
 
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-
-#ifdef NDBM
-               if (!gr_dbm_remove (grp))
-                       fprintf (stderr,
-                                _("%s: cannot remove dbm group entry\n"),
-                                Prog);
-#endif
                SYSLOG ((LOG_INFO, "removed group `%s' owned by `%s'\n",
                         grp->gr_name, user_name));
        }
-#ifdef NDBM
-       endgrent ();
-#endif
 #ifdef SHADOWGRP
        if (!is_shadow_grp)
                return;
@@ -250,33 +211,17 @@ static void update_groups (void)
                }
 
                if (was_member)
-                       nsgrp->sg_mem =
-                           del_list (nsgrp->sg_mem, user_name);
+                       nsgrp->sg_mem = del_list (nsgrp->sg_mem, user_name);
 
                if (was_admin)
-                       nsgrp->sg_adm =
-                           del_list (nsgrp->sg_adm, user_name);
+                       nsgrp->sg_adm = del_list (nsgrp->sg_adm, user_name);
 
                if (!sgr_update (nsgrp))
                        fprintf (stderr,
-                                _("%s: error updating group entry\n"),
-                                Prog);
-#ifdef NDBM
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-
-               if (!sg_dbm_update (nsgrp))
-                       fprintf (stderr,
-                                _("%s: cannot update dbm group entry\n"),
-                                Prog);
-#endif                         /* NDBM */
+                                _("%s: error updating group entry\n"), Prog);
                SYSLOG ((LOG_INFO, "delete `%s' from shadow group `%s'\n",
                         user_name, nsgrp->sg_name));
        }
-#ifdef NDBM
-       endsgent ();
-#endif                         /* NDBM */
 #endif                         /* SHADOWGRP */
 }
 
@@ -290,24 +235,20 @@ static void update_groups (void)
 static void close_files (void)
 {
        if (!pw_close ())
-               fprintf (stderr, _("%s: cannot rewrite password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite password file\n"), Prog);
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_close ())
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow password file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow password file\n"), Prog);
 #endif
        if (!gr_close ())
-               fprintf (stderr, _("%s: cannot rewrite group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite group file\n"), Prog);
 
        (void) gr_unlock ();
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_close ())
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow group file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow group file\n"), Prog);
 
        if (is_shadow_grp)
                (void) sgr_unlock ();
@@ -347,32 +288,27 @@ static void fail_exit (int code)
 static void open_files (void)
 {
        if (!pw_lock ()) {
-               fprintf (stderr, _("%s: unable to lock password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock password file\n"), Prog);
                exit (E_PW_UPDATE);
        }
        if (!pw_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_lock ()) {
                fprintf (stderr,
-                        _("%s: cannot lock shadow password file\n"),
-                        Prog);
+                        _("%s: cannot lock shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
        if (is_shadow_pwd && !spw_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: cannot open shadow password file\n"),
-                        Prog);
+                        _("%s: cannot open shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #endif
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: unable to lock group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        if (!gr_open (O_RDWR)) {
@@ -382,8 +318,7 @@ static void open_files (void)
 #ifdef SHADOWGRP
        if (is_shadow_grp && !sgr_lock ()) {
                fprintf (stderr,
-                        _("%s: unable to lock shadow group file\n"),
-                        Prog);
+                        _("%s: unable to lock shadow group file\n"), Prog);
                fail_exit (E_GRP_UPDATE);
        }
        if (is_shadow_grp && !sgr_open (O_RDWR)) {
@@ -409,39 +344,9 @@ static void update_user (void)
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_remove (user_name))
                fprintf (stderr,
-                        _("%s: error deleting shadow password entry\n"),
-                        Prog);
+                        _("%s: error deleting shadow password entry\n"), Prog);
 #endif
-#ifdef NDBM
-       if (pw_dbm_present ()) {
-               if ((pwd = getpwnam (user_name))
-                   && !pw_dbm_remove (pwd))
-                       fprintf (stderr,
-                                _
-                                ("%s: error deleting password dbm entry\n"),
-                                Prog);
-               /*
-                * If the user's UID is a duplicate the duplicated
-                * entry needs to be updated so that a UID match can
-                * be found in the DBM files.
-                */
-               for (pw_rewind (), pwd = pw_next (); pwd; pwd = pw_next ()) {
-                       if (pwd->pw_uid == user_id)
-                               pw_dbm_update (pwd);
-                       break;
-               }
-       }
-}
-}
-
-#ifdef SHADOWPWD
-if (is_shadow_pwd && sp_dbm_present ()
-    && !sp_dbm_remove (user_name))
-       fprintf (stderr, _("%s: error deleting shadow passwd dbm entry\n"), Prog);
-#endif
-endpwent ();
-#endif                         /* NDBM */
-SYSLOG ((LOG_INFO, "delete user `%s'\n", user_name));
+       SYSLOG ((LOG_INFO, "delete user `%s'\n", user_name));
 }
 
 /*
@@ -480,9 +385,7 @@ static void user_busy (const char *name, uid_t uid)
                if (strncmp (utent->ut_user, name, sizeof utent->ut_user))
                        continue;
                fprintf (stderr,
-                        _
-                        ("%s: user %s is currently logged in\n"),
-                        Prog, name);
+                        _("%s: user %s is currently logged in\n"), Prog, name);
                exit (E_USER_BUSY);
        }
 }
@@ -568,7 +471,6 @@ static int is_owner (uid_t uid, const char *path)
        return (st.st_uid == uid);
 }
 
-#ifndef NO_REMOVE_MAILBOX
 static void remove_mailbox (void)
 {
        const char *maildir;
@@ -601,7 +503,6 @@ static void remove_mailbox (void)
                perror (mailfile);
        }
 }
-#endif
 
 #ifdef USE_PAM
 static struct pam_conv conv = {
@@ -654,8 +555,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS)
-               retval = pam_start ("userdel", pampw->pw_name, &conv,
-                                   &pamh);
+               retval = pam_start ("userdel", pampw->pw_name, &conv, &pamh);
 
        if (retval == PAM_SUCCESS) {
                retval = pam_authenticate (pamh, 0);
@@ -670,8 +570,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr,
-                        _("%s: PAM authentication failed\n"), Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (E_PW_UPDATE);
        }
 #endif                         /* USE_PAM */
@@ -684,20 +583,7 @@ int main (int argc, char **argv)
 #ifdef SHADOWGRP
        is_shadow_grp = sgr_file_present ();
 #endif
-       /*
-        * The open routines for the DBM files don't use read-write as the
-        * mode, so we have to clue them in.
-        */
-#ifdef NDBM
-       pw_dbm_mode = O_RDWR;
-#ifdef SHADOWPWD
-       sp_dbm_mode = O_RDWR;
-#endif
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif
-#endif
+
        /*
         * Start with a quick check to see if the user exists.
         */
@@ -718,11 +604,9 @@ int main (int argc, char **argv)
                char *nis_master;
 
                fprintf (stderr,
-                        _("%s: user %s is a NIS user\n"),
-                        Prog, user_name);
+                        _("%s: user %s is a NIS user\n"), Prog, user_name);
                if (!yp_get_default_domain (&nis_domain)
-                   && !yp_master (nis_domain,
-                                  "passwd.byname", &nis_master)) {
+                   && !yp_master (nis_domain, "passwd.byname", &nis_master)) {
                        fprintf (stderr,
                                 _("%s: %s is the NIS master\n"),
                                 Prog, nis_master);
@@ -750,10 +634,8 @@ int main (int argc, char **argv)
        nscd_flush_cache ("shadow");
 #endif
 
-#ifndef NO_REMOVE_MAILBOX
        if (rflg)
                remove_mailbox ();
-#endif
        if (rflg && !fflg && !is_owner (user_id, user_home)) {
                fprintf (stderr,
                         _("%s: %s not owned by %s, not removing\n"),
index 076e266561e7e04aa21149f600a53cf83015c817..3884520c55606d30e9fa08e5bc53652eedab296b 100644 (file)
@@ -30,7 +30,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: usermod.c,v 1.32 2004/10/11 06:26:40 kloczek Exp $")
+RCSID (PKG_VER "$Id: usermod.c,v 1.37 2005/04/17 15:49:01 kloczek Exp $")
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>
@@ -49,11 +49,7 @@ RCSID (PKG_VER "$Id: usermod.c,v 1.32 2004/10/11 06:26:40 kloczek Exp $")
 #include "defines.h"
 #include "chkname.h"
 #include "faillog.h"
-#if HAVE_LASTLOG_H
 #include <lastlog.h>
-#else
-#include "lastlog_.h"
-#endif
 #include "pwauth.h"
 #include "nscd.h"
 #include "getdef.h"
@@ -67,12 +63,12 @@ RCSID (PKG_VER "$Id: usermod.c,v 1.32 2004/10/11 06:26:40 kloczek Exp $")
 #define E_USAGE                2       /* invalid command syntax */
 #define E_BAD_ARG      3       /* invalid argument to option */
 #define E_UID_IN_USE   4       /* uid already in use (and no -o) */
-    /* #define E_BAD_PWFILE    5 *//* passwd file contains errors */
+    /* #define E_BAD_PWFILE     5 *//* passwd file contains errors */
 #define E_NOTFOUND     6       /* specified user/group doesn't exist */
 #define E_USER_BUSY    8       /* user to modify is logged in */
 #define E_NAME_IN_USE  9       /* username already in use */
 #define E_GRP_UPDATE   10      /* can't update group file */
-    /* #define E_NOSPACE       11 *//* insufficient space to move home dir */
+    /* #define E_NOSPACE        11 *//* insufficient space to move home dir */
 #define E_HOMEDIR      12      /* unable to complete home dir move */
 #define        VALID(s)        (strcspn (s, ":\n") == strlen (s))
 static char *user_name;
@@ -98,34 +94,21 @@ static char *Prog;
 
 static int
  uflg = 0,                     /* specify new user ID */
oflg = 0,                     /* permit non-unique user ID to be specified with -u */
gflg = 0,                     /* new primary group ID */
Gflg = 0,                     /* new secondary group set */
dflg = 0,                     /* new home directory */
sflg = 0,                     /* new shell program */
cflg = 0,                     /* new comment (GECOS) field */
mflg = 0,                     /* create user's home directory if it doesn't exist */
   oflg = 0,                  /* permit non-unique user ID to be specified with -u */
   gflg = 0,                  /* new primary group ID */
   Gflg = 0,                  /* new secondary group set */
   dflg = 0,                  /* new home directory */
   sflg = 0,                  /* new shell program */
   cflg = 0,                  /* new comment (GECOS) field */
   mflg = 0,                  /* create user's home directory if it doesn't exist */
 #ifdef SHADOWPWD
- fflg = 0,                     /* days until account with expired password is locked */
- eflg = 0,                     /* days since 1970-01-01 when account becomes expired */
-#endif
- Lflg = 0,                     /* lock the password */
- Uflg = 0,                     /* unlock the password */
- pflg = 0,                     /* new encrypted password */
- lflg = 0;                     /* new user name */
-
-#ifdef NDBM
-extern int pw_dbm_mode;
-
-#ifdef SHADOWPWD
-extern int sp_dbm_mode;
-#endif
-extern int gr_dbm_mode;
-
-#ifdef SHADOWGRP
-extern int sg_dbm_mode;
-#endif
+    fflg = 0,                  /* days until account with expired password is locked */
+    eflg = 0,                  /* days since 1970-01-01 when account becomes expired */
 #endif
+    Lflg = 0,                  /* lock the password */
+    Uflg = 0,                  /* unlock the password */
+    pflg = 0,                  /* new encrypted password */
+    lflg = 0;                  /* new user name */
 
 #ifdef SHADOWPWD
 static int is_shadow_pwd;
@@ -458,14 +441,12 @@ static int update_group (void)
         * entries.
         */
        if (!gr_lock ()) {
-               fprintf (stderr, _("%s: error locking group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error locking group file\n"), Prog);
                SYSLOG ((LOG_ERR, "error locking group file"));
                return -1;
        }
        if (!gr_open (O_RDWR)) {
-               fprintf (stderr, _("%s: error opening group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: error opening group file\n"), Prog);
                SYSLOG ((LOG_ERR, "error opening group file"));
                gr_unlock ();
                return -1;
@@ -530,32 +511,15 @@ static int update_group (void)
                changed = 0;
                if (!gr_update (ngrp)) {
                        fprintf (stderr,
-                                _("%s: error adding new group entry\n"),
-                                Prog);
+                                _("%s: error adding new group entry\n"), Prog);
                        SYSLOG ((LOG_ERR, "error adding group entry"));
                        gr_unlock ();
                        return -1;
                }
-#ifdef NDBM
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-               if (!gr_dbm_update (ngrp)) {
-                       fprintf (stderr,
-                                _("%s: cannot add new dbm group entry\n"),
-                                Prog);
-                       SYSLOG ((LOG_ERR, "error adding dbm group entry"));
-                       gr_unlock ();
-                       return -1;
-               }
-#endif                         /* NDBM */
        }
-#ifdef NDBM
-       endgrent ();
-#endif                         /* NDBM */
+
        if (!gr_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite group file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite group file\n"), Prog);
                gr_unlock ();
                return -1;
        }
@@ -609,8 +573,7 @@ static int update_gshadow (void)
                 * See if the user specified this group as one of their
                 * concurrent groups.
                 */
-               is_member = Gflg
-                   && is_on_list (user_groups, sgrp->sg_name);
+               is_member = Gflg && is_on_list (user_groups, sgrp->sg_name);
 
                if (!was_member && !was_admin && !is_member)
                        continue;
@@ -626,10 +589,8 @@ static int update_gshadow (void)
                }
 
                if (was_admin && lflg) {
-                       nsgrp->sg_adm =
-                           del_list (nsgrp->sg_adm, user_name);
-                       nsgrp->sg_adm =
-                           add_list (nsgrp->sg_adm, user_newname);
+                       nsgrp->sg_adm = del_list (nsgrp->sg_adm, user_name);
+                       nsgrp->sg_adm = add_list (nsgrp->sg_adm, user_newname);
                        changed = 1;
                        SYSLOG ((LOG_INFO,
                                 "change admin `%s' to `%s' in shadow group `%s'",
@@ -648,8 +609,7 @@ static int update_gshadow (void)
                                         nsgrp->sg_name));
                        }
                } else if (was_member && Gflg && !is_member) {
-                       nsgrp->sg_mem =
-                           del_list (nsgrp->sg_mem, user_name);
+                       nsgrp->sg_mem = del_list (nsgrp->sg_mem, user_name);
                        changed = 1;
                        SYSLOG ((LOG_INFO,
                                 "delete `%s' from shadow group `%s'",
@@ -673,35 +633,16 @@ static int update_gshadow (void)
                 */
                if (!sgr_update (nsgrp)) {
                        fprintf (stderr,
-                                _("%s: error adding new group entry\n"),
-                                Prog);
-                       SYSLOG ((LOG_ERR,
-                                "error adding shadow group entry"));
+                                _("%s: error adding new group entry\n"), Prog);
+                       SYSLOG ((LOG_ERR, "error adding shadow group entry"));
                        sgr_unlock ();
                        return -1;
                }
-#ifdef NDBM
-               /*
-                * Update the DBM group file with the new entry as well.
-                */
-               if (!sg_dbm_update (nsgrp)) {
-                       fprintf (stderr,
-                                _("%s: cannot add new dbm group entry\n"),
-                                Prog);
-                       SYSLOG ((LOG_ERR,
-                                "error adding dbm shadow group entry"));
-                       sgr_unlock ();
-                       return -1;
-               }
-#endif                         /* NDBM */
        }
-#ifdef NDBM
-       endsgent ();
-#endif                         /* NDBM */
+
        if (!sgr_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow group file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow group file\n"), Prog);
                sgr_unlock ();
                return -1;
        }
@@ -738,8 +679,7 @@ static long get_number (const char *cp)
        if (*cp != '\0' && *ep == '\0') /* valid number */
                return val;
 
-       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog,
-                cp);
+       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog, cp);
        exit (E_BAD_ARG);
 }
 
@@ -752,8 +692,7 @@ static uid_t get_id (const char *cp)
        if (*cp != '\0' && *ep == '\0') /* valid number */
                return val;
 
-       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog,
-                cp);
+       fprintf (stderr, _("%s: invalid numeric argument `%s'\n"), Prog, cp);
        exit (E_BAD_ARG);
 }
 
@@ -800,8 +739,7 @@ static void process_flags (int argc, char **argv)
                         Prog, user_name);
 
                if (!yp_get_default_domain (&nis_domain) &&
-                   !yp_master (nis_domain, "passwd.byname",
-                               &nis_master)) {
+                   !yp_master (nis_domain, "passwd.byname", &nis_master)) {
                        fprintf (stderr, _("%s: %s is the NIS master\n"),
                                 Prog, nis_master);
                }
@@ -978,8 +916,7 @@ static void process_flags (int argc, char **argv)
                uflg = oflg = 0;
 
        if (lflg && getpwnam (user_newname)) {
-               fprintf (stderr, _("%s: user %s exists\n"), Prog,
-                        user_newname);
+               fprintf (stderr, _("%s: user %s exists\n"), Prog, user_newname);
                exit (E_NAME_IN_USE);
        }
 
@@ -1000,15 +937,13 @@ static void process_flags (int argc, char **argv)
 static void close_files (void)
 {
        if (!pw_close ()) {
-               fprintf (stderr, _("%s: cannot rewrite password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: cannot rewrite password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_close ()) {
                fprintf (stderr,
-                        _("%s: cannot rewrite shadow password file\n"),
-                        Prog);
+                        _("%s: cannot rewrite shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #endif
@@ -1041,26 +976,22 @@ static void close_files (void)
 static void open_files (void)
 {
        if (!pw_lock ()) {
-               fprintf (stderr, _("%s: unable to lock password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to lock password file\n"), Prog);
                exit (E_PW_UPDATE);
        }
        if (!pw_open (O_RDWR)) {
-               fprintf (stderr, _("%s: unable to open password file\n"),
-                        Prog);
+               fprintf (stderr, _("%s: unable to open password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #ifdef SHADOWPWD
        if (is_shadow_pwd && !spw_lock ()) {
                fprintf (stderr,
-                        _("%s: cannot lock shadow password file\n"),
-                        Prog);
+                        _("%s: cannot lock shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
        if (is_shadow_pwd && !spw_open (O_RDWR)) {
                fprintf (stderr,
-                        _("%s: cannot open shadow password file\n"),
-                        Prog);
+                        _("%s: cannot open shadow password file\n"), Prog);
                fail_exit (E_PW_UPDATE);
        }
 #endif
@@ -1123,25 +1054,6 @@ static void usr_update (void)
                                 Prog);
                        fail_exit (E_PW_UPDATE);
                }
-#ifdef NDBM
-               if (pw_dbm_present ()) {
-                       if (!pw_dbm_update (&pwent)) {
-                               fprintf (stderr,
-                                        _
-                                        ("%s: error adding password dbm entry\n"),
-                                        Prog);
-                               fail_exit (E_PW_UPDATE);
-                       }
-                       if (lflg && (pwd = getpwnam (user_name)) &&
-                           !pw_dbm_remove (pwd)) {
-                               fprintf (stderr,
-                                        _
-                                        ("%s: error removing passwd dbm entry\n"),
-                                        Prog);
-                               fail_exit (E_PW_UPDATE);
-                       }
-               }
-#endif
        }
 #ifdef SHADOWPWD
        if (spwd && (lflg || eflg || fflg || pflg || Lflg || Uflg)) {
@@ -1160,24 +1072,6 @@ static void usr_update (void)
                        fail_exit (E_PW_UPDATE);
                }
        }
-#ifdef NDBM
-       if (spwd && sp_dbm_present ()) {
-               if (!sp_dbm_update (&spent)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error updating shadow passwd dbm entry\n"),
-                                Prog);
-                       fail_exit (E_PW_UPDATE);
-               }
-               if (lflg && !sp_dbm_remove (user_name)) {
-                       fprintf (stderr,
-                                _
-                                ("%s: error removing shadow passwd dbm entry\n"),
-                                Prog);
-                       fail_exit (E_PW_UPDATE);
-               }
-       }
-#endif                         /* NDBM */
 #endif                         /* SHADOWPWD */
 }
 
@@ -1206,15 +1100,13 @@ static void move_home (void)
                        fail_exit (E_HOMEDIR);
                } else if (rename (user_home, user_newhome)) {
                        if (errno == EXDEV) {
-                               if (mkdir
-                                   (user_newhome, sb.st_mode & 0777)) {
+                               if (mkdir (user_newhome, sb.st_mode & 0777)) {
                                        fprintf (stderr,
                                                 _
                                                 ("%s: can't create %s\n"),
                                                 Prog, user_newhome);
                                }
-                               if (chown (user_newhome,
-                                          sb.st_uid, sb.st_gid)) {
+                               if (chown (user_newhome, sb.st_uid, sb.st_gid)) {
                                        fprintf (stderr,
                                                 _("%s: can't chown %s\n"),
                                                 Prog, user_newhome);
@@ -1263,8 +1155,7 @@ static void update_files (void)
        if ((fd = open (LASTLOG_FILE, O_RDWR)) != -1) {
                lseek (fd, (off_t) user_id * sizeof ll, SEEK_SET);
                if (read (fd, (char *) &ll, sizeof ll) == sizeof ll) {
-                       lseek (fd, (off_t) user_newid * sizeof ll,
-                              SEEK_SET);
+                       lseek (fd, (off_t) user_newid * sizeof ll, SEEK_SET);
                        write (fd, (char *) &ll, sizeof ll);
                }
                close (fd);
@@ -1277,8 +1168,7 @@ static void update_files (void)
        if ((fd = open (FAILLOG_FILE, O_RDWR)) != -1) {
                lseek (fd, (off_t) user_id * sizeof fl, SEEK_SET);
                if (read (fd, (char *) &fl, sizeof fl) == sizeof fl) {
-                       lseek (fd, (off_t) user_newid * sizeof fl,
-                              SEEK_SET);
+                       lseek (fd, (off_t) user_newid * sizeof fl, SEEK_SET);
                        write (fd, (char *) &fl, sizeof fl);
                }
                close (fd);
@@ -1383,7 +1273,7 @@ int main (int argc, char **argv)
        user_groups = malloc ((1 + sys_ngroups) * sizeof (char *));
        user_groups[0] = (char *) 0;
 
-       OPENLOG("usermod");
+       OPENLOG ("usermod");
 
 #ifdef SHADOWPWD
        is_shadow_pwd = spw_file_present ();
@@ -1403,8 +1293,7 @@ int main (int argc, char **argv)
        }
 
        if (retval == PAM_SUCCESS) {
-               retval =
-                   pam_start ("usermod", pampw->pw_name, &conv, &pamh);
+               retval = pam_start ("usermod", pampw->pw_name, &conv, &pamh);
        }
 
        if (retval == PAM_SUCCESS) {
@@ -1422,30 +1311,11 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM authentication failed\n"),
-                        Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
-
-       OPENLOG ("usermod");
 #endif                         /* USE_PAM */
 
-       /*
-        * The open routines for the NDBM files don't use read-write as the
-        * mode, so we have to clue them in.
-        */
-
-#ifdef NDBM
-       pw_dbm_mode = O_RDWR;
-#ifdef SHADOWPWD
-       sp_dbm_mode = O_RDWR;
-#endif
-       gr_dbm_mode = O_RDWR;
-#ifdef SHADOWGRP
-       sg_dbm_mode = O_RDWR;
-#endif
-#endif                         /* NDBM */
-
        /*
         * Do the hard stuff - open the files, change the user entries,
         * change the home directory, then close and update the files.
@@ -1495,7 +1365,7 @@ int main (int argc, char **argv)
        }
 
        if (retval != PAM_SUCCESS) {
-               fprintf (stderr, _("%s: PAM chauthtok failed\n"), Prog);
+               fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
                exit (1);
        }
 
index 69778993b63897064ab11e0da662daaaec87e0fb..f40a267541d10f9929beb431d5c0b21ae5ab8e04 100644 (file)
@@ -23,7 +23,7 @@
 #include <config.h>
 
 #include "rcsid.h"
-RCSID (PKG_VER "$Id: vipw.c,v 1.8 2004/12/20 02:19:30 kloczek Exp $")
+RCSID (PKG_VER "$Id: vipw.c,v 1.10 2005/04/13 22:59:18 kloczek Exp $")
 #include "defines.h"
 #include <errno.h>
 #include <sys/stat.h>
@@ -48,8 +48,7 @@ static int create_backup_file (FILE *, const char *, struct stat *);
 static void vipwexit (const char *, int, int);
 static void vipwedit (const char *, int (*)(void), int (*)(void));
 
-static int
-create_backup_file (FILE * fp, const char *backup, struct stat *sb)
+static int create_backup_file (FILE * fp, const char *backup, struct stat *sb)
 {
        struct utimbuf ub;
        FILE *bkfp;
@@ -63,12 +62,12 @@ create_backup_file (FILE * fp, const char *backup, struct stat *sb)
                return -1;
 
        c = 0;
-       if (fseeko(fp, 0, SEEK_SET) == 0)
-               while ((c = getc(fp)) != EOF) {
-                       if (putc(c, bkfp) == EOF)
+       if (fseeko (fp, 0, SEEK_SET) == 0)
+               while ((c = getc (fp)) != EOF) {
+                       if (putc (c, bkfp) == EOF)
                                break;
                }
-       if (c != EOF || ferror(fp) || fflush(bkfp)) {
+       if (c != EOF || ferror (fp) || fflush (bkfp)) {
                fclose (bkfp);
                unlink (backup);
                return -1;
@@ -94,10 +93,10 @@ static void vipwexit (const char *msg, int syserr, int ret)
 {
        int err = errno;
 
-       if (filelocked)
-               (*unlock) ();
        if (createedit)
                unlink (fileeditname);
+       if (filelocked)
+               (*unlock) ();
        if (msg)
                fprintf (stderr, "%s: %s", progname, msg);
        if (syserr)
@@ -111,8 +110,7 @@ static void vipwexit (const char *msg, int syserr, int ret)
 #endif
 
 static void
-vipwedit (const char *file, int (*file_lock) (void),
-         int (*file_unlock) (void))
+vipwedit (const char *file, int (*file_lock) (void), int (*file_unlock) (void))
 {
        const char *editor;
        pid_t pid;
@@ -155,9 +153,7 @@ vipwedit (const char *file, int (*file_lock) (void),
                   command line args in the EDITOR and VISUAL environment vars */
                char *buf;
 
-               buf =
-                   (char *) malloc (strlen (editor) + strlen (fileedit) +
-                                    2);
+               buf = (char *) malloc (strlen (editor) + strlen (fileedit) + 2);
                snprintf (buf, strlen (editor) + strlen (fileedit) + 2,
                          "%s %s", editor, fileedit);
                if (system (buf) != 0) {