[svn-upgrade] Integrating new upstream version, shadow (4.0.9)

This commit is contained in:
nekral-guest 2007-10-07 11:46:16 +00:00
parent 8e167d28af
commit 7c47e0fde3
159 changed files with 13029 additions and 3956 deletions

1276
ABOUT-NLS

File diff suppressed because it is too large Load Diff

106
ChangeLog

@ -1,5 +1,111 @@
2005-05-23 Tomasz K³oczko <kloczek@pld.org.pl>
* man/Makefile.am: remove shadow-man-pages.pot target from all.
2005-05-19 Tomasz K³oczko <kloczek@pld.org.pl>
* lib/encrypt.c, NEWS:
fixed passwd segfault in non-PAM connfiguration (submited by Greg Schafer <gschafer@zip.com.au>).
* po/sv.po: upsdate (by Christian Perrier <bubulle@debian.org>).
* NEWS, src/newgrp.c:
fixed NULL pointer dereference - getlogin() and ttyname() can
return NULL which is not checked (http://bugs.debian.org/162303).
* man/pwconv.8.xml, man/su.1, man/su.1.xml, man/pwconv.8:
fixed typo (s,similiar,similar,).
2005-05-14 Tomasz K³oczko <kloczek@pld.org.pl>
* NEWS, po/ro.po: updated by Sorin B. <sorin@bonbon.net>.
* po/ru.po, NEWS: updated by yu-koz <yu-koz@yandex.ru>.
2005-05-13 Tomasz K³oczko <kloczek@pld.org.pl>
* po/ro.po: few updates by Sorin Batariuc <sorin@bonbon.net>.
2005-05-12 Tomasz K³oczko <kloczek@pld.org.pl>
* po/ru.po: updated (by Yuri Kozlov <yuray@id.ru>).
2005-05-10 Tomasz K³oczko <kloczek@pld.org.pl>
* po/vi.po:
completed translations for HEAD (by Clytie Siddall <clytie@riverland.net.au>).
2005-05-09 Tomasz K³oczko <kloczek@pld.org.pl>
* NEWS, po/LINGUAS, po/vi.po: added new vi translation.
* NEWS, lib/getdef.c:
leaves the table as it is, and changes from the binary search to
a sequential one (fix by Lucas Correia Villa Real <lucasvr@gobolinux.org>).
* man/passwd.1, man/passwd.1.xml: make bold passwd and chfn commands.
2005-04-28 Tomasz K³oczko <kloczek@pld.org.pl>
* man/usermod.8.xml, man/vipw.8.xml: cleanups.
2005-04-27 Tomasz K³oczko <kloczek@pld.org.pl>
* man/gpasswd.1.xml, man/groups.1.xml, man/grpck.8.xml, man/login.defs.5.xml, man/passwd.1.xml, man/pwck.8.xml, man/shadowconfig.8.xml, man/sulogin.8.xml, man/useradd.8.xml:
replace <emphasis remap='B'></emphasis> by <command></command>.
* 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, 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, src/lastlog.c:
fixed lastlog --help message (s,--login,--user,) http://bugs.debian.org/249611
* 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/mkpasswd.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pwck.8.xml, man/shadow.3.xml, man/shadow.5.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:
use <varlistentry></varlistentry> in FILES section. Cleanups.
* man/expiry.1.xml, man/chsh.1.xml, man/chpasswd.8.xml, man/chfn.1.xml, man/porttime.5.xml, man/pw_auth.3.xml:
cleanups.
* man/vipw.8, man/vipw.8.xml:
small fix: s,vi,vi(1), (reported by Helge Kreutzmann <kreutzm@itp.uni-hannover.de> in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=260636).
s,VISUAL,$VISUAL; s,EDITOR,$EDITOR,
2005-04-26 Tomasz K³oczko <kloczek@pld.org.pl>
* man/login.1.xml: fixed bold (use <command></command>). Cleanups.
* man/login.1: fixed typo in bold.
* man/chage.1.xml: fixed italic. Cleanups.
* man/chage.1: fixed typo in italic.
* man/login.defs.5.xml:
fixed italic (use <filename></filename> istead italic). Cleanups.
* man/login.defs.5: fixed typo in italic.
* man/vipw.8.xml: fixed italic (use <filename></filename>).
* man/vipw.8: typo in italic.
* man/Makefile.am:
added target for generate shadow-man-pages.pot. List all now useable xml files
in man_XMANS variable.
* man/pwconv.8.xml:
fixed bold. Use in more places <command></command> istead bold.
* man/login.defs.5: typo in bold.
* man/su.1.xml:
removed comment. Use <variablelist></variablelist> in Files secstion.
Fixed bold.
* man/pwconv.8, man/su.1: typo in bold.
2005-04-25 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, configure.in: start work on 4.0.9.
* po/nl.po: kill fuzzy.
* man/chage.1:

@ -42,7 +42,11 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@ -195,6 +199,7 @@ AUTOMAKE_OPTIONS = 1.5 dist-bzip2 foreign
SUBDIRS = po man libmisc lib src \
contrib doc etc
ACLOCAL_AMFLAGS = -I m4
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -397,7 +402,7 @@ distclean-tags:
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
$(mkdir_p) $(distdir)/. $(distdir)/po
$(mkdir_p) $(distdir)/. $(distdir)/m4 $(distdir)/po
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \

15
NEWS

@ -1,4 +1,17 @@
$Id: NEWS,v 1.147 2005/04/25 10:39:48 kloczek Exp $
$Id: NEWS,v 1.155 2005/05/19 12:05:02 kloczek Exp $
shadow-4.0.8 -> shadow-4.0.9
*** general:
- passwd: fixed segfault in non-PAM connfiguration
(submited by Greg Schafer <gschafer@zip.com.au>),
- newgrp: fixed NULL pointer dereference - getlogin() and ttyname() can
return NULL which is not checked (http://bugs.debian.org/162303),
- updated translations: ro, ru,
- added new translations: vi,
- lib/getdef.c: leaves the table as it is, and changes from the binary search to
a sequential one (Lucas Correia Villa Real <lucasvr@gobolinux.org>),
- lastlog: fixed --help message (s,--login,--user,) http://bugs.debian.org/249611.
shadow-4.0.7 -> shadow-4.0.8

2404
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

@ -2,28 +2,13 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2003 Free Software Foundation, Inc.
# Copyright 1996-2005 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# 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 of the License, 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.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# 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.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
@ -50,6 +35,8 @@ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
cc_basename=`echo "$CC" | sed -e 's%^.*/%%'`
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
wl=
@ -60,6 +47,13 @@ else
aix*)
wl='-Wl,'
;;
darwin*)
case "$cc_basename" in
xlc*)
wl='-Wl,'
;;
esac
;;
mingw* | pw32* | os2*)
;;
hpux9* | hpux10* | hpux11*)
@ -71,13 +65,19 @@ else
newsos6)
;;
linux*)
case $CC in
icc|ecc)
case $cc_basename in
icc* | ecc*)
wl='-Wl,'
;;
ccc)
pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
como)
wl='-lopt='
;;
esac
;;
osf3* | osf4* | osf5*)
@ -96,6 +96,9 @@ else
;;
sysv4*MP*)
;;
unicos*)
wl='-Wl,'
;;
uts4*)
;;
esac
@ -138,12 +141,12 @@ if test "$with_gnu_ld" = yes; then
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we can use
# behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
@ -162,9 +165,9 @@ if test "$with_gnu_ld" = yes; then
netbsd*)
;;
solaris* | sysv5*)
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
@ -173,8 +176,15 @@ if test "$with_gnu_ld" = yes; then
sunos4*)
hardcode_direct=yes
;;
linux*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
@ -266,7 +276,7 @@ else
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
bsdi4*)
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
@ -277,8 +287,17 @@ else
libext=lib
;;
darwin* | rhapsody*)
if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
hardcode_direct=no
hardcode_direct=no
if test "$GCC" = yes ; then
:
else
case "$cc_basename" in
xlc*)
;;
*)
ld_shlibs=no
;;
esac
fi
;;
dgux*)
@ -295,7 +314,7 @@ else
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd*)
freebsd* | kfreebsd*-gnu | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
@ -438,7 +457,7 @@ case "$host_os" in
;;
beos*)
;;
bsdi4*)
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
shrext=.dll
@ -450,6 +469,8 @@ case "$host_os" in
;;
freebsd1*)
;;
kfreebsd*-gnu)
;;
freebsd*)
;;
gnu*)
@ -486,11 +507,13 @@ case "$host_os" in
;;
linux*)
;;
knetbsd*-gnu)
;;
netbsd*)
;;
newsos6)
;;
nto-qnx)
nto-qnx*)
;;
openbsd*)
;;
@ -519,7 +542,7 @@ escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"

804
configure vendored

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AM_INIT_AUTOMAKE(shadow, 4.0.8)
AM_INIT_AUTOMAKE(shadow, 4.0.9)
AC_CONFIG_HEADERS([config.h])
dnl Some hacks...

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = contrib
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = doc
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = etc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = etc/pam.d
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = lib
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: encrypt.c,v 1.11 2005/04/06 02:59:22 kloczek Exp $")
RCSID ("$Id: encrypt.c,v 1.12 2005/05/19 12:05:03 kloczek Exp $")
#include <unistd.h>
#include "prototypes.h"
#include "defines.h"
@ -40,7 +40,7 @@ char *pw_encrypt (const char *clear, const char *salt)
static char cipher[128];
char *cp;
crypt (clear, salt);
cp = crypt (clear, salt);
if (!cp) {
/*
* Single Unix Spec: crypt() may return a null pointer,

@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: getdef.c,v 1.28 2005/04/01 22:52:03 kloczek Exp $")
RCSID ("$Id: getdef.c,v 1.29 2005/05/09 10:45:26 kloczek Exp $")
#include "prototypes.h"
#include "defines.h"
#include <stdio.h>
@ -45,10 +45,6 @@ struct itemdef {
char *value; /* value given, or NULL if no value */
};
/*
* This list *must* be sorted by the "name" member.
*/
#define NUMDEFS (sizeof(def_table)/sizeof(def_table[0]))
static struct itemdef def_table[] = {
{"CHFN_RESTRICT", NULL},
@ -118,7 +114,8 @@ static struct itemdef def_table[] = {
{"UID_MAX", NULL},
{"UID_MIN", NULL},
{"UMASK", NULL},
{"USERGROUPS_ENAB", NULL}
{"USERGROUPS_ENAB", NULL},
{NULL, NULL}
};
#ifndef LOGINDEFS
@ -278,37 +275,24 @@ int putdef_str (const char *name, const char *value)
/*
* def_find - locate named item in table
*
* Search through a sorted table of configurable items to locate the
* Search through a table of configurable items to locate the
* specified configuration option.
*/
static struct itemdef *def_find (const char *name)
{
int min, max, curr, n;
int n;
struct itemdef *ptr;
/*
* Invariant - desired item in range [min:max].
* Search into the table.
*/
min = 0;
max = NUMDEFS - 1;
/*
* Binary search into the table. Relies on the items being
* sorted by name.
*/
while (min <= max) {
curr = (min + max) / 2;
if (!(n = strcmp (def_table[curr].name, name)))
return &def_table[curr];
if (n < 0)
min = curr + 1;
else
max = curr - 1;
}
for (ptr = def_table; ptr->name; ptr++) {
if (!(n = strcmp (ptr->name, name)))
return ptr;
}
/*
* Item was never found.

@ -41,7 +41,11 @@ host_triplet = @host@
subdir = libmisc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in getdate.c
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

549
m4/gettext.m4 Normal file

@ -0,0 +1,549 @@
# 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.
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 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([AM_PO_SUBDIRS])dnl
ifelse(gt_included_intl, yes, [
AC_REQUIRE([AM_INTL_SUBDIR])dnl
])
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
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 Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
gt_INTL_MACOSX
dnl Set USE_NLS.
AM_NLS
ifelse(gt_included_intl, yes, [
BUILD_INCLUDED_LIBINTL=no
USE_INCLUDED_LIBINTL=no
])
LIBINTL=
LTLIBINTL=
POSUB=
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)
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 (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
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
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
])
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
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
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])
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 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
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 For backward compatibility. Some configure.ins may be using this.
nls_cv_header_intl=
nls_cv_header_libgt=
dnl For backward compatibility. Some Makefiles may be using this.
DATADIRNAME=share
AC_SUBST(DATADIRNAME)
dnl For backward compatibility. Some Makefiles may be using this.
INSTOBJEXT=.mo
AC_SUBST(INSTOBJEXT)
dnl For backward compatibility. Some Makefiles may be using this.
GENCAT=gencat
AC_SUBST(GENCAT)
dnl For backward compatibility. Some Makefiles may be using this.
INTLOBJS=
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([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_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
gt_LC_MESSAGES
fi
if test -n "$INTL_MACOSX_LIBS"; then
CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
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 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 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], [])

101
m4/iconv.m4 Normal file

@ -0,0 +1,101 @@
# 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 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).
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
dnl accordingly.
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
dnl Add $INCICONV to CPPFLAGS before performing the following checks,
dnl because if the user has installed libiconv and not disabled its use
dnl via --without-libiconv-prefix, he wants to use it. The first
dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
am_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
fi
if test "$am_cv_lib_iconv" = yes; then
AC_MSG_CHECKING([how to link with libiconv])
AC_MSG_RESULT([$LIBICONV])
else
dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
dnl either.
CPPFLAGS="$am_save_CPPFLAGS"
LIBICONV=
LTLIBICONV=
fi
AC_SUBST(LIBICONV)
AC_SUBST(LTLIBICONV)
])
AC_DEFUN([AM_ICONV],
[
AM_ICONV_LINK
if test "$am_cv_func_iconv" = yes; then
AC_MSG_CHECKING([for iconv declaration])
AC_CACHE_VAL(am_cv_proto_iconv, [
AC_TRY_COMPILE([
#include <stdlib.h>
#include <iconv.h>
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([$]{ac_t:-
}[$]am_cv_proto_iconv)
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
[Define as const if the declaration of iconv() needs const.])
fi
])

110
m4/lib-ld.m4 Normal file

@ -0,0 +1,110 @@
# 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.
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
fi
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[[\\/]* | [A-Za-z]:[\\/]*)]
[re_direlt='/[^/][^/]*/\.\./']
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(acl_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
acl_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
*GNU* | *'with BFD'*)
test "$with_gnu_ld" != no && break ;;
*)
test "$with_gnu_ld" != yes && break ;;
esac
fi
done
IFS="$ac_save_ifs"
else
acl_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$acl_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_LIB_PROG_LD_GNU
])

553
m4/lib-link.m4 Normal file

@ -0,0 +1,553 @@
# 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
dnl augments the CPPFLAGS variable.
AC_DEFUN([AC_LIB_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
define([Name],[translit([$1],[./-], [___])])
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
AC_LIB_LINKFLAGS_BODY([$1], [$2])
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
])
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
dnl results of this search when this library appears as a dependency.
HAVE_LIB[]NAME=yes
undefine([Name])
undefine([NAME])
])
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
dnl searches for libname and the libraries corresponding to explicit and
dnl implicit dependencies, together with the specified include files and
dnl the ability to compile and link the specified testcode. If found, it
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
define([Name],[translit([$1],[./-], [___])])
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
dnl accordingly.
AC_LIB_LINKFLAGS_BODY([$1], [$2])
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
dnl because if the user has installed lib[]Name and not disabled its use
dnl via --without-lib[]Name-prefix, he wants to use it.
ac_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LIB[]NAME"
AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
LIBS="$ac_save_LIBS"
])
if test "$ac_cv_lib[]Name" = yes; then
HAVE_LIB[]NAME=yes
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
AC_MSG_CHECKING([how to link with lib[]$1])
AC_MSG_RESULT([$LIB[]NAME])
else
HAVE_LIB[]NAME=no
dnl If $LIB[]NAME didn't lead to a usable library, we don't need
dnl $INC[]NAME either.
CPPFLAGS="$ac_save_CPPFLAGS"
LIB[]NAME=
LTLIB[]NAME=
fi
AC_SUBST([HAVE_LIB]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
undefine([Name])
undefine([NAME])
])
dnl Determine the platform dependent parameters needed to use rpath:
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
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
. ./conftest.sh
rm -f ./conftest.sh
acl_cv_rpath=done
])
wl="$acl_cv_wl"
libext="$acl_cv_libext"
shlibext="$acl_cv_shlibext"
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
hardcode_direct="$acl_cv_hardcode_direct"
hardcode_minus_L="$acl_cv_hardcode_minus_L"
dnl Determine whether the user wants rpath handling at all.
AC_ARG_ENABLE(rpath,
[ --disable-rpath do not hardcode runtime library paths],
:, enable_rpath=yes)
])
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
AC_LIB_ARG_WITH([lib$1-prefix],
[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
--without-lib$1-prefix don't search for lib$1 in includedir and libdir],
[
if test "X$withval" = "Xno"; then
use_additional=no
else
if test "X$withval" = "X"; then
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
else
additional_includedir="$withval/include"
additional_libdir="$withval/lib"
fi
fi
])
dnl Search the library and its dependencies in $additional_libdir and
dnl $LDFLAGS. Using breadth-first-seach.
LIB[]NAME=
LTLIB[]NAME=
INC[]NAME=
rpathdirs=
ltrpathdirs=
names_already_handled=
names_next_round='$1 $2'
while test -n "$names_next_round"; do
names_this_round="$names_next_round"
names_next_round=
for name in $names_this_round; do
already_handled=
for n in $names_already_handled; do
if test "$n" = "$name"; then
already_handled=yes
break
fi
done
if test -z "$already_handled"; then
names_already_handled="$names_already_handled $name"
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
dnl or AC_LIB_HAVE_LINKFLAGS call.
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
eval value=\"\$HAVE_LIB$uppername\"
if test -n "$value"; then
if test "$value" = yes; then
eval value=\"\$LIB$uppername\"
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
eval value=\"\$LTLIB$uppername\"
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
else
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
dnl that this library doesn't exist. So just drop it.
:
fi
else
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
dnl and the already constructed $LIBNAME/$LTLIBNAME.
found_dir=
found_la=
found_so=
found_a=
if test $use_additional = yes; then
if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
found_dir="$additional_libdir"
found_so="$additional_libdir/lib$name.$shlibext"
if test -f "$additional_libdir/lib$name.la"; then
found_la="$additional_libdir/lib$name.la"
fi
else
if test -f "$additional_libdir/lib$name.$libext"; then
found_dir="$additional_libdir"
found_a="$additional_libdir/lib$name.$libext"
if test -f "$additional_libdir/lib$name.la"; then
found_la="$additional_libdir/lib$name.la"
fi
fi
fi
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
found_dir="$dir"
found_so="$dir/lib$name.$shlibext"
if test -f "$dir/lib$name.la"; then
found_la="$dir/lib$name.la"
fi
else
if test -f "$dir/lib$name.$libext"; then
found_dir="$dir"
found_a="$dir/lib$name.$libext"
if test -f "$dir/lib$name.la"; then
found_la="$dir/lib$name.la"
fi
fi
fi
;;
esac
if test "X$found_dir" != "X"; then
break
fi
done
fi
if test "X$found_dir" != "X"; then
dnl Found the library.
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
if test "X$found_so" != "X"; then
dnl Linking with a shared library. We attempt to hardcode its
dnl directory into the executable's runpath, unless it's the
dnl standard /usr/lib.
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
dnl Use an explicit option to hardcode DIR into the resulting
dnl binary.
dnl Potentially add DIR to ltrpathdirs.
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
haveit=
for x in $ltrpathdirs; do
if test "X$x" = "X$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $found_dir"
fi
dnl The hardcoding into $LIBNAME is system dependent.
if test "$hardcode_direct" = yes; then
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
dnl resulting binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode DIR into the resulting
dnl binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
dnl Potentially add DIR to rpathdirs.
dnl The rpathdirs will be appended to $LIBNAME at the end.
haveit=
for x in $rpathdirs; do
if test "X$x" = "X$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
rpathdirs="$rpathdirs $found_dir"
fi
else
dnl Rely on "-L$found_dir".
dnl But don't add it if it's already contained in the LDFLAGS
dnl or the already constructed $LIBNAME
haveit=
for x in $LDFLAGS $LIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$found_dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
fi
if test "$hardcode_minus_L" != no; then
dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
dnl here, because this doesn't fit in flags passed to the
dnl compiler. So give up. No hardcoding. This affects only
dnl very old systems.
dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
fi
fi
fi
fi
else
if test "X$found_a" != "X"; then
dnl Linking with a static library.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
else
dnl We shouldn't come here, but anyway it's good to have a
dnl fallback.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
fi
fi
dnl Assume the include files are nearby.
additional_includedir=
case "$found_dir" in
*/lib | */lib/)
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
additional_includedir="$basedir/include"
;;
esac
if test "X$additional_includedir" != "X"; then
dnl Potentially add $additional_includedir to $INCNAME.
dnl But don't add it
dnl 1. if it's the standard /usr/include,
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
dnl 3. if it's already present in $CPPFLAGS or the already
dnl constructed $INCNAME,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_includedir" != "X/usr/include"; then
haveit=
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
for x in $CPPFLAGS $INC[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-I$additional_includedir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_includedir"; then
dnl Really add $additional_includedir to $INCNAME.
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
fi
fi
fi
fi
fi
dnl Look for dependencies.
if test -n "$found_la"; then
dnl Read the .la file. It defines the variables
dnl dlname, library_names, old_library, dependency_libs, current,
dnl age, revision, installed, dlopen, dlpreopen, libdir.
save_libdir="$libdir"
case "$found_la" in
*/* | *\\*) . "$found_la" ;;
*) . "./$found_la" ;;
esac
libdir="$save_libdir"
dnl We use only dependency_libs.
for dep in $dependency_libs; do
case "$dep" in
-L*)
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
dnl But don't add it
dnl 1. if it's the standard /usr/lib,
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then
haveit=
if test "X$additional_libdir" = "X/usr/local/lib"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
haveit=
for x in $LDFLAGS $LIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LIBNAME.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
fi
fi
haveit=
for x in $LDFLAGS $LTLIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LTLIBNAME.
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
fi
fi
fi
fi
;;
-R*)
dir=`echo "X$dep" | sed -e 's/^X-R//'`
if test "$enable_rpath" != no; then
dnl Potentially add DIR to rpathdirs.
dnl The rpathdirs will be appended to $LIBNAME at the end.
haveit=
for x in $rpathdirs; do
if test "X$x" = "X$dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
rpathdirs="$rpathdirs $dir"
fi
dnl Potentially add DIR to ltrpathdirs.
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
haveit=
for x in $ltrpathdirs; do
if test "X$x" = "X$dir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $dir"
fi
fi
;;
-l*)
dnl Handle this in the next round.
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
;;
*.la)
dnl Handle this in the next round. Throw away the .la's
dnl directory; it is already contained in a preceding -L
dnl option.
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
;;
*)
dnl Most likely an immediate library name.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
;;
esac
done
fi
else
dnl Didn't find the library; assume it is in the system directories
dnl known to the linker and runtime loader. (All the system
dnl directories known to the linker should also be known to the
dnl runtime loader, otherwise the system is severely misconfigured.)
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
fi
fi
fi
done
done
if test "X$rpathdirs" != "X"; then
if test -n "$hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user must
dnl pass all path elements in one option. We can arrange that for a
dnl single library, but not when more than one $LIBNAMEs are used.
alldirs=
for found_dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
done
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
acl_save_libdir="$libdir"
libdir="$alldirs"
eval flag=\"$hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
else
dnl The -rpath options are cumulative.
for found_dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$found_dir"
eval flag=\"$hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
done
fi
fi
if test "X$ltrpathdirs" != "X"; then
dnl When using libtool, the option that works for both libraries and
dnl executables is -R. The -R options are cumulative.
for found_dir in $ltrpathdirs; do
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
done
fi
])
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
dnl unless already present in VAR.
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
dnl contains two or three consecutive elements that belong together.
AC_DEFUN([AC_LIB_APPENDTOVAR],
[
for element in [$2]; do
haveit=
for x in $[$1]; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X$element"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
[$1]="${[$1]}${[$1]:+ }$element"
fi
done
])

153
m4/lib-prefix.m4 Normal file

@ -0,0 +1,153 @@
# 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.
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
dnl require excessive bracketing.
ifdef([AC_HELP_STRING],
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
dnl to access previously installed libraries. The basic assumption is that
dnl a user will want packages to use other packages he previously installed
dnl with the same --prefix option.
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
dnl libraries, but is otherwise very convenient.
AC_DEFUN([AC_LIB_PREFIX],
[
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
AC_LIB_ARG_WITH([lib-prefix],
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
--without-lib-prefix don't search for libraries in includedir and libdir],
[
if test "X$withval" = "Xno"; then
use_additional=no
else
if test "X$withval" = "X"; then
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
else
additional_includedir="$withval/include"
additional_libdir="$withval/lib"
fi
fi
])
if test $use_additional = yes; then
dnl Potentially add $additional_includedir to $CPPFLAGS.
dnl But don't add it
dnl 1. if it's the standard /usr/include,
dnl 2. if it's already present in $CPPFLAGS,
dnl 3. if it's /usr/local/include and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_includedir" != "X/usr/include"; then
haveit=
for x in $CPPFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-I$additional_includedir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
if test -d "$additional_includedir"; then
dnl Really add $additional_includedir to $CPPFLAGS.
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
fi
fi
fi
fi
dnl Potentially add $additional_libdir to $LDFLAGS.
dnl But don't add it
dnl 1. if it's the standard /usr/lib,
dnl 2. if it's already present in $LDFLAGS,
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then
haveit=
for x in $LDFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
if test "X$x" = "X-L$additional_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
if test "X$additional_libdir" = "X/usr/local/lib"; then
if test -n "$GCC"; then
case $host_os in
linux*) haveit=yes;;
esac
fi
fi
if test -z "$haveit"; then
if test -d "$additional_libdir"; then
dnl Really add $additional_libdir to $LDFLAGS.
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
fi
fi
fi
fi
fi
])
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
dnl acl_final_exec_prefix, containing the values to which $prefix and
dnl $exec_prefix will expand at the end of the configure script.
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
[
dnl Unfortunately, prefix and exec_prefix get only finally determined
dnl at the end of configure.
if test "X$prefix" = "XNONE"; then
acl_final_prefix="$ac_default_prefix"
else
acl_final_prefix="$prefix"
fi
if test "X$exec_prefix" = "XNONE"; then
acl_final_exec_prefix='${prefix}'
else
acl_final_exec_prefix="$exec_prefix"
fi
acl_save_prefix="$prefix"
prefix="$acl_final_prefix"
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
prefix="$acl_save_prefix"
])
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
dnl variables prefix and exec_prefix bound to the values they will have
dnl at the end of the configure script.
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
[
acl_save_prefix="$prefix"
prefix="$acl_final_prefix"
acl_save_exec_prefix="$exec_prefix"
exec_prefix="$acl_final_exec_prefix"
$1
exec_prefix="$acl_save_exec_prefix"
prefix="$acl_save_prefix"
])

51
m4/nls.m4 Normal file

@ -0,0 +1,51 @@
# 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.
dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
AC_PREREQ(2.50)
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 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)
])

429
m4/po.m4 Normal file

@ -0,0 +1,429 @@
# 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.
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],
[
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
AC_REQUIRE([AM_MKINSTALLDIRS])dnl
AC_REQUIRE([AM_NLS])dnl
dnl Perform the following tests also if --disable-nls has been given,
dnl because they are needed for "make dist" to work.
dnl Search for GNU msgfmt in the PATH.
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 >&]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)
dnl Search for GNU xgettext 0.12 or newer in the PATH.
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 >&]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.
rm -f messages.po
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 >&]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.
if test "$GMSGFMT" != ":"; then
dnl If it is no GNU msgfmt we define it as : so that the
dnl Makefiles still can work.
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
(if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
: ;
else
GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
AC_MSG_RESULT(
[found $GMSGFMT program is not GNU msgfmt; ignore it])
GMSGFMT=":"
fi
fi
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
dnl Test whether we really found GNU xgettext.
if test "$XGETTEXT" != ":"; then
dnl If it is no GNU xgettext we define it as : so that the
dnl Makefiles still can work.
if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
(if $XGETTEXT --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
: ;
else
AC_MSG_RESULT(
[found xgettext program is not GNU xgettext; ignore it])
XGETTEXT=":"
fi
dnl Remove leftover from FreeBSD xgettext call.
rm -f messages.po
fi
AC_OUTPUT_COMMANDS([
for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
case "$ac_file" in
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
esac
# PO directories have a Makefile.in generated from Makefile.in.in.
case "$ac_file" in */Makefile.in)
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) 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"
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
POMAKEFILEDEPS="POTFILES.in"
# ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
# on $ac_dir but don't depend on user-specified configuration
# parameters.
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages.
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" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
# Hide the ALL_LINGUAS assigment from automake.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# The set of available languages was given in configure.in.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
# Compute UPDATEPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
# Compute DUMMYPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
# Compute GMOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
case "$ac_given_srcdir" in
.) srcdirpre= ;;
*) srcdirpre='$(srcdir)/' ;;
esac
POFILES=
UPDATEPOFILES=
DUMMYPOFILES=
GMOFILES=
for lang in $ALL_LINGUAS; do
POFILES="$POFILES $srcdirpre$lang.po"
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
done
# CATALOGS depends on both $ac_dir and the user's LINGUAS
# environment variable.
INST_LINGUAS=
if test -n "$ALL_LINGUAS"; then
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "$LINGUAS"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
INST_LINGUAS="$INST_LINGUAS $presentlang"
fi
done
fi
CATALOGS=
if test -n "$INST_LINGUAS"; then
for lang in $INST_LINGUAS; do
CATALOGS="$CATALOGS $lang.gmo"
done
fi
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
if test -f "$f"; then
case "$f" in
*.orig | *.bak | *~) ;;
*) cat "$f" >> "$ac_dir/Makefile" ;;
esac
fi
done
fi
;;
esac
done],
[# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
# from automake.
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
])
])
dnl Postprocesses a Makefile in a directory containing PO files.
AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
[
# When this code is run, in config.status, two variables have already been
# set:
# - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
# - LINGUAS is the value of the environment variable LINGUAS at configure
# time.
changequote(,)dnl
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
# Find a way to echo strings without interpreting backslash.
if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='echo'
else
if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='printf %s\n'
else
echo_func () {
cat <<EOT
$*
EOT
}
gt_echo='echo_func'
fi
fi
# A sed script that extracts the value of VARIABLE from a Makefile.
sed_x_variable='
# Test if the hold space is empty.
x
s/P/P/
x
ta
# Yes it was empty. Look if we have the expected variable definition.
/^[ ]*VARIABLE[ ]*=/{
# Seen the first line of the variable definition.
s/^[ ]*VARIABLE[ ]*=//
ba
}
bd
:a
# Here we are processing a line from the variable definition.
# Remove comment, more precisely replace it with a space.
s/#.*$/ /
# See if the line ends in a backslash.
tb
:b
s/\\$//
# Print the line, without the trailing backslash.
p
tc
# There was no trailing backslash. The end of the variable definition is
# reached. Clear the hold space.
s/^.*$//
x
bd
:c
# A trailing backslash means that the variable definition continues in the
# next line. Put a nonempty string into the hold space to indicate this.
s/^.*$/P/
x
:d
'
changequote([,])dnl
# Set POTFILES to the value of the Makefile variable POTFILES.
sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
# Compute POTFILES_DEPS as
# $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
POTFILES_DEPS=
for file in $POTFILES; do
POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
done
POMAKEFILEDEPS=""
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
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages.
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.
sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
fi
# Hide the ALL_LINGUAS assigment from automake.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
# Compute UPDATEPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
# Compute DUMMYPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
# Compute GMOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
# Compute PROPERTIESFILES
# as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
# Compute CLASSFILES
# as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
# Compute QMFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
# Compute MSGFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
# Compute RESOURCESDLLFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
case "$ac_given_srcdir" in
.) srcdirpre= ;;
*) srcdirpre='$(srcdir)/' ;;
esac
POFILES=
UPDATEPOFILES=
DUMMYPOFILES=
GMOFILES=
PROPERTIESFILES=
CLASSFILES=
QMFILES=
MSGFILES=
RESOURCESDLLFILES=
for lang in $ALL_LINGUAS; do
POFILES="$POFILES $srcdirpre$lang.po"
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
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' -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
# environment variable.
INST_LINGUAS=
if test -n "$ALL_LINGUAS"; then
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "$LINGUAS"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
INST_LINGUAS="$INST_LINGUAS $presentlang"
fi
done
fi
CATALOGS=
JAVACATALOGS=
QTCATALOGS=
TCLCATALOGS=
CSHARPCATALOGS=
if test -n "$INST_LINGUAS"; then
for lang in $INST_LINGUAS; do
CATALOGS="$CATALOGS $lang.gmo"
JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
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' -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
sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
if grep -l '@TCLCATALOGS@' "$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/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang.msg: $lang.po
@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
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' -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)"; \
\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
if test -n "$POMAKEFILEDEPS"; then
cat >> "$ac_file.tmp" <<EOF
Makefile: $POMAKEFILEDEPS
EOF
fi
mv "$ac_file.tmp" "$ac_file"
])

92
m4/progtest.m4 Normal file

@ -0,0 +1,92 @@
# 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
])

@ -2,6 +2,44 @@
# subdirectories for translated manual pages
SUBDIRS = cs de es fr hu id it ja ko pl pt_BR ru zh_CN zh_TW
man_XMANS = \
chage.1.xml \
chfn.1.xml \
chpasswd.8.xml \
chsh.1.xml \
expiry.1.xml \
faillog.5.xml \
faillog.8.xml \
gpasswd.1.xml \
groupadd.8.xml \
groupdel.8.xml \
groupmems.8.xml \
groupmod.8.xml \
groups.1.xml \
grpck.8.xml \
gshadow.5.xml \
lastlog.8.xml \
limits.5.xml \
login.1.xml \
login.access.5.xml \
login.defs.5.xml \
logoutd.8.xml \
mkpasswd.8.xml \
newusers.8.xml \
passwd.1.xml \
passwd.5.xml \
porttime.5.xml \
pwck.8.xml \
pwconv.8.xml \
shadow.3.xml \
shadow.5.xml \
su.1.xml \
suauth.5.xml \
useradd.8.xml \
userdel.8.xml \
usermod.8.xml \
vipw.8.xml
man_MANS = \
chage.1 \
chfn.1 \
@ -47,7 +85,18 @@ man_MANS = \
vipw.8
EXTRA_DIST = $(man_MANS) \
$(man_XMANS) \
id.1.xml \
pw_auth.3.xml \
shadowconfig.8.xml \
sulogin.8.xml \
id.1 \
pw_auth.3 \
shadowconfig.8 \
sulogin.8
all:
shadow-man-pages.pot:
xml2po -o $@ $(man_XMANS)

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -185,6 +189,44 @@ target_alias = @target_alias@
# subdirectories for translated manual pages
SUBDIRS = cs de es fr hu id it ja ko pl pt_BR ru zh_CN zh_TW
man_XMANS = \
chage.1.xml \
chfn.1.xml \
chpasswd.8.xml \
chsh.1.xml \
expiry.1.xml \
faillog.5.xml \
faillog.8.xml \
gpasswd.1.xml \
groupadd.8.xml \
groupdel.8.xml \
groupmems.8.xml \
groupmod.8.xml \
groups.1.xml \
grpck.8.xml \
gshadow.5.xml \
lastlog.8.xml \
limits.5.xml \
login.1.xml \
login.access.5.xml \
login.defs.5.xml \
logoutd.8.xml \
mkpasswd.8.xml \
newusers.8.xml \
passwd.1.xml \
passwd.5.xml \
porttime.5.xml \
pwck.8.xml \
pwconv.8.xml \
shadow.3.xml \
shadow.5.xml \
su.1.xml \
suauth.5.xml \
useradd.8.xml \
userdel.8.xml \
usermod.8.xml \
vipw.8.xml
man_MANS = \
chage.1 \
chfn.1 \
@ -230,6 +272,11 @@ man_MANS = \
vipw.8
EXTRA_DIST = $(man_MANS) \
$(man_XMANS) \
id.1.xml \
pw_auth.3.xml \
shadowconfig.8.xml \
sulogin.8.xml \
id.1 \
pw_auth.3 \
shadowconfig.8 \
@ -731,6 +778,11 @@ uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 \
uninstall uninstall-am uninstall-info-am uninstall-man \
uninstall-man1 uninstall-man3 uninstall-man5 uninstall-man8
all:
shadow-man-pages.pot:
xml2po -o $@ $(man_XMANS)
# 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.
.NOEXPORT:

@ -1,4 +1,4 @@
.\"$Id: chage.1,v 1.24 2005/04/25 15:15:17 kloczek Exp $
.\"$Id: chage.1,v 1.25 2005/04/26 12:22:08 kloczek Exp $
.\" Copyright 1990 - 1994 Julianne Frances Haugh
.\" All rights reserved.
.\"
@ -67,7 +67,7 @@ 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"
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
\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,
which provides the user with advance warning.

193
man/chage.1.xml Normal file

@ -0,0 +1,193 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='chage.1'>
<!-- $Id: chage.1.xml,v 1.7 2005/04/26 12:31:14 kloczek Exp $ -->
<refmeta>
<refentrytitle>chage</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>chage</refname>
<refpurpose>change user password expiry information</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>chage</command>
<arg choice='opt'>-m <replaceable>mindays</replaceable></arg>
<arg choice='opt'>-M <replaceable>maxdays</replaceable></arg>
<arg choice='opt'>-d <replaceable>lastday</replaceable></arg>
<arg choice='opt'>-I <replaceable>inactive</replaceable></arg>
<sbr/>
<arg choice='opt'>-E <replaceable>expiredate</replaceable></arg>
<arg choice='opt'>-W <replaceable>warndays</replaceable></arg>
<arg choice='plain'><replaceable>user</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>chage</command>
<arg choice='plain'>-l <replaceable>user</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para><command>chage</command> command changes the number of days
between passwordchanges and the date of the last password change.
This information is used by the system to determine when a user must
change her password.
</para>
<para>The <command>chage</command> command is restricted to the root
user, except for the <option>-l</option> option, which may be used by
an unprivileged user to determine when her password or account is due
to expire.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>chage</command> command are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-d</option> <replaceable>lastday</replaceable>
</term>
<listitem>
<para>
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 format more commonly used in your area).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-E</option> <replaceable>expiredate</replaceable>
</term>
<listitem>
<para>Set the date on which the user's account will no longer be
accessible. The <emphasis remap='I'>expiredate</emphasis> 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 account is locked must contact the system
administrator before being able to use the system again. Passing
the number <emphasis remap='I'>-1</emphasis> as the <emphasis
remap='I'>expiredate</emphasis> will remove an accounts
expiration date.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-I</option> <replaceable>inactive</replaceable>
</term>
<listitem>
<para>
Set the number of days of inactivity after a password has
expired before the account is locked. The <emphasis
remap='I'>inactive</emphasis> 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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-m</option> <replaceable>mindays</replaceable>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-M</option> <replaceable>maxdays</replaceable>
</term>
<listitem>
<para>
Set maximum number of days during which a password is valid.
When <emphasis remap='I'>maxdays</emphasis> plus <emphasis
remap='I'>lastday</emphasis> 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 <option>-W</option> option, which provides
the user with advance warning.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-W</option> <replaceable>warndays</replaceable>
</term>
<listitem>
<para>
Set the number of days of warning before a password change is
required. The <emphasis remap='I'>warndays</emphasis> option is
the number of days prior to the password expiring that a user
will be warned her password is about to expire.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
If none of the options are selected, <command>chage</command> operates
in an interactive fashion, prompting the user with the current values
for all of the fields. 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 <emphasis remap='B'>[ ]</emphasis> marks.
</para>
</refsect1>
<refsect1 id='note'>
<title>NOTE</title>
<para>
The <command>chage</command> program requires shadow password file to
be available. Its functionality is not available when passwords are
stored in the passwd file.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term>
<filename>/etc/passwd</filename>
</term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term>
<filename>/etc/shadow</filename>
</term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>.
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

81
man/chfn.1.xml Normal file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='chfn.1'>
<!-- $Id: chfn.1.xml,v 1.8 2005/04/27 16:19:48 kloczek Exp $ -->
<refmeta>
<refentrytitle>chfn</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>chfn</refname>
<refpurpose>change real user name and information</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>chfn</command>
<arg choice='opt'>-f <replaceable>full_name</replaceable></arg>
<arg choice='opt'>-r <replaceable>room_no</replaceable></arg>
<arg choice='opt'>-w <replaceable>work_ph</replaceable></arg>
<arg choice='opt'>-h <replaceable>home_ph</replaceable></arg>
<arg choice='opt'>-o <replaceable>other</replaceable></arg>
<arg choice='opt'><replaceable>user</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para><command>chfn</command> changes user fullname, office number,
office extension, and home phone number information for a user's
account. This information is typically printed by <citerefentry>
<refentrytitle>finger</refentrytitle><manvolnum>1</manvolnum>
</citerefentry> 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
<option>-o</option> option to change the undefined portions of the
GECOS field.
</para>
<para>The only restriction placed on the contents of the fields is that
no control characters may be present, nor any of comma, colon, or
equal sign. The <emphasis remap='I'>other</emphasis> field does not
have this restriction, and is used to store accounting information
used by other applications.
</para>
<para> If none of the options are selected, <command>chfn</command>
operates in an interactive fashion, prompting the user with the
current values for all of the fields. 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 <emphasis remap='B'>[
]</emphasis> marks. Without options, chfn prompts for the current
user account.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

101
man/chpasswd.8.xml Normal file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='chpasswd.8'>
<!-- $Id: chpasswd.8.xml,v 1.6 2005/04/27 16:22:25 kloczek Exp $ -->
<refmeta>
<refentrytitle>chpasswd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>chpasswd</refname>
<refpurpose>update passwords in batch mode</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>chpasswd</command>
<arg choice='opt'>
<replaceable>options</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>chpasswd</command> reads a list of user name and password
pairs from standard input and uses this information to update a group
of existing users. Each line is of the format:
</para>
<para>
<emphasis remap='I'>user_name</emphasis>:<emphasis
remap='I'>password</emphasis>
</para>
<para>By default the supplied password must be in clear-text. Default
encription algoritm is DES. Also the password age will be updated, if
present.
</para>
<para>This command is intended to be used in a large system environment
where many accounts are created at a single time.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>chpasswd</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term><option>-e</option>, <option>--encrypted</option></term>
<listitem>
<para>Supplied passwords are in encrypted form.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option>, <option>--help</option></term>
<listitem>
<para>Display help message and exit.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option>, <option>--md5</option></term>
<listitem>
<para>Use MD5 encryption instead DES when the supplied passwords
are not encrypted.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>Remember keep protected for reading by others fille passed to
standard input <command>chpasswd</command> command if it contains
unencrypted passwords.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>newusers</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

86
man/chsh.1.xml Normal file

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='chsh1'>
<!-- $Id: chsh.1.xml,v 1.6 2005/04/27 16:24:09 kloczek Exp $ -->
<refmeta>
<refentrytitle>chsh</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>chsh</refname>
<refpurpose>change login shell</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>chsh</command>
<arg choice='opt'>-s <replaceable>login_shell</replaceable></arg>
<arg choice='opt'><replaceable>user</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>chsh</command> 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 for her own account, the super user may change
the login shell for any account.
</para>
<para>The only restrictions placed on the login shell is that the
command name must be listed in <filename>/etc/shells</filename>,
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 <filename>/bin/rsh</filename> in
<filename>/etc/shells</filename> is discouraged since accidentally
changing to a restricted shell would prevent the user from every
changing her login shell back to its original value.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>If the <option>-s</option> option is not selected,
<command>chsh</command> 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 <emphasis remap='B'>[ ]</emphasis>
marks.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shells</filename></term>
<listitem>list of valid login shells</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/cs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/de
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/es
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

63
man/expiry.1.xml Normal file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='expiry.1'>
<!-- $Id: expiry.1.xml,v 1.6 2005/04/27 16:25:27 kloczek Exp $ -->
<refmeta>
<refentrytitle>expiry</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>expiry</refname>
<refpurpose>check and enforce password expiration policy</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>expiry</command>
<arg choice='opt'>-c </arg>
<arg choice='opt'>-f </arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>expiry</command> checks (<option>-c</option>) the current
password expiration and forces (<option>-f</option>) changes when
required. It is callable as a normal user command.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Ben Collins &lt;bcollins@debian.org&gt;</para>
</refsect1>
</refentry>

61
man/faillog.5.xml Normal file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='faillog.5'>
<!-- $Id: faillog.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>faillog</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>faillog</refname>
<refpurpose>Login failure logging file</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<filename>/var/log/faillog</filename> maintains a count of login
failures and the limits for each account. The file is fixed length
record, indexed by numerical UID. Each record contains the count of
login failures since the last successful login; the maximum number of
failures before the account is disabled; the line the last login
failure occured on; and the date the last login failure occured.
</para>
<para>The structure of the file is</para>
<literallayout remap='DS'>
struct faillog {
short fail_cnt;
short fail_max;
char fail_line[12];
time_t fail_time;
};
</literallayout>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/var/log/faillog</filename></term>
<listitem>login failure log</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>faillog</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

157
man/faillog.8.xml Normal file

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='faillog.8'>
<!-- $Id: faillog.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>faillog</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>faillog</refname>
<refpurpose>display faillog records or set login failure limits</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>faillog</command>
<arg choice='opt'>
<replaceable>options</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>faillog</command> formats the contents of the failure log
from <filename>/var/log/faillog</filename> database. It also can be
used for maintains failure counters and limits. Run
<command>faillog</command> without arguments display only list of user
faillog records who have ever had a login failure.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>faillog</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term><option>-a</option>, <option>--all</option></term>
<listitem>
<para>Display faillog records for all users.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option>, <option>--help</option></term>
<listitem>
<para>Display help message and exit.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-l</option>, <option>--lock-time</option>
<replaceable>SEC</replaceable>
</term>
<listitem>
<para>
Lock accout to <emphasis remap='I'>SEC</emphasis>
seconds after failed login.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-m</option>, <option>--maximum</option>
<replaceable>MAX</replaceable>
</term>
<listitem>
<para>Set maiximum number of login failures after the account is
disabled to <emphasis remap='I'>MAX</emphasis>. Selecting
<emphasis remap='I'>MAX</emphasis> 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 <emphasis
remap='B'>root</emphasis> to prevent a denial of services attack
against the system.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option>, <option>--reset</option></term>
<listitem>
<para>Reset the counters of login failures or one recor if used
with -u <emphasis remap='I'>LOGIN</emphasis> option. Write
access to <filename>/var/log/faillog</filename> is required for
this option.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option>, <option>--time</option>
<replaceable>DAYS</replaceable>
</term>
<listitem>
<para>
Display faillog records more recent than <emphasis
remap='I'>DAYS</emphasis>. The <option>-t</option> flag overrides
the use of <option>-u</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-u</option>, <option>--user</option>
<replaceable>LOGIN</replaceable>
</term>
<listitem>
<para>Display faillog record or maintains failure counters and
limits (if used with <option>-l</option>, <option>-m</option> or
<option>-r</option> options) only for user with <emphasis
remap='I'>LOGIN</emphasis>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
<command>faillog</command> 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 <option>-u</option> flag, or print out all users
with the <option>-a</option> flag.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/var/log/faillog</filename></term>
<listitem>failure logging file</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>faillog</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/fr
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

127
man/gpasswd.1.xml Normal file

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='gpasswd1'>
<!-- $Id: gpasswd.1.xml,v 1.7 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>gpasswd</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>gpasswd</refname>
<refpurpose>administer the /etc/group file</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='plain'>
<replaceable>group</replaceable>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='plain'>-a <replaceable>user</replaceable></arg>
<arg choice='plain'><replaceable>group</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='plain'>-d <replaceable>user</replaceable></arg>
<arg choice='plain'><replaceable>group</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='plain'>-R <replaceable>group</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='plain'>-r <replaceable>group</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>gpasswd</command>
<arg choice='opt' rep='repeat'>-A <replaceable>user,</replaceable></arg>
<arg choice='opt' rep='repeat'>-M <replaceable>user,</replaceable></arg>
<arg choice='plain'><replaceable>group</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>gpasswd</command> is used to administer the
<filename>/etc/group</filename> file (and
<filename>/etc/gshadow</filename> file if compiled with SHADOWGRP
defined). Every group can have administrators, members and a password.
System administrator can use <option>-A</option> option to define
group administrator(s) and <option>-M</option> option to define
members and has all rights of group administrators and members.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
Group administrator can add and delete users using <option>-a</option>
and <option>-d</option> options respectively. Administrators can use
<option>-r</option> option to remove group password. When no password
is set only group members can use <command>newgrp</command> to join
the group. Option <option>-R</option> disables access via a password
to the group through <command>newgrp</coamand> command (however
members will still be able to switch to this group).
</para>
<para><command>gpasswd</command> called by a group administrator with
group name only prompts for the group password. If password is set the
members can still <citerefentry>
<refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
</citerefentry> without a password, non-members must supply the password.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>grpck</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>gshadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Rafal Maszkowski &lt;rzm@pdi.net&gt;</para>
</refsect1>
</refentry>

150
man/groupadd.8.xml Normal file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='groupadd.8'>
<!-- $Id: groupadd.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>groupadd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>groupadd</refname>
<refpurpose>Create a new group</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>groupadd</command>
<arg choice='opt'>
<arg choice='plain'>-g <replaceable>gid</replaceable></arg>
<arg choice='opt'>-o </arg>
</arg>
<arg choice='opt'>-f </arg>
<arg choice='plain'>
<replaceable>group</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>The <command>groupadd</command> 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.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>groupadd</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-f</option>
</term>
<listitem>
<para>This option causes to just exit with success status if the
specified group already exists. With <option>-g</option>, if
specified gid already exists, other (unique) gid is chosen (i.e.
<option>-g</option> is turned off).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-g</option> <replaceable>gid</replaceable>
</term>
<listitem>
<para>The numerical value of the group's ID. This value must be
unique, unless the <option>-o</option> 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.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>groupadd</command> command exits with the
following values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>2</literal> - invalid command syntax
<!-- .br -->
<literal>3</literal> - invalid argument to option
<!-- .br -->
<literal>4</literal> - gid not unique (when -o not
used) <!-- .br -->
<literal>9</literal> - group name not unique
<!-- .br -->
<literal>10</literal> - can't update group file
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

117
man/groupdel.8.xml Normal file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='groupdel.8'>
<!-- $Id: groupdel.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>groupdel</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>groupdel</refname>
<refpurpose>Delete a group</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>groupdel</command>
<arg choice='plain'>
<replaceable>group</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para> The <command>groupdel</command> command modifies the system
account files, deleting all entries that refer to <emphasis
remap='I'>group</emphasis>. The named group must exist.
</para>
<para>You must manually check all filesystems to insure that no files
remain with the named group as the file group ID.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>You may not remove the primary group of any existing user. You
must remove the user before you remove the group.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>groupdel</command> command exits with the
following values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>2</literal> - invalid command syntax
<!-- .br -->
<literal>6</literal> - specified group doesn't exist
<!-- .br -->
<literal>8</literal> - can't remove user's primary
group <!-- .br -->
<literal>10</literal> - can't update group file
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

153
man/groupmems.8.xml Normal file

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='groupmems.8'>
<!-- $Id: groupmems.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>groupmems</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>groupmems</refname>
<refpurpose>Administer members of a user's primary group</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>groupmems</command>
<group choice='plain'>
<arg choice='plain'>-a <replaceable>user_name</replaceable></arg>
<arg choice='plain'>-d <replaceable>user_name</replaceable></arg>
<arg choice='plain'>-l </arg><arg choice='plain'>-D </arg>
<arg choice='opt'>-g <replaceable>group_name</replaceable></arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>groupmems</command> utility allows a user to administer
his/her own group membership list without the requirement of super
user privileges. The <command>groupmems</command> utility is for
systems that configure its users to be in their own name sake primary
group (i.e., guest / guest).
</para>
<para>Only the super user, as administrator, can use
<command>groupmems</command> to alter the memberships of other groups.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>groupmems</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term><option>-a</option> <replaceable>user_name</replaceable></term>
<listitem>
<para>Add a new user to the group membership list.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option> <replaceable>user_name</replaceable></term>
<listitem>
<para>Delete a user from the group membership list.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-D</option></term>
<listitem>
<para>Delete all users from the group membership list.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option> <replaceable>group_name</replaceable></term>
<listitem>
<para>The super user can specify which group membership
list to modify.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<listitem>
<para>List the group membership list.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='setup'>
<title>SETUP</title>
<para>
The <command>groupmems</command> executable should be in mode
<literal>2770</literal> as user <emphasis remap='B'>root</emphasis>
and in group <emphasis remap='B'>groups</emphasis>. The system
administrator can add users to group groups to allow or disallow them
using the <command>groupmems</command> utility to manage their own
group membership list.
</para>
<para> $ groupadd -r groups
<!-- .br -->
$ chmod 2770 groupmems
<!-- .br -->
$ chown root.groups groupmems
<!-- .br -->
$ groupmems -g groups -a gk4
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>George Kraft IV (gk4@us.ibm.com)</para>
</refsect1>
</refentry>

145
man/groupmod.8.xml Normal file

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='groupmod.8'>
<!-- $Id: groupmod.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>groupmod</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>groupmod</refname>
<refpurpose>modify a group</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>groupmod</command>
<arg choice='opt'>
<arg choice='plain'>-g <replaceable>gid</replaceable></arg>
<arg choice='opt'>-o </arg>
</arg>
<arg choice='opt'>-n <replaceable>new_group_name</replaceable></arg>
<arg choice='plain'><replaceable>group</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>groupmod</command> command modifies the system account
files to reflect the changes that are specified on the command line.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>groupmod</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-g</option> <replaceable>gid</replaceable>
</term>
<listitem>
<para>The numerical value of the group's ID. This value must be
unique, unless the <option>-o</option> 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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option> <replaceable>new_group_name</replaceable></term>
<listitem>
<para> The name of the group will be changed from <emphasis
remap='I'>group</emphasis> to <emphasis
remap='I'>new_group_name</emphasis>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>groupmod</command> command exits with the
following values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>2</literal> - bad command syntax
<!-- .br -->
<literal>3</literal> - invalid argument to option
<!-- .br -->
<literal>4</literal> - gid already in use (and no -o)
<!-- .br -->
<literal>6</literal> - specified group doesn't exist
<!-- .br -->
<literal>9</literal> - group name already in use
<!-- .br -->
<literal>10</literal> - can't update group file
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

78
man/groups.1.xml Normal file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='groups.1'>
<!-- $Id: groups.1.xml,v 1.7 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>groups</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>groups</refname>
<refpurpose>display current group names</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>groups</command>
<arg choice='opt'>
<replaceable>user</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>groups</command> displays the current group names or ID
values. If the value does not have a corresponding entry in
<filename>/etc/group</filename>, the value will be displayed as the
numerical group value. The optional <emphasis
remap='I'>user</emphasis> parameter will display the groups for the
named <emphasis remap='I'>user</emphasis>.
</para>
</refsect1>
<refsect1 id='note'>
<title>NOTE</title>
<para>Systems which do not support concurrent group sets will have the
information from <filename>/etc/group</filename> reported. The user
must use <command>newgrp</coamand> or <command>sg</coamand> to change
their current real and effective group ID.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getgid</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getgroups</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getuid</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

150
man/grpck.8.xml Normal file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='grpck.8'>
<!-- $Id: grpck.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>grpck</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>grpck</refname>
<refpurpose>verify integrity of group files</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>grpck</command> <arg choice='opt'>-r </arg>
<arg choice='opt'>
<arg choice='plain'><replaceable>group</replaceable></arg>
<arg choice='plain'><replaceable>shadow</replaceable></arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>grpck</command> verifies the integrity of the system
authentication information. All entries in the
<filename>/etc/group</filename> and <filename>/etc/gshadow</filename>
are checked to see that the entry has the proper format and valid data
in each field. The user is prompted to delete entries that are
improperly formatted or which have other incorrectable errors.
</para>
<para>Checks are made to verify that each entry has:</para>
<!-- .in +.5i -->
<para>- the correct number of fields
<!-- .br -->
- a unique group name
<!-- .br -->
- a valid list of members and administrators
</para>
<!-- .in \-.5i -->
<para>The checks for correct number of fields and unique group name are
fatal. If the entry has the wrong number of fields, the user will be
prompted to delete the entire line. If the user does not answer
affirmatively, all further checks are bypassed. An entry with a
duplicated group name is prompted for deletion, but the remaining
checks will still be made. All other errors are warnings and the user
is encouraged to run the <command>groupmod</coamand> command to
correct the error.
</para>
<para>The commands which operate on the <filename>/etc/group</filename>
file are not able to alter corrupted or duplicated entries.
<command>grpck</command> should be used in those circumstances to
remove the offending entry.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
By default, <command>grpck</command> operates on the files
<filename>/etc/group</filename> and <filename>/etc/gshadow</filename>.
The user may select alternate files with the <emphasis
remap='I'>group</emphasis> and <emphasis remap='I'>shadow</emphasis>
parameters. Additionally, the user may execute the command in
read-only mode by specifying the <option>-r</option> flag. This causes
all questions regarding changes to be answered <emphasis
remap='B'>no</emphasis> without user intervention.
<command>grpck</command> can also sort entries in
<filename>/etc/group</filename> and <filename>/etc/gshadow</filename>
by GID. To run it in sort mode pass it <option>-s</option> flag. No
checks are performed then, it just sorts.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>grpck</command> command exits with the
following values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>1</literal> - syntax Error
<!-- .br -->
<literal>2</literal> - one or more bad group entries
<!-- .br -->
<literal>3</literal> - can't open group files
<!-- .br -->
<literal>4</literal> - can't lock group files
<!-- .br -->
<literal>5</literal> - can't update group files
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

87
man/gshadow.5.xml Normal file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='gshadow.5'>
<!-- $Id: gshadow.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>gshadow</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>gshadow</refname>
<refpurpose>shadowed group file</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='I'>gshadow</emphasis> contains the shadowed
information for group accounts. It contains lines with the folowing
colon-separated fields:
</para>
<para>Group name</para>
<para>Encrypted password</para>
<para>Comma-separated list of group administrators</para>
<para>Comma-separated list of group members.</para>
<para>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 <citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> for details on how this string is interpreted. If the
password field contains some string that is not valid result of
<citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>, for instance ! or *, the user will not be able to use
a unix password to log in, subject to <citerefentry>
<refentrytitle>pam</refentrytitle><manvolnum>7</manvolnum>
</citerefentry>.
</para>
<para>This information supercedes any password present in
<filename>/etc/group</filename>.
</para>
<para>This file must not be readable by regular users if password
security is to be maintained.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>secure group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>gpasswd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>newgrp</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Nicolas FRANCOIS</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/hu
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

68
man/id.1.xml Normal file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='id.1'>
<!-- $Id: id.1.xml,v 1.6 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>id</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>id</refname>
<refpurpose>Display current user and group ID names</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>id</command> <arg choice='opt'>-a </arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>id</command> displays the current real and effective user and
group ID names or values. If the value does not have a corresponding
entry in <filename>/etc/passwd</filename> or
<filename>/etc/group</filename>, the value will be displayed without
the corresponding name. The optional <option>-a</option> flag will
display the group set on systems which support multiple concurrent
group membership.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>getgid</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getgroups</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getuid</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/id
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/it
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/ja
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/ko
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

125
man/lastlog.8.xml Normal file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='lastlog.8'>
<!-- $Id: lastlog.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>lastlog</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>lastlog</refname>
<refpurpose>examine lastlog file</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>lastlog</command>
<arg choice='opt'>
<replaceable>options</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>lastlog</command> formats and prints the contents of the last
login log <filename>/var/log/lastlog</filename> file. The <emphasis
remap='B'> login-name</emphasis>, <emphasis remap='B'>port</emphasis>,
and <emphasis remap='B'>last login time</emphasis> will be printed.
The default (no flags) causes lastlog entries to be printed, sorted by
their order in <filename>/etc/passwd</filename>.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The options which apply to the <command>lastlog</command>
command are:
</term>
</varlistentry>
</variablelist>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-h</option>, <option>--help</option>
</term>
<listitem>
<para>Print help message and exit.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-t</option>, <option>--time</option> <replaceable>
DAYS
</replaceable>
</term>
<listitem>
<para>
Print the lastlog records more recent than <emphasis remap='I'>
DAYS
</emphasis>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-u</option>, <option>--user</option> <replaceable>
LOGIN
</replaceable>
</term>
<listitem>
<para> Print the lastlog record for user with specified <emphasis
remap='I'> LOGIN</emphasis>only.
</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist remap='TP'>
<varlistentry>
<term>
The <option>-t</option> flag overrides the use of <option>-u</option>.
</term>
<listitem>
<para></para> <!-- FIXME: blank list item -->
</listitem>
</varlistentry>
</variablelist>
<para> If the user has never logged in the message <emphasis
remap='B'>"**Never logged in**" </emphasis> will be displayed instead
of the port and time.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/var/log/lastlog</filename></term>
<listitem>lastlog logging file</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>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).
</para>
</refsect1>
<refsect1 id='authors'>
<title>AUTHORS</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)
<!-- .br -->
Phillip Street
</para>
</refsect1>
</refentry>

144
man/limits.5.xml Normal file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='limits5'>
<!-- $Id: limits.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>LIMITS</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>limits</refname>
<refpurpose>Resource limits definition</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <emphasis remap='I'>limits</emphasis> file (/etc/limits by
default or LIMITS_FILE defined
config.h) describes the resource limits you wish to impose. It
should be
owned by root and readable by root account only.
</para>
<para>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).
</para>
<para>Each line describes a limit for a user in the form:</para>
<para>
<emphasis remap='I'>user LIMITS_STRING</emphasis>
</para>
<para>
The <emphasis remap='B'>LIMITS_STRING</emphasis> is a string of a
concatenated list of resource limits.
Each limit consists of a letter identifier followed by a numerical
limit.
</para>
<para>The valid identifiers are:</para>
<para>A: max address space (KB)
<!-- .br -->
C: max core file size (KB)
<!-- .br -->
D: max data size (KB)
<!-- .br -->
F: maximum filesize (KB)
<!-- .br -->
M: max locked-in-memory address space (KB)
<!-- .br -->
N: max number of open files
<!-- .br -->
R: max resident set size (KB)
<!-- .br -->
S: max stack size (KB)
<!-- .br -->
T: max CPU time (MIN)
<!-- .br -->
U: max number of processes
<!-- .br -->
K: file creation mask, set by
<citerefentry>
<refentrytitle>umask</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
.
<!-- .br -->
L: max number of logins for this user
<!-- .br -->
P: process priority, set by
<citerefentry>
<refentrytitle>setpriority</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
.
</para>
<para> For example, <emphasis remap='I'>L2D2048N5</emphasis> is a valid
<emphasis remap='B'>LIMITS_STRING </emphasis>. For reading
convenience, the following entries are equivalent:
</para>
<para>username L2D2048N5
<!-- .br -->
username L2 D2048 N5
</para>
<para> Be aware that after <emphasis remap='I'>username</emphasis> the
rest of the line is considered a limit string, thus comments are not
allowed. A invalid limits string will be rejected (not considered) by
the login program.
</para>
<para> The default entry is denoted by username "<emphasis
remap='B'>*</emphasis>". If you have multiple <emphasis
remap='I'>default</emphasis> entries in your <emphasis
remap='B'>LIMITS_FILE</emphasis>, then the last one will be used as
the default entry.
</para>
<para>To completely disable limits for a user, a single dash "<emphasis
remap='B'>-</emphasis> "will do.
</para>
<para>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 ;)
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/limits</filename></term>
<listitem></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>setpriority</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>setrlimit</refentrytitle><manvolnum>2</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Cristian Gafton (gafton@sorosis.ro)</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\" $Id: login.1,v 1.23 2005/04/12 16:31:06 kloczek Exp $
.\" $Id: login.1,v 1.24 2005/04/26 12:38:53 kloczek Exp $
.\" Copyright 1989 - 1994, Julianne Frances Haugh
.\" All rights reserved.
.\"
@ -37,7 +37,7 @@ login \- begin session on the system
.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
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
\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

216
man/login.1.xml Normal file

@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='login.1'>
<!-- $Id: login.1.xml,v 1.6 2005/04/26 12:45:50 kloczek Exp $ -->
<refmeta>
<refentrytitle>LOGIN</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>login</refname>
<refpurpose>begin session on the system</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>login</command>
<arg choice='opt'>-p </arg>
<arg choice='opt'>
<replaceable>username</replaceable></arg>
<arg choice='opt' rep='repeat'> <replaceable>ENV=VAR</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>login</command>
<arg choice='opt'>-p </arg>
<arg choice='opt'>-h <replaceable>host</replaceable></arg>
<arg choice='opt'>-f <replaceable>username</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>login</command>
<arg choice='opt'>-p </arg>
<arg choice='plain'>-r <replaceable>host</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>login</command> is used to establish a new session with the
system. It is normally invoked automatically by responding to the
<emphasis remap='I'>login:</emphasis> prompt on the user&acute;s
terminal. <command>login</command> may be special to the shell and may
not be invoked as a sub-process. Typically, <command>login</command>
is treated by the shell as <emphasis remap='B'>exec login</emphasis>
which causes the user to exit from the current shell. Attempting to
execute <command>login</command> from any shell but the login shell
will produce an error message.
</para>
<para>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
<command>login</command> exits and the communications link is severed.
</para>
<para>If password aging has been enabled for your account, you may be
prompted for a new password before proceeding. You will be forced to
provide your old password and the new password before continuing.
Please refer to <citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry> for more information.
</para>
<para>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, <filename>/etc/motd</filename>, by creating a
zero-length file <markup>.hushlogin</markup> in your login directory.
The mail message will be one of "<emphasis remap='B'>You have new
mail.</emphasis> ", "<emphasis remap='B'>You have mail.</emphasis>",
or "<emphasis remap='B'>No Mail.</emphasis> "according to the
condition of your mailbox.
</para>
<para>Your user and group ID will be set according to their values in
the <filename>/etc/passwd</filename> file. The value for <emphasis
remap='B'>$HOME</emphasis>, <emphasis remap='B'>$SHELL</emphasis>,
<emphasis remap='B'>$PATH</emphasis>, <emphasis remap='B'>$LOGNAME</emphasis>,
and <emphasis remap='B'>$MAIL</emphasis> are set according to the
appropriate fields in the password entry. Ulimit, umask and nice
values may also be set according to entries in the GECOS field.
</para>
<para>On some installations, the environmental variable <emphasis
remap='B'>$TERM</emphasis> will be initialized to the terminal type on
your tty line, as specified in <filename>/etc/ttytype</filename>.
</para>
<para>An initialization script for your command interpreter may also be
executed. Please see the appropriate manual section for more
information on
this function.
</para>
<para>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.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-f</option>
</term>
<listitem>
<para>Do not perform authentication, user is preauthenticated.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-h</option>
</term>
<listitem>
<para>Name of the remote host for this login.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-p</option>
</term>
<listitem>
<para>Preserve environment.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-r</option>
</term>
<listitem>
<para>Perform autologin protocol for rlogin.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The <option>-r</option>, <option>-h</option> and
<option>-f</option> options are only used when
<command>login</command> is invoked by root.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
This version of <command>login</command> has many compilation options,
only some of which may be in use at any particular site.
</para>
<para>The location of files is subject to differences in system
configuration.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<para>
<filename>/var/run/utmp</filename> - list of current login
sessions <!-- .br -->
<filename>/var/log/wtmp</filename> - list of previous login
sessions
<!-- .br -->
<filename>/etc/passwd</filename> - user account information
<!-- .br -->
<filename>/etc/shadow</filename> - secure user account information
<!-- .br -->
<filename>/etc/motd</filename> - system message file
<!-- .br -->
<filename>/etc/nologin</filename> - prevent non-root users from
logging in
<!-- .br -->
<filename>/etc/ttytype</filename> - list of terminal types
<!-- .br -->
<emphasis remap='I'>$HOME/.hushlogin</emphasis> - suppress printing
of system messages
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>mail</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>nologin</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

104
man/login.access.5.xml Normal file

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='loginaccess5'>
<!-- $Id: login.access.5.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
<!-- this is comment -->
<refmeta>
<refentrytitle>LOGIN.ACCESS</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>login.access</refname>
<refpurpose>Login access control table</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <emphasis remap='I'>login.access</emphasis> file specifies
(user, host) combinations and/or
(user, tty) combinations for which a login will be either accepted
or
refused.
</para>
<para>
When someone logs in, the <emphasis remap='I'>login.access</emphasis> is
scanned for the first entry
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.
</para>
<para>Each line of the login access control table has three fields
separated by a
":" character:
</para>
<para>
<emphasis remap='I'>permission</emphasis>:<emphasis remap='I'>users</emphasis>:<emphasis remap='I'>
origins
</emphasis>
</para>
<para>
The first field should be a "<emphasis remap='B'>+</emphasis>"
(access granted) or "<emphasis remap='B'>-</emphasis>" (access
denied) character. The second field should be a list of one or more
login
names, group names, or <emphasis remap='B'>ALL</emphasis> (always
matches). The third field should be
a list of one or more tty names (for non-networked logins), host
names,
domain names (begin with "<literal>.</literal>"), host addresses,
internet network
numbers (end with "<literal>.</literal>"), <emphasis remap='B'>ALL</emphasis> (always matches) or <emphasis remap='B'>
LOCAL
</emphasis>
(matches any string that does not contain a "<literal>.</literal>"
character). If you run
NIS you can use @netgroupname in host or user patterns.
</para>
<para>
The <emphasis remap='B'>EXCEPT</emphasis> operator makes it
possible to write very compact rules.
</para>
<para>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
listed: the program does not look at a user's primary group id
value.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<para>
<filename>/etc/loginn.defs</filename> - shadow password suite
configuration
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Guido van Rooij</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\" $Id: login.defs.5,v 1.15 2005/04/05 18:47:50 kloczek Exp $
.\" $Id: login.defs.5,v 1.17 2005/04/26 12:16:36 kloczek Exp $
.\" Copyright 1991 - 1993, Julianne Frances Haugh and Chip Rosenthal
.\" All rights reserved.
.\"
@ -57,8 +57,8 @@ If \fIyes\fR, the \fBchfn\fR and \fBchsh\fR programs will require
authentication before making any changes, unless run by the superuser.
.\"
.IP "CHFN_RESTRICT (string)"
This parameter specifies which values in the fIgecos\fR field of the
\fI/etc/passwd\fR file may be changed by regular users using the fBchfn\fR
This parameter specifies which values in the \fIgecos\fR field of the
\fI/etc/passwd\fR file may be changed by regular users using the \fBchfn\fR
program. It can be any combination of letters \fIf\fR, \fIr\fR, \fIw\fR,
\fIh\fR, for Full name, Room number, Work phone, and Home phone,
respectively. For backward compatibility, "yes" is equivalent to "rwh" and

285
man/login.defs.5.xml Normal file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='login.defs.5'>
<!-- $Id: login.defs.5.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>login.defs</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>/etc/login.defs</refname>
<refpurpose>shadow password suite configuration</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>The <filename>/etc/login.defs</filename> 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.
</para>
<para>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.
</para>
<para>Parameter values may be of four types: strings, booleans,
numbers, and long numbers. A string is comprised of any printable
characters. A boolean should be either the value &ldquo;yes&rdquo; or
&ldquo;no&rdquo;. An undefined boolean parameter or one with a value
other than these will be given a &ldquo;no&rdquo; value. Numbers (both
regular and long) may be either decimal values, octal values (precede
the value with &ldquo;0&rdquo;) or hexadecimal values (precede the
value with &ldquo;0x&rdquo;). The maximum value of the regular and
long numeric parameters is machine-dependent.
</para>
<para>The following configuration items are provided:</para>
<variablelist remap='IP'>
<varlistentry>
<term>CHFN_AUTH (boolean)</term>
<listitem>
<para> If <emphasis remap='I'>yes</emphasis>, the
<command>chfn</coamand> and <command>chsh</coamand> programs
will require authentication before making any changes, unless
run by the superuser.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CHFN_RESTRICT (string)</term>
<listitem>
<para>This parameter specifies which values in the <emphasis
remap='I'>gecos</emphasis> field of the
<filename>/etc/passwd</filename> file may be changed by regular
users using the <command>chfn</command> program. It can be any
combination of letters <emphasis remap='I'>f</emphasis>
,<emphasis remap='I'>r</emphasis>, <emphasis remap='I'>w</emphasis>,
<emphasis remap='I'>h</emphasis>, for Full name, Room number,
Work phone, and Home phone, respectively. For backward
compatibility, "yes" is equivalent to "rwh" and "no" is
equivalent to "frwh". If not specified, only the superuser can
make any changes. The most restrictive setting is better
achieved by not installing chfn SUID.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CREATE_HOME (boolean)</term>
<listitem>
<para>This defines whether useradd should create home directories
for users by default. This option is OR'ed with the
<option>-m</option> flag on useradd command line.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>GID_MAX (number)</term>
<term>GID_MIN (number)</term>
<listitem>
<para>
Range of group IDs to choose from for the
<command>useradd</coamand> and
<command>groupadd</coamand>programs.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MAIL_DIR (string)</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_MAX_DAYS (number)</term>
<listitem>
<para>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 assumed (which disables the
restriction).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_MIN_DAYS (number)</term>
<listitem>
<para>The minimum number of days allowed between password changes.
Any password changes attempted sooner than this will be
rejected. If not specified, -1 will be assumed (which disables
the restriction).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_WARN_AGE (number)</term>
<listitem>
<para>The number of days warning given before a password expires.
A zero means warning is given only upon the day of expiration, a
negative value means no warning is given. If not specified, no
warning will be provided.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>PASS_MAX_DAYS, PASS_MIN_DAYS and PASS_WARN_AGE are only used at
the time of account creation. Any changes to these settings won't
affect existing accounts.
</para>
<variablelist remap='IP'>
<varlistentry>
<term>UID_MAX (number)</term>
<term>UID_MIN (number)</term>
<listitem>
<para>
Range of user IDs to choose from for the
<command>useradd</coamand> program.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UMASK (number)</term>
<listitem>
<para>The permission mask is initialized to this value. If not
specified, the permission mask will be initialized to 077.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>USERDEL_CMD (string)</term>
<listitem>
<para>If defined, this command is run when removing a user. It
should remove any at/cron/print jobs etc. owned by the user to
be removed (passed as the first argument).
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='cross_reference'>
<title>CROSS REFERENCE</title>
<para>The following cross reference shows which programs in the shadow
password suite use which parameters.
</para>
<!-- .na -->
<variablelist remap='IP'>
<varlistentry>
<term>chfn</term>
<listitem>
<para>CHFN_AUTH CHFN_RESTRICT</para>
</listitem>
</varlistentry>
<varlistentry>
<term>chsh</term>
<listitem>
<para>CHFN_AUTH</para>
</listitem>
</varlistentry>
<varlistentry>
<term>groupadd</term>
<listitem>
<para>GID_MAX GID_MIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term>newusers</term>
<listitem>
<para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
UMASK
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>pwconv</term>
<listitem>
<para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE</para>
</listitem>
</varlistentry>
<varlistentry>
<term>useradd</term>
<listitem>
<para>CREATE_HOME
GID_MAX GID_MIN
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
UID_MAX UID_MIN
UMASK
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>userdel</term>
<listitem>
<para>MAIL_DIR
USERDEL_CMD
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>usermod</term>
<listitem>
<para>MAIL_DIR</para>
<!-- .ad -->
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='bugs'>
<title>BUGS</title>
<para>Much of the functionality that used to be provided by the shadow
password suite is now handled by PAM. Thus,
<filename>/etc/login.defs</filename> is no longer used by programs
such as:
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>.
Please refer to the corresponding PAM configuration files instead.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='authors'>
<title>AUTHORS</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com) Chip Rosenthal (chip@unicom.com)
</para>
</refsect1>
</refentry>

78
man/logoutd.8.xml Normal file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='logoutd8'>
<!-- $Id: logoutd.8.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
<!-- 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. -->
<refmeta>
<refentrytitle>LOGOUTD</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>logoutd</refname>
<refpurpose>Enforce login time restrictions</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>logoutd</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>logoutd</command> enforces the login time and port
restrictions specified in
<filename>/etc/porttime</filename>. <command>logoutd</command>
should be started from <filename>/etc/rc</filename>.
The <filename>/var/run/utmp</filename> file is scanned periodically
and each user name
is checked to see if the named user is permitted on the named port
at the current time.
Any login session which is violating the restrictions in <filename>
/etc/porttime
</filename>
is terminated.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<para>
<filename>/etc/porttime</filename> - login and port permissions
<!-- .br -->
<filename>/var/run/utmp</filename> - current login sessions
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

114
man/mkpasswd.8.xml Normal file

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='mkpasswd8'>
<!-- $Id: mkpasswd.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>mkpasswd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>mkpasswd</refname>
<refpurpose>Update passwd and group database files</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>mkpasswd</command>
<arg choice='opt'>-fvgps </arg>
<arg choice='plain'><replaceable>file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>mkpasswd</command> 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 <emphasis
remap='I'>file</emphasis>.dir and <emphasis
remap='I'>file</emphasis>.pag.
</para>
<para>The <option>-f</option> option causes <command>mkpasswd</command>
to ignore any existing output files and overwrite them. Normally
<command>mkpasswd</command> complains about existing output files and
quits.
</para>
<para>The <option>-v</option> option causes <command>mkpasswd</command>
to output information about each record as it is converted, with a
final message at the very end.
</para>
<para>The <option>-g</option> option treats the input file as though it
were in <filename>/etc/group</filename> file format. When combined
with the <option>-s</option> option, the
<filename>/etc/gshadow</filename> file format is used instead.
</para>
<para>The <option>-p</option> option treats the input file as though it
were in <filename>/etc/passwd</filename> file format. This is the
default. When combined with the <option>-s</option> option, the
<filename>/etc/shadow</filename> file format is used instead.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>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.
</para>
</refsect1>
<refsect1 id='note'>
<title>NOTE</title>
<para>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 corrupted database file.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/gshadow</filename></term>
<listitem>group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

146
man/newusers.8.xml Normal file

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='newusers8'>
<!-- $Id: newusers.8.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
<!-- 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. -->
<refmeta>
<refentrytitle>NEWUSERS</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>newusers</refname>
<refpurpose>update and create new users in batch</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>newusers</command>
<arg choice='opt'>
<replaceable>new_users</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>newusers</command> 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
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
)with the following exceptions.
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<emphasis remap='I'>pw_passwd</emphasis>
</term>
<listitem>
<para>This field will be encrypted and used as the new
value of the encrypted
password.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='I'>pw_age</emphasis>
</term>
<listitem>
<para>This field will be ignored for shadow passwords if
the user already exists.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='I'>pw_gid</emphasis>
</term>
<listitem>
<para>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,
a new group will be created having this number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='I'>pw_dir</emphasis>
</term>
<listitem>
<para>This field will be checked for existence as a
directory and a new directory
with the same name will be created if it does not
already exist. The
ownership of the directory will be set to be that of
the user being created
or updated.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>This command is intended to be used in a large system environment
where many
accounts are updated at a single time.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>The input file must be protected since it contains unencrypted
passwords.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>
,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\" $Id: passwd.1,v 1.24 2005/04/15 19:17:20 kloczek Exp $
.\" $Id: passwd.1,v 1.25 2005/05/09 10:14:40 kloczek Exp $
.\" Copyright 1989 - 1994, Julianne Frances Haugh
.\" All rights reserved.
.\"
@ -46,7 +46,7 @@ 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 \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
shell. The \fB\-f\fR option makes \fBpasswd\fR call \fBchfn\fR 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

311
man/passwd.1.xml Normal file

@ -0,0 +1,311 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='passwd.1'>
<!-- $Id: passwd.1.xml,v 1.8 2005/05/09 10:14:39 kloczek Exp $ -->
<refmeta>
<refentrytitle>passwd</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>passwd</refname>
<refpurpose>change user password</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>passwd</command>
<group choice='opt'>
<arg choice='plain'>-f </arg><arg choice='plain'>-s </arg>
</group>
<arg choice='opt'>
<replaceable>name</replaceable>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>passwd</command>
<arg choice='opt'>-g </arg>
<group choice='opt'>
<arg choice='plain'>-r </arg>
<arg choice='plain'>-R </arg>
</group>
<arg choice='plain'>
<replaceable>group</replaceable>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>passwd</command>
<arg choice='opt'>-x <replaceable>max</replaceable></arg>
<arg choice='opt'>-n <replaceable>min</replaceable></arg>
<arg choice='opt'>-w <replaceable>warn</replaceable></arg>
<arg choice='opt'>-i <replaceable>inact</replaceable></arg>
<arg choice='plain'><replaceable>login</replaceable>
</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>passwd</command>
<group choice='opt'>
<arg choice='plain'>-l </arg>
<arg choice='plain'>-u </arg>
<arg choice='plain'>-d </arg>
<arg choice='plain'>-S </arg>
<arg choice='plain'>-e </arg>
</group>
<arg choice='plain'><replaceable>login</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>passwd</command> changes passwords for user and group
accounts. A normal user may only change the password for his/her own
account, the super user may change the password for any account. The
administrator of a group may change the password for the group.
<command>passwd</command> also changes account information, such as
the full name of the user, user's login shell, or password expiry date
and interval.
</para>
<para>The <option>-s</option> option makes <command>passwd</command>
call <command>chsh</coamand> to change the user's shell. The
<option>-f</option> option makes <command>passwd</command> call
<command>chfn</command> to change the user's gecos information. These
two options are only meant for compatiblity, since the other programs
can be called directly.
</para>
<refsect2 id='password_changes'>
<title>Password Changes</title>
<para>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 user has only one chance to enter the correct
password. The super user is permitted to bypass this step so that
forgotten passwords may be changed.
</para>
<para>After the password has been entered, password aging information
is checked to see if the user is permitted to change the password at
this time. If not, <command>passwd</command> refuses to change the
password and exits.
</para>
<para>The user is then prompted for a replacement password. This
password is tested for complexity. As a general guideline, passwords
should consist of 6 to 8 characters including one or more from each
of following sets:
</para>
<para>Lower case alphabetics</para>
<para>Upper case alphabetics</para>
<para>Digits 0 thru 9</para>
<para>Punctuation marks</para>
<para>Care must be taken not to include the system default erase or
kill characters. <command>passwd</command> will reject any password
which is not suitably complex.
</para>
<para>If the password is accepted, <command>passwd</command> 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.
</para>
</refsect2>
<refsect2 id='group_passwords'>
<title>Group passwords</title>
<para>
When the <option>-g</option> 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 <option>-r</option> option is used with the
<option>-g</option> option to remove the current password from the
named group. This allows group access to all members. The
<option>-R</option> option is used with the <option>-g</option>
option to restrict the named group for all users.
</para>
</refsect2>
<refsect2 id='password_expiry_information'>
<title>Password expiry information</title>
<para>The password aging information may be changed by the super user
with the <option>-x</option>, <option>-n</option>,
<option>-w</option>, and <option>-i</option> options. The
<option>-x</option> option is used to set the maximum number of days
a password remains valid. After <emphasis remap='I'>max</emphasis>
days, the password is required to be changed. The
<option>-n</option> 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 <emphasis remap='I'>min</emphasis> days
have elapsed. The <option>-w</option> option is used to set the
number of days of warning the user will receive before his/her
password will expire. The warning occurs <emphasis
remap='I'>warn</emphasis> days before the expiration, telling the
user how many days remain until the password is set to expire. The
<option>-i</option> 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 <emphasis remap='I'>inact</emphasis>
days, the user may no longer sign on to the account.
</para>
<para>If you wish to immediately expire an account's password, you can
use the <option>-e</option> option. This in effect can force a user
to change his/her password at the user's next login. You can also
use the <option>-d</option> 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.
</para>
</refsect2>
<refsect2 id='account_maintenance'>
<title>Account maintenance</title>
<para> User accounts may be locked and unlocked with the
<option>-l</option> and <option>-u</option> flags. The
<option>-l</option> option disables an account by changing the
password to a value which matches no possible encrypted value. The
<option>-u</option> option re-enables an account by changing the
password back to its previous value.
</para>
<para>The account status may be viewed with the <option>-S</option>
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 <emphasis remap='B'>Password expiry
information</emphasis> above for a discussion of these fields.
</para>
</refsect2>
<refsect2 id='hints_for_user_passwords'>
<title>Hints for user passwords</title>
<para>The security of a password depends upon the strength of the
encryption algorithm and the size of the key space. The <emphasis
remap='B'>\s-2UNIX</emphasis> 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.
</para>
<para>Compromises in password security normally result from careless
password selection or handling. For this reason, you should not
select a password which appears in a dictionary or which must be
written down. The password should also not be a proper name, your
license number, birth date, or street address. Any of these may be
used as guesses to violate system security.
</para>
<para>Your password must easily remembered so that you will not be
forced to write it on a piece of paper. This can be accomplished by
appending two small words together and separating each with a
special character or digit. For example, Pass%word.
</para>
<para>Other methods of construction involve selecting an easily
remembered phrase from literature and selecting the first or last
letter from each word. An example of this is
</para>
<para>Ask not for whom the bell tolls.</para>
<para>which produces</para>
<para>An4wtbt.</para>
<para>You may be reasonably sure few crackers will have included this
in their dictionaries. You should, however, select your own methods
for constructing passwords and not rely exclusively on the methods
given here.
</para>
</refsect2>
<refsect2 id='notes_about_group_passwords'>
<title>Notes about group passwords</title>
<para>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.
</para>
</refsect2>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>Not all options may be supported. Password complexity checking
may vary from site to site. The user is urged to select a password as
complex as he feels comfortable with. Users may not be able to change
their password on a system if NIS is enabled and they are not logged
into the NIS server.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>passwd</command> command exits with the
following values:
</term>
<listitem>
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>1</literal> - permission denied
<!-- .br -->
<literal>2</literal> - invalid combination of options
<!-- .br -->
<literal>3</literal> - unexpected failure, nothing done
<!-- .br -->
<literal>4</literal> - unexpected failure, passwd file
missing
<!-- .br -->
<literal>5</literal> - passwd file busy, try again
later <!-- .br -->
<literal>6</literal> - invalid argument to option
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

123
man/passwd.5.xml Normal file

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='passwd.5'>
<!-- $Id: passwd.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>passwd</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>passwd</refname>
<refpurpose>The password file</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<filename>/etc/passwd</filename> contains various pieces of
information for each user account. Included is:
</para>
<para>Login name</para>
<para>Optional encrypted password</para>
<para>Numerical user ID</para>
<para>Numerical group ID</para>
<para>User name or comment field</para>
<para>User home directory</para>
<para>User command interpreter</para>
<para>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 <filename>/etc/shadow</filename>. 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.
</para>
<para> Refer to <citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry> for details on how this string is interpreted.
</para>
<para>The comment field is used by various system utilities, such as
<citerefentry>
<refentrytitle>finger</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>. Three additional values may be present in the comment
field. They are:
</para>
<para>pri= - set initial value of nice</para>
<para>umask= - set initial value of umask</para>
<para>ulimit= - set initial value of ulimit</para>
<para>These fields are separated from each other and from any other
comment field by a comma.
</para>
<para>The home directory field provides the name of the initial working
directory. <emphasis remap='B'>Login</emphasis> uses this information
to set the value of the <envar>$HOME</envar> environmental variable.
</para>
<para>The command interpreter field provides the name of the user's
command language interpreter, or the name of the initial program to
execute. <emphasis remap='B'>Login</emphasis> uses this information
to set the value of the <envar>$SHELL</envar> environmental variable.
If this field is empty, it defaults to the value
<filename>/bin/sh</filename>.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pwconv</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pwunconv</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sulogin</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/pl
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

102
man/porttime.5.xml Normal file

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='porttime.5'>
<!-- $Id: porttime.5.xml,v 1.6 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>porttime</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>porttime</refname>
<refpurpose>port access time file</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='I'>porttime</emphasis> contains a list of tty
devices, user names, and permitted login times.
</para>
<para>Each entry consists of three colon separated fields. The first
field is a comma separated list of tty devices, or an asterisk to
indicate that all tty devices are matched by this entry. The second
field is a comma separated list of user names, or an asterisk to
indicated that all user names are matched by this entry. The third
field is a comma separated list of permitted access times.
</para>
<para>Each access time entry consists of zero or more days of the week,
abbreviated <emphasis remap='B'>Su</emphasis>, <emphasis
remap='B'>Mo</emphasis>,<emphasis remap='B'>Tu</emphasis>, <emphasis
remap='B'>We</emphasis>, <emphasis remap='B'>Th</emphasis>, <emphasis
remap='B'>Fr</emphasis>, and <emphasis remap='B'>Sa</emphasis>,
followed by a pair of times separated by a hyphen. The abbreviation
<emphasis remap='B'>Wk</emphasis> may be used to represent Monday thru
Friday, and <emphasis remap='B'>Al</emphasis> may be used to indicate
every day. If no days are given, <emphasis remap='B'>Al</emphasis> is
assumed.
</para>
</refsect1>
<refsect1 id='examples'>
<title>EXAMPLES</title>
<para>
The following entry allows access to user <emphasis
remap='B'>jfh</emphasis> on every port during weekdays from 9am to
5pm.
</para>
<!-- .br -->
<para> *:jfh:Wk0900-1700</para>
<!-- .br -->
<para>The following entries allow access only to the users <emphasis
remap='B'>root</emphasis> and <emphasis remap='B'>oper</emphasis> on
/dev/console at any time. This illustrates how the
<filename>/etc/porttime</filename> file is an ordered list of access
times. Any other user would match the second entry which does not
permit access at any time.
</para>
<!-- .br -->
<para> console:root,oper:Al0000-2400
<!-- .br -->
console:*:
</para>
<!-- .br -->
<para>The following entry allows access for the user <emphasis
remap='B'>games</emphasis> on any port during non-working hours.
</para>
<!-- .br -->
<para> *:games:Wk1700-0900,SaSu0000-2400</para>
<!-- .br -->
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/porttime</filename></term>
<listitem>file containing port access</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/pt_BR
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

244
man/pw_auth.3.xml Normal file

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='pw_auth.3'>
<!-- $Id: pw_auth.3.xml,v 1.5 2005/04/27 15:43:25 kloczek Exp $ -->
<refmeta>
<refentrytitle>pw_auth</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>pwauth</refname>
<refpurpose>administrator defined password authentication routines</refpurpose>
</refnamediv>
<refsect1 id='syntax'>
<title>SYNTAX</title>
<para>
<emphasis remap='B'>#include &lt;pwauth.h&gt;</emphasis>
</para>
<para>
<emphasis remap='B'>int pw_auth (char</emphasis>
<emphasis remap='I'>*command,</emphasis>
<emphasis remap='B'>char</emphasis>
<emphasis remap='I'>*user,</emphasis>
<emphasis remap='B'>int</emphasis>
<emphasis remap='I'>reason,</emphasis>
<emphasis remap='B'>char</emphasis>
<emphasis remap='I'>*input)</emphasis><emphasis remap='B'>;</emphasis>
</para>
</refsect1>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='B'>pw_auth</emphasis>
invokes the administrator defined functions for a given user.
</para>
<para><emphasis remap='I'>command</emphasis> 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. Each program will be executed in the order
given. The command line arguments are given for each of the reasons
listed below.
</para>
<para> <emphasis remap='I'>user</emphasis> is the name of the user to be
authenticated, as given in the <filename>/etc/passwd</filename> file.
User entries are indexed by username. 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.
</para>
<para>Each of the permissible authentication reasons is handled in a
potentially differenent manner. Unless otherwise mentioned, the
standard file descriptors 0, 1, and 2 are available for communicating
with the user. The real user ID may be used to determine the identity
of the user making the authentication request. <emphasis
remap='I'>reason</emphasis> is one of
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<emphasis remap='B'>PW_SU</emphasis>
</term>
<listitem>
<para>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
<option>-s</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_LOGIN</emphasis>
</term>
<listitem>
<para>Perform authentication for the named user creating a new
login session. The authentication program will be invoked with a
<option>-l</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_ADD</emphasis>
</term>
<listitem>
<para>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
<option>-a</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_CHANGE</emphasis>
</term>
<listitem>
<para>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 <option>-c</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_DELETE</emphasis>
</term>
<listitem>
<para>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
<option>-d</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_TELNET</emphasis>
</term>
<listitem>
<para>Authenticate a user who is connecting to the system using
the <emphasis remap='B'>telnet</emphasis> command. The
authentication program will be invoked with a
<option>-t</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_RLOGIN</emphasis>
</term>
<listitem>
<para>
Authenticate a user who is connecting to the system using the
<emphasis remap='B'>rlogin</emphasis> command. The
authentication program will be invoked with a
<option>-r</option> option, followed by the username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_FTP</emphasis>
</term>
<listitem>
<para>
Authenticate a user who is connecting to the system using the
<emphasis remap='B'>ftp</emphasis> command. The authentication
program will be invoked with a <option>-f</option> option,
followed by the username. The standard file descriptors are not
available for communicating with the user. The standard input
file descriptor will be connected to the parent process, while
the other two output file descriptors will be connected to
<filename>/dev/null</filename>. The <emphasis
remap='B'>pw_auth</emphasis> function will pipe a single line of
data to the authentication program using file descriptor 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>PW_REXEC</emphasis>
</term>
<listitem>
<para>
Authenticate a user who is connecting to the system using the
<emphasis remap='I'>rexec</emphasis> command. The authentication
program will be invoked with a <option>-x</option> option,
followed by the username. The standard file descriptors are not
available for communicating with the remote user. The standard
input file descriptor will be connected to the parent process,
while the other two output file descriptors will be connected to
<filename>/dev/null</filename>. The <emphasis
remap='B'>pw_auth</emphasis> function will pipe a single line of
data to the authentication program using file descriptor 0.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>The last argument is the authentication data which is used by the
<emphasis remap='B'>PW_FTP</emphasis> and <emphasis
remap='B'>PW_REXEC</emphasis> reasons. It is treated as a single line
of text which is piped to the authentication program. When the reason
is <emphasis remap='B'>PW_CHANGE,</emphasis> the value of <emphasis
remap='I'>input</emphasis> is the value of previous user name if the
user name is being changed.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>This function does not create the actual session. It only
indicates if the user should be allowed to create the session.
</para>
<para>The network options are untested at this time.</para>
</refsect1>
<refsect1 id='diagnostics'>
<title>DIAGNOSTICS</title>
<para>
The <emphasis remap='B'>pw_auth</emphasis> function returns 0 if the
authentication program exited with a 0 exit code, and a non-zero value
otherwise.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

159
man/pwck.8.xml Normal file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='pwck.8'>
<!-- $Id: pwck.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>pwck</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>pwck</refname>
<refpurpose>verify integrity of password files</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>pwck</command> <arg choice='opt'>-sr </arg>
<arg choice='opt'>
<arg choice='plain'>
<replaceable>passwd</replaceable>
</arg>
<arg choice='plain'>
<replaceable>shadow</replaceable>
</arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>pwck</command> verifies the integrity of the system
authentication information. All entries in the
<filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>
are checked to see that the entry has the proper format and valid data
in each field. The user is prompted to delete entries that are
improperly formatted or which have other uncorrectable errors.
</para>
<para>Checks are made to verify that each entry has</para>
<!-- .in +.5i -->
<para>- the correct number of fields
<!-- .br -->
- a unique user name
<!-- .br -->
- a valid user and group identifier
<!-- .br -->
- a valid primary group
<!-- .br -->
- a valid home directory
<!-- .br -->
- a valid login shell
</para>
<!-- .in \-.5i -->
<para>The checks for correct number of fields and unique user name are
fatal. If the entry has the wrong number of fields, the user will be
prompted to delete the entire line. If the user does not answer
affirmatively, all further checks are bypassed. An entry with a
duplicated user name is prompted for deletion, but the remaining
checks will still be made. All other errors are warning and the user
is encouraged to run the <command>usermod</coamand> command to correct
the error.
</para>
<para> The commands which operate on the
<filename>/etc/passwd</filename> file are not able to alter corrupted
or duplicated entries. <command>pwck</command> should be used in
those circumstances to remove the offending entry.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
By default, <command>pwck</command> operates on the files
<filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>.
The user may select alternate files with the <emphasis
remap='I'>passwd</emphasis> and <emphasis remap='I'>shadow</emphasis>
parameters. Additionally, the user may execute the command in
read-only mode by specifying the <option>-r</option> flag. This causes
all questions regarding changes to be answered <emphasis
remap='B'>no</emphasis> without user intervention.
<command>pwck</command> can also sort entries in
<filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>
by UID. To run it in sort mode pass it <option>-s</option> flag. No
checks are performed then, it just sorts.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>pwck</command> command exits with the
following values:
</term>
<listitem>
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>1</literal> - invalid command syntax
<!-- .br -->
<literal>2</literal> - one or more bad password entries
<!-- .br -->
<literal>3</literal> - can't open password files
<!-- .br -->
<literal>4</literal> - can't lock password files
<!-- .br -->
<literal>5</literal> - can't update password files
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\"$Id: pwconv.8,v 1.15 2005/04/02 08:01:24 kloczek Exp $
.\"$Id: pwconv.8,v 1.17 2005/05/19 10:34:59 kloczek Exp $
.TH PWCONV 8 "26 Sep 1997"
.SH NAME
pwconv, pwunconv, grpconv, grpunconv \- convert to and from shadow passwords and groups.
@ -40,10 +40,10 @@ shadowed file if the main file is edited by hand.
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
Likewise \fBpwunconv\fR and \fBgrpunconv\fR are similar. Passwords in the
main file are updated from the shadowed file. Entries which exist in the
main file but not in the shadowed file are left alone. Finally, the shadowed
file is removed. Some password aging information is lost by fBpwunconv\fR.
file is removed. Some password aging information is lost by \fBpwunconv\fR.
It will convert what it can.
.SH "BUGS"
Errors in the password or group files (such as invalid or duplicate entries)

117
man/pwconv.8.xml Normal file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='pwconv.8'>
<!-- $Id: pwconv.8.xml,v 1.6 2005/05/19 10:35:00 kloczek Exp $ -->
<refentryinfo>
<date>26 Sep 1997</date>
</refentryinfo>
<refmeta>
<refentrytitle>PWCONV</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class='date'>26 Sep 1997</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>pwconv</refname>
<refname>pwunconv</refname>
<refname>grpconv</refname>
<refname>grpunconv</refname>
<refpurpose>convert to and from shadow passwords and groups.</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>pwconv</command>
</cmdsynopsis>
<cmdsynopsis>
<command>pwunconv</command>
</cmdsynopsis>
<cmdsynopsis>
<command>grpconv</command>
</cmdsynopsis>
<cmdsynopsis>
<command>grpunconv</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para><command>pwconv</command> creates <emphasis
remap='I'>shadow</emphasis> from <emphasis remap='I'>passwd</emphasis>
and an optionally existing <emphasis remap='I'>shadow</emphasis>.
</para>
<para><command>pwunconv</command> creates <emphasis
remap='I'>passwd</emphasis> from <emphasis remap='I'>passwd</emphasis>
and <emphasis remap='I'>shadow</emphasis> and then removes <emphasis
remap='I'>shadow</emphasis>.
</para>
<para><command>grpconv</command> creates <emphasis
remap='I'>gshadow</emphasis> from <emphasis remap='I'>group</emphasis>
and an optionally existing <emphasis remap='I'>gshadow</emphasis>.
</para>
<para><command>grpunconv</command> creates <emphasis
remap='I'>group</emphasis> from <emphasis remap='I'>group</emphasis>
and <emphasis remap='I'>gshadow</emphasis> and then removes <emphasis
remap='I'>gshadow</emphasis>.
</para>
<para>These four programs all operate on the normal and shadow password
and group files: <filename>/etc/passwd</filename>,
<filename>/etc/group</filename>, <filename>/etc/shadow</filename>, and
<filename>/etc/gshadow</filename>.
</para>
<para> Each program acquires the necessary locks before conversion.
<command>pwconv</command> and <command>grpconv</command> 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 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.
</para>
<para><command>pwconv</command> will use the values of <emphasis
remap='I'>PASS_MIN_DAYS</emphasis>, <emphasis
remap='I'>PASS_MAX_DAYS</emphasis>, and <emphasis
remap='I'>PASS_WARN_AGE</emphasis> from
<filename>/etc/login.defs</filename> when adding new entries to
<filename>/etc/shadow</filename>.
</para>
<para>Likewise <command>pwunconv</command> and
<command>grpunconv</command> are similar. Passwords in the main file
are updated from the shadowed file. Entries which exist in the main
file but not in the shadowed file are left alone. Finally, the
shadowed file is removed. Some password aging information is lost by
<command>pwunconv</command>. It will convert what it can.
</para>
</refsect1>
<refsect1 id='bugs'>
<title>BUGS</title>
<para>Errors in the password or group files (such as invalid or
duplicate entries) may cause these programs to loop forever or fail in
other strange ways. Please run <command>pwck</command> and
<command>grpck</command> to correct any such errors before converting
to or from shadow passwords or groups.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>grpck</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pwck</refentrytitle><manvolnum>8</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/ru
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

199
man/shadow.3.xml Normal file

@ -0,0 +1,199 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='shadow.3'>
<!-- $Id: shadow.3.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>shadow</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>shadow</refname>
<refpurpose>encrypted password file routines</refpurpose>
</refnamediv>
<refsect1 id='syntax'>
<title>SYNTAX</title>
<para>
<emphasis remap='B'>#include &lt;shadow.h&gt;</emphasis>
</para>
<para>
<emphasis remap='B'>struct spwd *getspent();</emphasis>
</para>
<para>
<emphasis remap='B'>struct spwd *getspnam(char</emphasis>
<emphasis remap='I'>*name</emphasis><emphasis remap='B'>);</emphasis>
</para>
<para>
<emphasis remap='B'>void setspent();</emphasis>
</para>
<para>
<emphasis remap='B'>void endspent();</emphasis>
</para>
<para>
<emphasis remap='B'>struct spwd *fgetspent(FILE</emphasis>
<emphasis remap='I'>*fp</emphasis><emphasis remap='B'>);</emphasis>
</para>
<para>
<emphasis remap='B'>struct spwd *sgetspent(char</emphasis>
<emphasis remap='I'>*cp</emphasis><emphasis remap='B'>);</emphasis>
</para>
<para>
<emphasis remap='B'>int putspent(struct spwd</emphasis>
<emphasis remap='I'>*p,</emphasis>
<emphasis remap='B'>FILE</emphasis>
<emphasis remap='I'>*fp</emphasis><emphasis remap='B'>);</emphasis>
</para>
<para>
<emphasis remap='B'>int lckpwdf();</emphasis>
</para>
<para>
<emphasis remap='B'>int ulckpwdf();</emphasis>
</para>
</refsect1>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='I'>shadow</emphasis>
manipulates the contents of the shadow password file,
<filename>/etc/shadow</filename>.
The structure in the <emphasis remap='I'>#include</emphasis> file
is
</para>
<para>struct spwd {
<!-- .in +.5i -->
<!-- .br -->
char *sp_namp; /* user login name */
<!-- .br -->
char *sp_pwdp; /* encrypted password */
<!-- .br -->
long int sp_lstchg; /* last password change */
<!-- .br -->
long int sp_min; /* days until change allowed. */
<!-- .br -->
long int sp_max; /* days before change required */
<!-- .br -->
long int sp_warn; /* days warning for expiration */
<!-- .br -->
long int sp_inact; /* days before account inactive */
<!-- .br -->
long int sp_expire; /* date when account expires */
<!-- .br -->
unsigned long int sp_flag; /* reserved for future use */
<!-- .br -->
<!-- .in \-.5i -->
}
</para>
<para>The meanings of each field are</para>
<para>sp_namp - pointer to null-terminated user name.
<!-- .br -->
sp_pwdp - pointer to null-terminated password.
<!-- .br -->
sp_lstchg - days since Jan 1, 1970 password was last changed.
<!-- .br -->
sp_min - days before which password may not be changed.
<!-- .br -->
sp_max - days after which password must be changed.
<!-- .br -->
sp_warn - days before password is to expire that user is warned
of pending password expiration.
<!-- .br -->
sp_inact - days after password expires that account is considered
inactive and disabled.
<!-- .br -->
sp_expire - days since Jan 1, 1970 when account will be disabled.
<!-- .br -->
sp_flag - reserved for future use.
</para>
</refsect1>
<refsect1 id='description2'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='B'>getspent</emphasis>, <emphasis
remap='B'>getspname</emphasis> <emphasis
remap='B'>fgetspent</emphasis>, and <emphasis
remap='B'>sgetspent</emphasis> each return a pointer to a <emphasis
remap='B'>struct spwd</emphasis>. <emphasis
remap='B'>getspent</emphasis> returns the next entry from the file,
and <emphasis remap='B'>fgetspent</emphasis> returns the next entry
from the given stream, which is assumed to be a file of the proper
format. <emphasis remap='B'>sgetspent</emphasis> returns a pointer to
a <emphasis remap='B'>struct spwd</emphasis> using the provided string
as input. <emphasis remap='B'>getspnam</emphasis> searches from the
current position in the file for an entry matching <emphasis
remap='B'>name</emphasis>.
</para>
<para><emphasis remap='B'>setspent</emphasis> and <emphasis
remap='B'>endspent</emphasis> may be used to begin and end,
respectively, access to the shadow password file.
</para>
<para>The <emphasis remap='B'>lckpwdf</emphasis> and <emphasis
remap='B'>ulckpwdf</emphasis> routines should be used to insure
exclusive access to the <filename>/etc/shadow</filename> file.
<emphasis remap='B'>lckpwdf</emphasis> attempts to acquire a lock
using <emphasis remap='B'>pw_lock</emphasis> for up to 15 seconds. It
continues by attempting to acquire a second lock using <emphasis
remap='B'>spw_lock</emphasis> for the remainder of the initial 15
seconds. Should either attempt fail after a total of 15 seconds,
<emphasis remap='B'>lckpwdf</emphasis> returns -1. When both locks are
acquired 0 is returned.
</para>
</refsect1>
<refsect1 id='diagnostics'>
<title>DIAGNOSTICS</title>
<para>Routines return NULL if no more entries are available or if an
error occurs during processing. Routines which have <emphasis
remap='B'>int</emphasis> as the return value return 0 for success and
-1 for failure.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>These routines may only be used by the super user as access to the
shadow password file is restricted.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>getpwent</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

128
man/shadow.5.xml Normal file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='shadow.5'>
<!-- $Id: shadow.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>shadow</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>shadow</refname>
<refpurpose>encrypted password file</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<emphasis remap='I'>shadow</emphasis> contains the encrypted
password information for user's accounts
and optional the password aging information. Included is
</para>
<para>Login name</para>
<para>Encrypted password</para>
<para>Days since Jan 1, 1970 that password was last changed</para>
<para>Days before password may be changed</para>
<para>Days after which password must be changed</para>
<para>Days before password is to expire that user is warned</para>
<para>Days after password expires that account is disabled</para>
<para>Days since Jan 1, 1970 that account is disabled</para>
<para>A reserved field</para>
<para>The password field must be filled. The encryped password consists
of 13 to 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.
</para>
<para>
Refer to
<citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>
for details on how this string is interpreted.
</para>
<para>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 of days have passed, and must be changed after the
maximum number of days. If the minimum number of days required is
greater than the maximum number of day allowed, this password may not
be changed by the user.
</para>
<para>An account is considered to be inactive and is disabled if the
password is not changed within the specified number of days after the
password expires. An account will also be disabled on the specified
day regardless of other password expiration information.
</para>
<para>This information supercedes any password or password age
information present in <filename>/etc/passwd</filename>.
</para>
<para>This file must not be readable by regular users if password
security is to be maintained.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chage</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pwconv</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pwunconv</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sulogin</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

53
man/shadowconfig.8.xml Normal file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='shadowconfig.8'>
<!-- $Id: shadowconfig.8.xml,v 1.5 2005/04/27 18:20:35 kloczek Exp $ -->
<refentryinfo>
<date>19 Apr 1997</date>
</refentryinfo>
<refmeta>
<refentrytitle>shadowconfig</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class='date'>19 Apr 1997</refmiscinfo>
<refmiscinfo class='source'>Debian GNU/Linux</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>shadowconfig</refname>
<refpurpose>toggle shadow passwords on and off</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>shadowconfig</command>
<group choice='plain'>
<arg choice='plain'><replaceable>on</replaceable></arg>
<arg choice='plain'><replaceable>off</replaceable></arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>shadowconfig</coamand> on will turn shadow passwords on;
<emphasis remap='B'>shadowconfig off</emphasis> will turn shadow
passwords off. <command>shadowconfig</command> will print an error
message and exit with a nonzero code if it finds anything awry. If
that happens, you should correct the error and run it again. Turning
shadow passwords on when they are already on, or off when they are
already off, is harmless.
</para>
<para>
Read <filename>/usr/share/doc/passwd/README.debian</filename> for a
brief introduction
to shadow passwords and related features.
</para>
<para>Note that turning shadow passwords off and on again will lose all
password
aging information.
</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\" $Id: su.1,v 1.16 2005/04/12 16:31:06 kloczek Exp $
.\" $Id: su.1,v 1.18 2005/05/19 10:35:00 kloczek Exp $
.\" Copyright 1989 - 1990, Julianne Frances Haugh
.\" All rights reserved.
.\"
@ -33,7 +33,7 @@ su \- change user ID or become super\-user
.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
optional argument \fB\-\fR may be used to provide an environment similiar to
optional argument \fB\-\fR may be used to provide an environment similar to
what the user would expect had the user logged in directly.
.PP
Additional arguments may be provided after the username, in which case they
@ -46,7 +46,7 @@ The user will be prompted for a password, if appropriate. Invalid passwords
will produce an error message. All attempts, both valid and invalid, are
logged to detect abuses of the system.
.PP
The current environment is passed to the new shell. The value of fB$PATH\fR
The current environment is passed to the new shell. The value of \fB$PATH\fR
\is reset to \fB/bin:/usr/bin\fR for normal users, or
\fB/sbin:/bin:/usr/sbin:/usr/bin\fR for the super user. This may be changed
with the \fBENV_PATH\fR and \fBENV_SUPATH\fR definitions in

113
man/su.1.xml Normal file

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='su.1'>
<!-- $Id: su.1.xml,v 1.8 2005/05/19 10:35:00 kloczek Exp $ -->
<refmeta>
<refentrytitle>su</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="sectdesc">User Commands</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>su</refname>
<refpurpose>change user ID or become super-user</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>su</command>
<arg choice='opt'>- </arg>
<arg choice='opt'>
<arg choice='plain'>
<replaceable>username</replaceable>
</arg>
<arg choice='opt'>
<replaceable>args</replaceable>
</arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>su</command> is used to become another user during a login
session. Invoked without a username, <command>su</command> defaults to
becoming the super user. The optional argument <option>-</option> may
be used to provide an environment similar to what the user would
expect had the user logged in directly.
</para>
<para>Additional arguments may be provided after the username, in which
case they are supplied to the user&acute;s login shell. In particular,
an argument of <option>-c</option> 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 <filename>/etc/passwd</filename>
for the target user.
</para>
<para>The user will be prompted for a password, if appropriate. Invalid
passwords will produce an error message. All attempts, both valid and
invalid, are logged to detect abuses of the system.
</para>
<para>The current environment is passed to the new shell. The value of
<emphasis remap='B'>$PATH</emphasis> is reset to
<filename>/bin:/usr/bin</filename> for normal users, or
<filename>/sbin:/bin:/usr/sbin:/usr/bin</filename> for the super user.
This may be changed with the <emphasis remap='B'>ENV_PATH</emphasis>
and <emphasis remap='B'>ENV_SUPATH</emphasis> definitions in
<filename>/etc/login.defs</filename>.
</para>
<para>A subsystem login is indicated by the presense of a "*" as the
first character of the login shell. The given home directory will be
used as the root of a new filesystem which the user is actually logged
into.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
This version of <command>su</command> has many compilation options,
only some of which may be in use at any particular site.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>suauth</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh &lt;jockgrrl@ix.netcom.com&gt;</para>
</refsect1>
</refentry>

196
man/suauth.5.xml Normal file

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='suauth.5'>
<!-- $Id: suauth.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>suauth</refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo class='source'>Feb 14, 1996</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>suauth</refname>
<refpurpose>Detailed su control file</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>/etc/suauth</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>The file <filename>/etc/suauth</filename> is referenced
whenever the su command is called. It can change the behaviour of the
su command, based upon
</para>
<!-- .RS -->
<literallayout remap='.nf'>
1) the user su is targetting
</literallayout>
<!-- .fi -->
<para>2) the user executing the su command (or any groups he might be
a member of)
</para>
<!-- .RE -->
<para>The file is formatted like this, with lines starting with a #
being treated as comment lines and ignored;
</para>
<!-- .RS -->
<literallayout remap='RS'>
to-id:from-id:ACTION
</literallayout>
<!-- remap='RE' -->
<para>Where to-id is either the word
<emphasis remap='B'>ALL</emphasis>,
a list of usernames
delimited by "," or the words
<emphasis remap='B'>ALL EXCEPT</emphasis>
followed by a list
of usernames delimited by ","
</para>
<para>from-id is formatted the same as to-id except the extra word
<emphasis remap='B'>GROUP</emphasis>
is recognised.
<emphasis remap='B'>ALL EXCEPT GROUP</emphasis>
is perfectly valid too.
Following
<emphasis remap='B'>GROUP</emphasis>
appears one or more group names, delimited by
",". It is not sufficient to have primary group id of the
relevant group, an entry in
<citerefentry>
<refentrytitle>/etc/group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
is neccessary.
</para>
<para>Action can be one only of the following currently supported
options.
</para>
<variablelist remap='TP'>
<varlistentry>
<term>
<emphasis remap='B'>DENY</emphasis>
</term>
<listitem>
<para>The attempt to su is stopped before a password is
even asked for.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>NOPASS</emphasis>
</term>
<listitem>
<para>The attempt to su is automatically successful; no
password is
asked for.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<emphasis remap='B'>OWNPASS</emphasis>
</term>
<listitem>
<para>For the su command to be successful, the user must
enter
his or her own password. They are told this.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>Note there are three separate fields delimited by a colon. No
whitespace must surround this colon. Also note that the file
is examined sequentially line by line, and the first applicable
rule is used without examining the file further. This makes it
possible for a system administrator to exercise as fine control
as he or she wishes.
</para>
</refsect1>
<refsect1 id='example'>
<title>EXAMPLE</title>
<literallayout remap='.nf'>
# sample /etc/suauth file
#
# A couple of privileged usernames may
# su to root with their own password.
#
root:chris,birddog:OWNPASS
#
# Anyone else may not su to root unless in
# group wheel. This is how BSD does things.
#
root:ALL EXCEPT GROUP wheel:DENY
#
# Perhaps terry and birddog are accounts
# owned by the same person.
# Access can be arranged between them
# with no password.
#
terry:birddog:NOPASS
birddog:terry:NOPASS
#
</literallayout>
<!-- .fi -->
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/suauth</filename></term>
<listitem></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='bugs'>
<title>BUGS</title>
<para>There could be plenty lurking. The file parser is particularly
unforgiving about syntax errors, expecting no spurious whitespace
(apart from beginning and end of lines), and a specific token
delimiting different things.
</para>
</refsect1>
<refsect1 id='diagnostics'>
<title>DIAGNOSTICS</title>
<para>An error parsing the file is reported using
<citerefentry>
<refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
as level ERR on
facility AUTH.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<literallayout remap='.nf'>
Chris Evans (lady0110@sable.ox.ac.uk)
Lady Margaret Hall
Oxford University
England
</literallayout>
</refsect1>
</refentry>

117
man/sulogin.8.xml Normal file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='sulogin.8'>
<!-- $Id: sulogin.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>sulogin</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>sulogin</refname>
<refpurpose>Single-user login</refpurpose>
</refnamediv>
<refsect1 id='syntax'>
<title>SYNTAX</title>
<para>
<command>sulogin</coamand> [<emphasis remap='I'>
tty-device
</emphasis>
]
</para>
</refsect1>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>sulogin</coamand> is invoked by <command>init</coamand> prior
to allowing the user access to the system when in single user mode.
This feature may only be available on certain systems where
<command>init</coamand> has been modified accordingly, or where the
<filename>/etc/inittab</filename> has an entry for a single user
login.
</para>
<para>The user is prompted</para>
<para>Type control-d to proceed with normal startup,
<!-- .br -->
(or give root password for system maintenance):
</para>
<para>Input and output will be performed with the standard file
descriptors unless
the optional device name argument is provided.
</para>
<para>If the user enters the correct root password, a login session is
initiated.
When <emphasis remap='B'>EOF</emphasis> is pressed instead, the
system enters multi-user mode.
</para>
<para>After the user exits the single-user shell, or presses <emphasis
remap='B'>EOF</emphasis>, the system begins the initialization process
required to enter multi-user mode.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
This command can only be used if <command>init</coamand> has been
modified to call <command>sulogin</coamand> instead of
<filename>/bin/sh</filename>, or if the user has set the <emphasis
remap='I'>inittab</emphasis> to support a single user login. For
example, the line:
</para>
<!-- .br -->
<para>co:s:respawn:/etc/sulogin /dev/console</para>
<!-- .br -->
<para>should execute the sulogin command in single user mode.</para>
<para>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.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>init</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

417
man/useradd.8.xml Normal file

@ -0,0 +1,417 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='useradd.8'>
<!-- $Id: useradd.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
<refmeta>
<refentrytitle>useradd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>useradd</refname>
<refpurpose>Create a new user or update default new user information</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>useradd</command>
<arg choice='opt'>-c <replaceable>comment</replaceable></arg>
<arg choice='opt'>-d <replaceable>home_dir</replaceable></arg>
<arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
<arg choice='opt'>-f <replaceable>inactive_days</replaceable></arg>
<sbr/>
<arg choice='opt'>-g <replaceable>initial_group</replaceable></arg>
<arg choice='opt'>
<arg choice='plain'>-G <replaceable>group1</replaceable></arg>
<arg choice='opt'>
<arg choice='plain' rep='repeat'>
<replaceable>,group2,</replaceable>
</arg>
<arg choice='plain'>
<replaceable>,</replaceable>
</arg>
<arg choice='opt'>
<replaceable>groupN</replaceable>
</arg>
</arg>
</arg>
<sbr/>
<arg choice='opt'>
<arg choice='opt'>-M </arg><arg choice='plain'>-m </arg>
<arg choice='opt'>-k <replaceable>skeleton_dir</replaceable></arg>
</arg>
<arg choice='opt'>-o </arg>
<arg choice='opt'>-p <replaceable>passwd</replaceable></arg>
<arg choice='opt'>-s <replaceable>shell</replaceable></arg>
<sbr/>
<arg choice='opt'>-u <replaceable>uid</replaceable></arg>
<arg choice='plain'><replaceable>login</replaceable></arg>
<arg choice='plain'><replaceable>useradd</replaceable></arg>
<arg choice='plain'>-D </arg>
<arg choice='opt'>-g <replaceable>group</replaceable></arg>
<arg choice='opt'>-b <replaceable>home_dir</replaceable></arg>
<arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
<sbr/>
<arg choice='opt'>-f <replaceable>inactive_days</replaceable></arg>
<arg choice='opt'>-s <replaceable>shell</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<refsect2 id='creating_new_users'>
<title>Creating New Users</title>
<para>
When invoked without the <option>-D</option> option, the
<command>useradd</command> 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 home
directory and copy initial files.
</para>
</refsect2>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>The options which apply to the <command>useradd</command> command are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-c</option> <replaceable>comment</replaceable>
</term>
<listitem>
<para>The new user's password file comment field.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-d</option> <replaceable>home_dir</replaceable>
</term>
<listitem>
<para>
The new user will be created using <emphasis remap='I'> home_dir
</emphasis>as the value for the user's login directory. The
default is to append the <emphasis remap='I'>login</emphasis>
name to <emphasis remap='I'>home</emphasis> and use that as the
login directory name.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-e</option> <replaceable>expire_date</replaceable>
</term>
<listitem>
<para>The date on which the user account will be disabled. The
date is specified in the format <emphasis
remap='I'>YYYY-MM-DD</emphasis>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-f</option> <replaceable>inactive_days</replaceable>
</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-g</option> <replaceable>initial_group</replaceable>
</term>
<listitem>
<para>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
<filename>/etc/default/useradd</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-G</option> <replaceable>group1</replaceable>[<emphasis remap='I'>
,group2,...,
</emphasis>
[<emphasis remap='I'>groupN</emphasis>]]]
</term>
<listitem>
<para>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
<option>-g</option> option. The default is for the user to
belong only to the initial group.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-M</option>
</term>
<listitem>
<para>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 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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-m</option>
</term>
<listitem>
<para>The user's home directory will be created if it does not
exist. The files contained in <emphasis
remap='I'>skeleton_dir</emphasis> will be copied to the home
directory if the <option>-k</option> option is used, otherwise
the files contained in <filename>/etc/skel</filename> will be
used instead. Any directories contained in <emphasis remap='I'>
skeleton_dir</emphasis> or <filename>/etc/skel</filename> will
be created in the user's home directory as well. The
<option>-k</option> option is only valid in conjunction with the
<option>-m</option> option. The default is to not create the
directory and to not copy any files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-o</option>
</term>
<listitem>
<para>Allow create user with duplicate (non-unique) UID.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-p</option> <replaceable>passwd</replaceable>
</term>
<listitem>
<para>
The encrypted password, as returned by <citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>. The default is to disable the account.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-s</option> <replaceable>shell</replaceable>
</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-u</option> <replaceable>uid</replaceable>
</term>
<listitem>
<para>The numerical value of the user's ID. This value must be
unique, unless the <option>-o</option> 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.
</para>
</listitem>
</varlistentry>
</variablelist>
<refsect2 id='changing_the_default_values'>
<title>Changing the default values</title>
<para>
When invoked with the <option>-D</option> option,
<command>useradd</command> will either display the current default
values, or update the default values from the command line. The
valid options are
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-b</option> <replaceable>home_dir</replaceable>
</term>
<listitem>
<para>The initial path prefix for a new user's home directory.
The user's name will be affixed to the end of <emphasis
remap='I'>home</emphasis> to create the new directory name if
the <option>-d</option> option is not used when creating a new
account.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-e</option> <replaceable>expire_date</replaceable>
</term>
<listitem>
<para>The date on which the user account is disabled.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-f</option> <replaceable>inactive</replaceable>
</term>
<listitem>
<para>The number of days after a password has expired before the
account will be disabled.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-g</option> <replaceable>group</replaceable>
</term>
<listitem>
<para>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 .
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-s</option> <replaceable>shell</replaceable>
</term>
<listitem>
<para>The name of the new user's login shell. The named program
will be used for all future new user accounts.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>If no options are specified, <command>useradd</command>
displays the current default values.
</para>
</refsect2>
</refsect1>
<refsect1 id='notes'>
<title>NOTES</title>
<para>The system administrator is responsible for placing the default
user files in the <filename>/etc/skel/</filename> directory.
</para>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>You may not add a user to an NIS group. This must be performed on
the NIS server.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/default/useradd</filename></term>
<listitem>default information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/skel/</filename></term>
<listitem>directory containing default files</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>useadd</coamand> command exits with the following
values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>1</literal> - can't update password file
<!-- .br -->
<literal>2</literal> - invalid command syntax
<!-- .br -->
<literal>3</literal> - invalid argument to option
<!-- .br -->
<literal>4</literal> - uid already in use (and no -o)
<!-- .br -->
<literal>6</literal> - specified group doesn't exist
<!-- .br -->
<literal>9</literal> - username already in use
<!-- .br -->
<literal>10</literal> - can't update group file
<!-- .br -->
<literal>12</literal> - can't create home directory
<!-- .br -->
<literal>13</literal> - can't create mail spool
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

147
man/userdel.8.xml Normal file

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='userdel.8'>
<!-- $Id: userdel.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
<refmeta>
<refentrytitle>USERDEL</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>userdel</refname>
<refpurpose>Delete a user account and related files</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>userdel</command>
<arg choice='opt'>-r </arg>
<arg choice='plain'>
<replaceable>login</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>userdel</command> command modifies the system account
files, deleting all entries that refer to <emphasis
remap='I'>login</emphasis>. The named user must exist.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>userdel</command> command are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-r</option>
</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='exit_values'>
<title>EXIT VALUES</title>
<variablelist remap='TP'>
<varlistentry>
<term>
The <command>userdel</command> command exits with the following
values:
</term>
<listitem>
<!-- .br -->
<para>
<literal>0</literal> - success
<!-- .br -->
<literal>1</literal> - can't update password file
<!-- .br -->
<literal>2</literal> - invalid command syntax
<!-- .br -->
<literal>6</literal> - specified user doesn't exist
<!-- .br -->
<literal>8</literal> - user currently logged in
<!-- .br -->
<literal>10</literal> - can't update group file
<!-- .br -->
<literal>12</literal> - can't remove home directory
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
<command>userdel</command> will not allow you to remove an account if
the user is currently logged in. You must kill any running processes
which belong to an account that you are deleting. You may not remove
any NIS attributes on an NIS client. This must be performed on the NIS
server.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

300
man/usermod.8.xml Normal file

@ -0,0 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='usermod.8'>
<!-- $Id: usermod.8.xml,v 1.5 2005/04/28 13:57:45 kloczek Exp $ -->
<refmeta>
<refentrytitle>usermod</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv id='name'>
<refname>usermod</refname>
<refpurpose>Modify a user account</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>usermod</command>
<arg choice='opt'>-c <replaceable>comment</replaceable></arg>
<arg choice='opt'>
<arg choice='plain'>-d <replaceable>home_dir</replaceable></arg>
<arg choice='opt'>-m </arg>
</arg>
<arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
<arg choice='opt'>-f <replaceable>inactive_time</replaceable></arg>
<arg choice='opt'>-g <replaceable>initial_group</replaceable></arg>
<sbr/>
<arg choice='opt'>
<arg choice='plain'>-G <replaceable>group1</replaceable></arg>
<arg choice='opt'>
<arg choice='plain' rep='repeat'><replaceable>,group2,</replaceable></arg>
<arg choice='plain'><replaceable>,</replaceable></arg>
<arg choice='opt'><replaceable>groupN</replaceable></arg>
</arg>
</arg>
<sbr/>
<arg choice='opt'>-l <replaceable>login_name</replaceable></arg>
<arg choice='opt'>-p <replaceable>passwd</replaceable></arg>
<arg choice='opt'>-s <replaceable>shell</replaceable></arg>
<arg choice='opt'>
<arg choice='plain'>-u <replaceable>uid</replaceable></arg>
<arg choice='opt'>-o </arg>
</arg>
<sbr/>
<group choice='opt'>
<arg choice='plain'>-L </arg><arg choice='plain'>-U </arg>
</group>
<arg choice='plain'><replaceable>login</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <command>usermod</command> command modifies the system account
files to reflect the changes that are specified on the command line.
</para>
</refsect1>
<refsect1 id='options'>
<title>OPTIONS</title>
<para>
The options which apply to the <command>usermod</command> command
are:
</para>
<variablelist remap='IP'>
<varlistentry>
<term>
<option>-c</option> <replaceable>comment</replaceable>
</term>
<listitem>
<para>The new value of the user's password file comment
field. It is normally modified using the <citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>utility.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-d</option> <replaceable>home_dir</replaceable>
</term>
<listitem>
<para>
The user's new login directory. If the <option>-m</option>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-e</option> <replaceable>expire_date</replaceable>
</term>
<listitem>
<para>The date on which the user account will be disabled. The
date is specified in the format <emphasis remap='I'>YYYY-MM-DD
</emphasis>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-f</option> <replaceable>inactive_days</replaceable>
</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-g</option> <replaceable>initial_group</replaceable>
</term>
<listitem>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-G</option> <replaceable>group1</replaceable>[<emphasis remap='I'>
,group2,...,
</emphasis>
[<emphasis remap='I'>groupN</emphasis>]]]
</term>
<listitem>
<para>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
<option>-g</option> option. If the user is currently a member of
a group which is not listed, the user will be removed from the
group.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-l</option> <replaceable>login_name</replaceable>
</term>
<listitem>
<para>
The name of the user will be changed from <emphasis
remap='I'>login </emphasis> to <emphasis
remap='I'>login_name</emphasis>. Nothing else is changed. In
particular, the user's home directory name should probably be
changed to reflect the new login name.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-L</option>
</term>
<listitem>
<para>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 <option>-p</option> or
<option>-U</option>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-o</option>
</term>
<listitem>
<para>
When used with the <option>-u</option> option, this option
allows to change the user ID to a non-unique value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-p</option> <replaceable>passwd</replaceable>
</term>
<listitem>
<para>
The encrypted password, as returned by <citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-s</option> <replaceable>shell</replaceable>
</term>
<listitem>
<para>The name of the user's new login shell. Setting this field
to blank causes the system to select the default login shell.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-u</option> <replaceable>uid</replaceable>
</term>
<listitem>
<para>The numerical value of the user's ID. This value must be
unique, unless the <option>-o</option> 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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-U</option>
</term>
<listitem>
<para>Unlock a user's password. This removes the '!' in front of
the encrypted password. You can't use this option with
<option>-p</option> or <option>-L</option>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='caveats'>
<title>CAVEATS</title>
<para>
<command>usermod</command> 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 processes when this command is being executed if the
user's numerical user 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.
</para>
</refsect1>
<refsect1 id='files'>
<title>FILES</title>
<variablelist>
<varlistentry>
<term><filename>/etc/passwd</filename></term>
<listitem>user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/shadow</filename></term>
<listitem>secure user account information</listitem>
</varlistentry>
<varlistentry>
<term><filename>/etc/group</filename></term>
<listitem>group account information</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>.
</para>
</refsect1>
<refsect1 id='author'>
<title>AUTHOR</title>
<para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
</refsect1>
</refentry>

@ -1,4 +1,4 @@
.\"$Id: vipw.8,v 1.8 2005/04/05 18:47:50 kloczek Exp $
.\"$Id: vipw.8,v 1.10 2005/04/27 08:29:36 kloczek Exp $
.TH VIPW 8 "26 Sep 1997"
.SH NAME
vipw, vigr \- edit the password, group, shadow\-password, or shadow\-group file.
@ -9,12 +9,11 @@ vipw, vigr \- edit the password, group, shadow\-password, or shadow\-group file.
.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
shadow versions of those files, fI/etc/shadow\fR and \fI/etc/gshadow\fR,
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
environment variable \fBVISUAL\fR, then the environment variable
\fBEDITOR\fR, and finally the default editor,
.BR vi .
environment variable \fB$VISUAL\fR, then the environment variable
\fB$EDITOR\fR, and finally the default editor, \fBvi\fR(1).
.SH "SEE ALSO"
.BR group (5),
.BR passwd (5),

63
man/vipw.8.xml Normal file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='vipw.8'>
<!-- $Id: vipw.8.xml,v 1.6 2005/04/28 13:54:06 kloczek Exp $ -->
<refentryinfo>
<date>26 Sep 1997</date>
</refentryinfo>
<refmeta>
<refentrytitle>vipw</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class='date'>26 Sep 1997</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>vipw</refname>
<refname>vigr</refname>
<refpurpose>edit the password, group, shadow-password, or shadow-group
file.
</refpurpose>
</refnamediv>
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>vipw</command><arg choice='opt'>-s </arg>
</cmdsynopsis>
<cmdsynopsis>
<command>vigr</command><arg choice='opt'>-s </arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
<command>vipw</command> and <command>vigr</command> will edit the
files <filename>/etc/passwd</filename> and
<filename>/etc/group</filename>, respectively. With the
<option>-s</option> flag, they will edit the shadow versions of those
files, <filename>/etc/shadow</filename> and
<filename>/etc/gshadow</filename>, respectively. The programs will set
the appropriate locks to prevent file corruption. When looking for an
editor, the programs will first try the environment variable
<envar>$VISUAL</envar>, then the environment variable <emphasis
remap='B'>$EDITOR</emphasis>, and finally the default editor, <citerefentry>
<refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
</refentry>

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/zh_CN
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

@ -38,7 +38,11 @@ host_triplet = @host@
subdir = man/zh_TW
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

5
po/ChangeLog Normal file

@ -0,0 +1,5 @@
2005-05-04 gettextize <bug-gnu-gettext@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.14.3.
* Rules-quot: Upgrade to gettext-0.14.3.

@ -27,5 +27,6 @@ sv
tl
tr
uk
vi
zh_CN
zh_TW

@ -1,5 +1,5 @@
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
@ -7,9 +7,12 @@
# functionality.
# Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain.
#
# Origin: gettext-0.14.3
PACKAGE = @PACKAGE@
VERSION = @VERSION@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
SHELL = /bin/sh
@SET_MAKE@
@ -44,7 +47,7 @@ UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
@ -55,7 +58,7 @@ CATALOGS = @CATALOGS@
# Makevars gets inserted here. (Don't remove this line!)
.SUFFIXES:
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
.po.mo:
@echo "$(MSGFMT) -c -o $@ $<"; \
@ -77,6 +80,12 @@ all: all-@USE_NLS@
all-yes: stamp-po
all-no:
# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
# we don't want to bother translators with empty POT files). We assume that
# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
# In this case, stamp-po is a nop (i.e. a phony target).
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
@ -86,10 +95,13 @@ all-no:
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
@echo "touch stamp-po"
@echo timestamp > stamp-poT
@mv stamp-poT stamp-po
test ! -f $(srcdir)/$(DOMAIN).pot || \
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
@test ! -f $(srcdir)/$(DOMAIN).pot || { \
echo "touch stamp-po" && \
echo timestamp > stamp-poT && \
mv stamp-poT stamp-po; \
}
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source
@ -98,11 +110,16 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
else \
msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
fi; \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
--msgid-bugs-address="$$msgid_bugs_address"
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
@ -128,9 +145,13 @@ $(srcdir)/$(DOMAIN).pot:
# Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
if test -f "$(srcdir)/$${lang}.po"; then \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
else \
$(MAKE) $${lang}.po-create; \
fi
install: install-exec install-data
@ -283,11 +304,14 @@ dist distdir:
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
dist2: $(DISTFILES)
dist2: stamp-po $(DISTFILES)
dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \
dists="$$dists $(DOMAIN).pot stamp-po"; \
fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
fi; \
@ -299,9 +323,9 @@ dist2: $(DISTFILES)
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \
if test -f $$file; then \
cp -p $$file $(distdir); \
cp -p $$file $(distdir) || exit 1; \
else \
cp -p $(srcdir)/$$file $(distdir); \
cp -p $(srcdir)/$$file $(distdir) || exit 1; \
fi; \
done
@ -310,6 +334,13 @@ update-po: Makefile
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
$(MAKE) update-gmo
# General rule for creating PO files.
.nop.po-create:
@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
exit 1
# General rule for updating PO files.
.nop.po-update:
@ -341,7 +372,7 @@ $(DUMMYPOFILES):
update-gmo: Makefile $(GMOFILES)
@:
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
$(SHELL) ./config.status

@ -4,6 +4,11 @@ DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.heade
.SUFFIXES: .insert-header .po-update-en
en@quot.po-create:
$(MAKE) en@quot.po-update
en@boldquot.po-create:
$(MAKE) en@boldquot.po-update
en@quot.po-update: en@quot.po-update-en
en@boldquot.po-update: en@boldquot.po-update-en

BIN
po/bs.gmo

Binary file not shown.

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-25 12:28+0200\n"
"POT-Creation-Date: 2005-05-23 12:26+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"
@ -155,12 +155,12 @@ msgstr ""
msgid "malloc(%d) failed\n"
msgstr ""
#: lib/getdef.c:265
#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr ""
#: lib/getdef.c:319
#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
@ -1027,7 +1027,7 @@ msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -u, --user 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 ""
@ -1206,7 +1206,7 @@ msgstr ""
msgid "Sorry.\n"
msgstr ""
#: src/newgrp.c:467
#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr ""

BIN
po/ca.gmo

Binary file not shown.

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow 4.0.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-25 12:28+0200\n"
"POT-Creation-Date: 2005-05-23 12:26+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"
@ -155,12 +155,12 @@ msgstr "No s'ha pogut canviar el directori arrel a «%s»\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) ha fallat\n"
#: lib/getdef.c:265
#: lib/getdef.c:262
#, 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:319
#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
@ -1037,7 +1037,7 @@ msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -u, --user 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 ""
@ -1225,7 +1225,7 @@ msgstr "El gid és desconegut: %lu\n"
msgid "Sorry.\n"
msgstr "Disculpeu.\n"
#: src/newgrp.c:467
#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "hi ha massa grups\n"

BIN
po/cs.gmo

Binary file not shown.

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-25 12:28+0200\n"
"POT-Creation-Date: 2005-05-23 12:26+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"
@ -162,12 +162,12 @@ msgstr "Nelze nastavit kořenový adresář na \"%s\"\n"
msgid "malloc(%d) failed\n"
msgstr "volání malloc(%d) selhalo\n"
#: lib/getdef.c:265
#: lib/getdef.c:262
#, 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:319
#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
@ -1062,14 +1062,14 @@ msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -u, --user 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"
" -u, --user 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"
@ -1255,7 +1255,7 @@ msgstr "neznámé gid %lu\n"
msgid "Sorry.\n"
msgstr "Lituji.\n"
#: src/newgrp.c:467
#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "příliš mnoho skupin\n"

BIN
po/da.gmo

Binary file not shown.

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-25 12:28+0200\n"
"POT-Creation-Date: 2005-05-23 12:26+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"
@ -160,12 +160,12 @@ msgstr "Kan ikke ændre rodmappen til \"%s\"\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) mislykkedes\n"
#: lib/getdef.c:265
#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Kunne ikke frigøre plads til opsætningsoplysninger.\n"
#: lib/getdef.c:319
#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "opsætningsfejl - ukendt punkt %s (informér administrator)\n"
@ -1057,14 +1057,14 @@ msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -u, --user 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 ""
"Brug: lastlog [tilvalg]\n"
"\n"
"Tilvalg:\n"
" -u, --login LOGIND\tvis lastlog-optegnelser for brugeren med det angivne "
" -u, --user LOGIND\tvis lastlog-optegnelser for brugeren med det angivne "
"LOGIND\n"
" -h, --help\t\tdvis denne hjælpebesked og afslut\n"
" -t, --time DAGE\tvis kun lastlog-optegnelser, der er nyere end DAGE\n"
@ -1251,7 +1251,7 @@ msgstr "ukendt gid: %lu\n"
msgid "Sorry.\n"
msgstr "Beklager.\n"
#: src/newgrp.c:467
#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "for mange grupper\n"

BIN
po/de.gmo

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More