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

This commit is contained in:
nekral-guest 2007-10-07 11:46:52 +00:00
parent 1de90a599c
commit e89f3546f2
192 changed files with 8828 additions and 17220 deletions

532
ChangeLog

File diff suppressed because it is too large Load Diff

58
NEWS
View File

@ -1,10 +1,64 @@
$Id: NEWS,v 1.215 2005/07/20 20:27:21 kloczek Exp $
$Id: NEWS,v 1.249 2005/08/21 12:42:51 kloczek Exp $
shadow-4.0.11.1 -> shadow-4.0.12 22-08-2005
*** general:
- newgrp, login: remove using login.defs::CLOSE_SESSIONS variable and allways
close PAM session,
- fixed configure.in: realy enable shadow group support by default (pointed by
Greg Schafer <gschafer@zip.com.au> and Peter Vrabec <pvrabec@redhat.com>),
- login.defs: removed handle QMAIL_DIR variable,
- login: allow regular user to login on read-only root file system (not only for root)
Patch by Nicolas François <nicolas.francois@centraliens.net>
Fix for http://bugs.debian.org/52069
- gpasswd, grpck, grpconv, grpuconv: added flushing group nscd cache,
- pwck, pwconv: added flushing passwd nscd cache,
- usermod: fixed handle -p option (patch by Peter Vrabec <pvrabec@redhat.com>),
- chage: use -1 as value for disable password inactivity, expiration date and
checking an password validation.
Based on patch by Peter Vrabec <pvrabec@redhat.com> which fixes:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109499
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=137498
and on 427_chage_expiry_0 Debian patch (fix for http://bugs.debian.org/78961)
- useradd: do not copy files from skel directory if home directory exist and write
warning message about not copying skel files
Patch by Peter Vrabec <pvrabec@redhat.com> which fixes:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=143150
https://bugzilla.redhat.com/beta/show_bug.cgi?id=158574
https://bugzilla.redhat.com/beta/show_bug.cgi?id=80242
- su: ignore SIGINT while authenticating. A ^C could defeat the waiting
period and permit brute-force attacks (fixed http://bugs.debian.org/288827),
- uClibc fixes (by Martin Schlemmer <azarah@nosferatu.za.org>):
added require ngettext (added [need-ngettext] to AM_GNU_GETTEXT() parameters)
and stub prototype for ngettext() in lib/prototypes.h (neccessary if shadow
compiled with disabled NLS support)
- groupadd: rewrited for use getopt_long(),
- groupadd, groupdel, groupmod, userdel: do OPENLOG() before pam_start(),
- groupadd: fixed double OPENLOG(),
- removed lib/{grpack,gspack,pwpack,sppack}.c and prototypes from lib/prototypes.h
(outdated),
- newusers: added flushing passwd and group nscd caches,
- passwd, pwunconv, userdel, vipw: remove flushing shadow nscd cache (nscd do not caches
shadow map),
- pwck: now pwck OPENLOG with correct name ("pwck" instead "pwsk")
(fix by Alexander Gattin <arg@online.com.ua>),
- pwck, grpck: replace all puts() with printf() - it fixes problems with extra blank
lines printed in some messages
(fix by Alexander Gattin <arg@online.com.ua>),
- passwd: use separated message "Password set to expire." instead "Password changed."
on "passwd -e" (fix by Christian Perrier <bubulle@debian.org),
- updated translations: cs, de, fi, fr, nl, pl, pt, ru, sk.
*** documentation:
- usermod(8): give the correct range for system users (0-999 instead of 0-99),
(http://bugs.debian.org/286258)
- chage(8): better description -1 value passwd in -E, -I and -M options,
- regenerate all roff man pages using DocBook XSL Stylesheets 1.69.0.
shadow-4.0.11 -> shadow-4.0.11.1 21-07-2005
*** general:
- fixed configure.in: now is possible build shadow with enabled/disabled shadow group
support (thanks for report sympotoms of the bug to Greg Schafer <gschafer@zip.com.au>),
support (thanks for report symptoms of the bug to Greg Schafer <gschafer@zip.com.au>),
- updated translations: sv.
shadow-4.0.10 -> shadow-4.0.11 18-07-2005

54
configure vendored
View File

@ -1034,7 +1034,7 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-largefile omit support for large files
--enable-shadowgrp enable shadow group support default=yes
--enable-shadowgrp enable shadow group support default=yes
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
@ -1046,10 +1046,10 @@ Optional Packages:
both]
--with-tags[=TAGS]
include additional configurations [automatic]
--with-libcrack try to use libcrack (default if found)
--with-libpam use libpam for PAM support
--with-selinux use SELinux support
--with-skey use S/Key support
--with-libcrack try to use libcrack (default if found)
--with-libpam use libpam for PAM support
--with-selinux use SELinux support
--with-skey use S/Key support
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
@ -1815,7 +1815,7 @@ fi
# Define the identity of the package.
PACKAGE=shadow
VERSION=4.0.11.1
VERSION=4.0.12
cat >>confdefs.h <<_ACEOF
@ -23203,7 +23203,7 @@ echo "$as_me: error: bad value ${enableval} for --enable-shadowgrp" >&2;}
{ (exit 1); exit 1; }; } ;;
esac
else
enable_shadowgrp="no"
enable_shadowgrp="yes"
fi;
@ -25505,7 +25505,7 @@ echo "${ECHO_T}$USE_NLS" >&6
echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6
if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
if test "${gt_cv_func_gnugettext2_libc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@ -25521,7 +25521,7 @@ int
main ()
{
bindtextdomain ("", "");
return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings
;
return 0;
}
@ -25548,20 +25548,20 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
gt_cv_func_gnugettext1_libc=yes
gt_cv_func_gnugettext2_libc=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
gt_cv_func_gnugettext1_libc=no
gt_cv_func_gnugettext2_libc=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6
echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5
echo "${ECHO_T}$gt_cv_func_gnugettext2_libc" >&6
if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
if test "$gt_cv_func_gnugettext2_libc" != "yes"; then
@ -26107,7 +26107,7 @@ fi;
echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6
if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then
if test "${gt_cv_func_gnugettext2_libintl+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
@ -26131,7 +26131,7 @@ int
main ()
{
bindtextdomain ("", "");
return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias ("")
;
return 0;
}
@ -26158,16 +26158,16 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
gt_cv_func_gnugettext1_libintl=yes
gt_cv_func_gnugettext2_libintl=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
gt_cv_func_gnugettext1_libintl=no
gt_cv_func_gnugettext2_libintl=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@ -26186,7 +26186,7 @@ int
main ()
{
bindtextdomain ("", "");
return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias ("")
;
return 0;
}
@ -26215,7 +26215,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(exit $ac_status); }; }; then
LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
gt_cv_func_gnugettext1_libintl=yes
gt_cv_func_gnugettext2_libintl=yes
else
echo "$as_me: failed program was:" >&5
@ -26228,12 +26228,12 @@ rm -f conftest.err conftest.$ac_objext \
CPPFLAGS="$gt_save_CPPFLAGS"
LIBS="$gt_save_LIBS"
fi
echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5
echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6
echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5
echo "${ECHO_T}$gt_cv_func_gnugettext2_libintl" >&6
fi
if test "$gt_cv_func_gnugettext1_libc" = "yes" \
|| { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
if test "$gt_cv_func_gnugettext2_libc" = "yes" \
|| { test "$gt_cv_func_gnugettext2_libintl" = "yes" \
&& test "$PACKAGE" != gettext-runtime \
&& test "$PACKAGE" != gettext-tools; }; then
gt_use_preinstalled_gnugettext=yes
@ -26273,7 +26273,7 @@ echo "${ECHO_T}$USE_NLS" >&6
echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then
gt_source="external libintl"
else
gt_source="libc"
@ -26288,7 +26288,7 @@ echo "${ECHO_T}$gt_source" >&6
if test "$USE_NLS" = "yes"; then
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then
echo "$as_me:$LINENO: checking how to link with libintl" >&5
echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6
echo "$as_me:$LINENO: result: $LIBINTL" >&5

View File

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AM_INIT_AUTOMAKE(shadow, 4.0.11.1)
AM_INIT_AUTOMAKE(shadow, 4.0.12)
AC_CONFIG_HEADERS([config.h])
dnl Some hacks...
@ -202,19 +202,19 @@ AC_DEFINE(getpass, libshadow_getpass,
[Define to libshadow_getpass to use our own version of getpass().])
AC_ARG_ENABLE(shadowgrp,
[ --enable-shadowgrp enable shadow group support [default=yes]],
[ --enable-shadowgrp enable shadow group support [default=yes]],
[case "${enableval}" in
yes) enable_shadowgrp="yes" ;;
no) enable_shadowgrp="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-shadowgrp) ;;
esac],
[enable_shadowgrp="no"]
[enable_shadowgrp="yes"]
)
AC_ARG_WITH(libcrack, [ --with-libcrack try to use libcrack (default if found)])
AC_ARG_WITH(libpam, [ --with-libpam use libpam for PAM support])
AC_ARG_WITH(selinux, [ --with-selinux use SELinux support])
AC_ARG_WITH(skey, [ --with-skey use S/Key support])
AC_ARG_WITH(libcrack, [ --with-libcrack try to use libcrack (default if found)])
AC_ARG_WITH(libpam, [ --with-libpam use libpam for PAM support])
AC_ARG_WITH(selinux, [ --with-selinux use SELinux support])
AC_ARG_WITH(skey, [ --with-skey use S/Key support])
dnl Check for some functions in libc first, only if not found check for
dnl other libraries. This should prevent linking libnsl if not really
@ -280,7 +280,7 @@ if test "$with_libskey" = "yes"; then
fi
AM_GNU_GETTEXT_VERSION(0.12.1)
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT([external], [need-ngettext])
AC_CONFIG_FILES([
Makefile

View File

@ -1,7 +1,7 @@
#
# /etc/login.defs - Configuration control definitions for the login package.
#
# $Id: login.defs.hurd,v 1.2 2000/08/26 18:27:10 marekm Exp $
# $Id: login.defs.hurd,v 1.3 2005/08/09 18:09:41 kloczek Exp $
#
# One item must be defined: MAIL_DIR.
# If unspecified, some arbitrary (and possibly incorrect) value will
@ -21,9 +21,7 @@ OBSCURE_CHECKS_ENAB yes
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail

View File

@ -1,7 +1,7 @@
#
# /etc/login.defs - Configuration control definitions for the login package.
#
# $Id: login.defs.linux,v 1.15 2005/03/07 10:09:06 kloczek Exp $
# $Id: login.defs.linux,v 1.16 2005/08/09 18:09:41 kloczek Exp $
#
# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH.
# If unspecified, some arbitrary (and possibly incorrect) value will
@ -123,9 +123,7 @@ SU_NAME su
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail

View File

@ -13,6 +13,7 @@ libshadow_la_SOURCES = \
commonio.h \
defines.h \
encrypt.c \
exitcodes.h \
faillog.h \
fputsx.c \
getdef.c \
@ -49,5 +50,4 @@ libshadow_la_SOURCES = \
EXTRA_DIST = \
.indent.pro \
grpack.c gspack.c pwpack.c sppack.c \
gshadow_.h

View File

@ -208,6 +208,7 @@ libshadow_la_SOURCES = \
commonio.h \
defines.h \
encrypt.c \
exitcodes.h \
faillog.h \
fputsx.c \
getdef.c \
@ -244,7 +245,6 @@ libshadow_la_SOURCES = \
# sources for dbm support (not yet used)
EXTRA_DIST = \
.indent.pro \
grpack.c gspack.c pwpack.c sppack.c \
gshadow_.h
all: all-am

View File

@ -1,4 +1,4 @@
/* $Id: defines.h,v 1.26 2005/05/25 18:20:22 kloczek Exp $ */
/* $Id: defines.h,v 1.27 2005/08/03 18:11:27 kloczek Exp $ */
/* some useful defines */
#ifndef _DEFINES_H_
@ -24,6 +24,8 @@
# undef textdomain
# define textdomain(Domain) /* empty */
# define _(Text) Text
# define ngettext(Msgid1, Msgid2, N) \
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
#endif
#if STDC_HEADERS

9
lib/exitcodes.h Normal file
View File

@ -0,0 +1,9 @@
/* $Id: exitcodes.h,v 1.3 2005/07/27 10:10:31 kloczek Exp $ */
/*
* Exit codes used by shadow programs
*/
#define E_SUCCESS 0 /* success */
#define E_NOPERM 1 /* permission denied */
#define E_USAGE 2 /* invalid command syntax */
#define E_BAD_ARG 3 /* invalid argument to option */

View File

@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: getdef.c,v 1.31 2005/07/12 18:54:39 kloczek Exp $")
RCSID ("$Id: getdef.c,v 1.35 2005/08/11 11:26:11 kloczek Exp $")
#include "prototypes.h"
#include "defines.h"
#include <stdio.h>
@ -48,22 +48,43 @@ struct itemdef {
#define NUMDEFS (sizeof(def_table)/sizeof(def_table[0]))
static struct itemdef def_table[] = {
{"CHFN_RESTRICT", NULL},
{"CONSOLE_GROUPS", NULL},
{"CONSOLE", NULL},
{"CREATE_HOME", NULL},
{"DEFAULT_HOME", NULL},
{"ENV_PATH", NULL},
{"ENV_SUPATH", NULL},
{"ERASECHAR", NULL},
{"FAIL_DELAY", NULL},
{"FAKE_SHELL", NULL},
{"GETPASS_ASTERISKS", NULL},
{"GID_MAX", NULL},
{"GID_MIN", NULL},
{"HUSHLOGIN_FILE", NULL},
{"KILLCHAR", NULL},
{"LOGIN_RETRIES", NULL},
{"LOGIN_TIMEOUT", NULL},
{"LOG_OK_LOGINS", NULL},
{"LOG_UNKFAIL_ENAB", NULL},
{"MAIL_DIR", NULL},
{"PASS_MAX_DAYS", NULL},
{"PASS_MIN_DAYS", NULL},
{"PASS_WARN_AGE", NULL},
{"SULOG_FILE", NULL},
{"SU_NAME", NULL},
{"TTYGROUP", NULL},
{"TTYPERM", NULL},
{"TTYTYPE_FILE", NULL},
{"UID_MAX", NULL},
{"UID_MIN", NULL},
{"UMASK", NULL},
{"USERDEL_CMD", NULL},
#ifdef USE_PAM
{"CLOSE_SESSIONS", NULL},
#else
{"USERGROUPS_ENAB", NULL},
#ifndef USE_PAM
{"CHFN_AUTH", NULL},
{"CHSH_AUTH", NULL},
{"CRACKLIB_DICTPATH", NULL},
{"ENV_HZ", NULL},
{"ENV_PATH", NULL},
{"ENV_ROOTPATH", NULL}, /* SuSE compatibility? */
{"ENV_SUPATH", NULL},
{"ENV_TZ", NULL},
{"ENVIRON_FILE", NULL},
{"FAILLOG_ENAB", NULL},
@ -83,38 +104,13 @@ static struct itemdef def_table[] = {
{"PASS_MIN_LEN", NULL},
{"PORTTIME_CHECKS_ENAB", NULL},
{"SU_WHEEL_ONLY", NULL},
{"QMAIL_DIR", NULL},
{"QUOTAS_ENAB", NULL},
{"ULIMIT", NULL},
#endif
{"CONSOLE_GROUPS", NULL},
{"CONSOLE", NULL},
{"CREATE_HOME", NULL},
{"ERASECHAR", NULL},
{"FAKE_SHELL", NULL},
{"GETPASS_ASTERISKS", NULL},
{"GID_MAX", NULL},
{"GID_MIN", NULL},
{"HUSHLOGIN_FILE", NULL},
{"KILLCHAR", NULL},
{"LOGIN_RETRIES", NULL},
{"LOGIN_TIMEOUT", NULL},
{"LOG_OK_LOGINS", NULL},
{"LOG_UNKFAIL_ENAB", NULL},
{"MAIL_DIR", NULL},
{"SULOG_FILE", NULL},
{"SU_NAME", NULL},
#ifdef USE_SYSLOG
{"SYSLOG_SG_ENAB", NULL},
{"SYSLOG_SU_ENAB", NULL},
#endif
{"TTYGROUP", NULL},
{"TTYPERM", NULL},
{"TTYTYPE_FILE", NULL},
{"UID_MAX", NULL},
{"UID_MIN", NULL},
{"UMASK", NULL},
{"USERGROUPS_ENAB", NULL},
{NULL, NULL}
};

View File

@ -1,90 +0,0 @@
/*
* Copyright 1990, Julianne Frances Haugh
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Julianne F. Haugh nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: grpack.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
#include <stdio.h>
#include <grp.h>
#include "defines.h"
int gr_pack (const struct group *group, char *buf)
{
char *cp;
int i;
cp = buf;
strcpy (cp, group->gr_name);
cp += strlen (cp) + 1;
strcpy (cp, group->gr_passwd);
cp += strlen (cp) + 1;
memcpy (cp, (const char *) &group->gr_gid, sizeof group->gr_gid);
cp += sizeof group->gr_gid;
for (i = 0; group->gr_mem[i]; i++) {
strcpy (cp, group->gr_mem[i]);
cp += strlen (cp) + 1;
}
*cp++ = '\0';
return cp - buf;
}
int gr_unpack (char *buf, int len, struct group *group)
{
char *org = buf;
int i;
group->gr_name = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
group->gr_passwd = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
memcpy ((char *) &group->gr_gid, (char *) buf, sizeof group->gr_gid);
buf += sizeof group->gr_gid;
if (buf - org > len)
return -1;
for (i = 0; *buf && i < 1024; i++) {
group->gr_mem[i] = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
}
group->gr_mem[i] = (char *) 0;
return 0;
}

View File

@ -1,145 +0,0 @@
/*
* Copyright 1990 - 1994, Julianne Frances Haugh
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Julianne F. Haugh nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <config.h>
#ifdef SHADOWGRP /*{ */
#include "rcsid.h"
RCSID ("$Id: gspack.c,v 1.4 2005/03/31 05:14:49 kloczek Exp $")
#include <stdio.h>
#include "defines.h"
/*
* sgr_pack - convert a shadow group structure to a packed
* shadow group record
*
* sgr_pack takes the shadow group structure and packs
* the components in a record. this record will be
* unpacked later by sgr_unpack.
*/
int sgr_pack (const struct sgrp *sgrp, char *buf)
{
char *cp;
int i;
/*
* The name and password are both easy - append each string
* to the buffer. These are always the first two strings
* in a record.
*/
cp = buf;
strcpy (cp, sgrp->sg_name);
cp += strlen (cp) + 1;
strcpy (cp, sgrp->sg_passwd);
cp += strlen (cp) + 1;
/*
* The arrays of administrators and members are slightly
* harder. Each element is appended as a string, with a
* final '\0' appended to serve as a blank string. The
* number of elements is not known in advance, so the
* entire collection of administrators must be scanned to
* find the start of the members.
*/
for (i = 0; sgrp->sg_adm[i]; i++) {
strcpy (cp, sgrp->sg_adm[i]);
cp += strlen (cp) + 1;
}
*cp++ = '\0';
for (i = 0; sgrp->sg_mem[i]; i++) {
strcpy (cp, sgrp->sg_mem[i]);
cp += strlen (cp) + 1;
}
*cp++ = '\0';
return cp - buf;
}
/*
* sgr_unpack - convert a packed shadow group record to an
* unpacked record
*
* sgr_unpack converts a record which was packed by sgr_pack
* into the normal shadow group structure format.
*/
int sgr_unpack (char *buf, int len, struct sgrp *sgrp)
{
char *org = buf;
int i;
/*
* The name and password are both easy - they are the first
* two strings in the record.
*/
sgrp->sg_name = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
sgrp->sg_passwd = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
/*
* The administrators and members are slightly more difficult.
* The arrays are lists of strings. Each list is terminated
* by a string of length zero. This string is detected by
* looking for an initial character of '\0'.
*/
for (i = 0; *buf && i < 1024; i++) {
sgrp->sg_adm[i] = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
}
sgrp->sg_adm[i] = (char *) 0;
if (!*buf)
buf++;
for (i = 0; *buf && i < 1024; i++) {
sgrp->sg_mem[i] = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
}
sgrp->sg_mem[i] = (char *) 0;
return 0;
}
#endif /*} */

View File

@ -6,7 +6,7 @@
* Juha Virtanen, <jiivee@hut.fi>; November 1995
*/
/*
* $Id: prototypes.h,v 1.19 2005/05/25 18:20:22 kloczek Exp $
* $Id: prototypes.h,v 1.22 2005/08/02 10:50:51 kloczek Exp $
*
* Added a macro to work around ancient (non-ANSI) compilers, just in case
* someone ever tries to compile this with SunOS cc... --marekm
@ -84,21 +84,6 @@ extern int gr_dbm_present (void);
/* grent.c */
extern int putgrent (const struct group *, FILE *);
/* grpack.c */
extern int gr_pack (const struct group *, char *);
extern int gr_unpack (char *, int, struct group *);
#ifdef SHADOWGRP
/* gsdbm.c */
extern int sg_dbm_remove (const char *);
extern int sg_dbm_update (const struct sgrp *);
extern int sg_dbm_present (void);
/* gspack.c */
extern int sgr_pack (const struct sgrp *, char *);
extern int sgr_unpack (char *, int, struct sgrp *);
#endif
/* hushed.c */
extern int hushed (const struct passwd *);
@ -142,15 +127,6 @@ extern void passwd_check (const char *, const char *, const char *);
/* pwd_init.c */
extern void pwd_init (void);
/* pwdbm.c */
extern int pw_dbm_remove (const struct passwd *);
extern int pw_dbm_update (const struct passwd *);
extern int pw_dbm_present (void);
/* pwpack.c */
extern int pw_pack (const struct passwd *, char *);
extern int pw_unpack (char *, int, struct passwd *);
/* rlogin.c */
extern int do_rlogin (const char *, char *, int, char *, int);
@ -171,10 +147,6 @@ extern void setup_env (struct passwd *);
/* shell.c */
extern void shell (const char *, const char *);
/* sppack.c */
extern int spw_pack (const struct spwd *, char *);
extern int spw_unpack (char *, int, struct spwd *);
/* strtoday.c */
extern long strtoday (const char *);

View File

@ -1,117 +0,0 @@
/*
* Copyright 1990 - 1994, Julianne Frances Haugh
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Julianne F. Haugh nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: pwpack.c,v 1.7 2005/03/31 05:14:49 kloczek Exp $")
#include <sys/types.h>
#include "defines.h"
#include <stdio.h>
#include <pwd.h>
/*
* pw_pack - convert a (struct pwd) to a packed record
* WARNING: buf must be large enough, no check for overrun!
*/
int pw_pack (const struct passwd *passwd, char *buf)
{
char *cp;
cp = buf;
strcpy (cp, passwd->pw_name);
cp += strlen (cp) + 1;
strcpy (cp, passwd->pw_passwd);
cp += strlen (cp) + 1;
memcpy (cp, (const char *) &passwd->pw_uid, sizeof passwd->pw_uid);
cp += sizeof passwd->pw_uid;
memcpy (cp, (const char *) &passwd->pw_gid, sizeof passwd->pw_gid);
cp += sizeof passwd->pw_gid;
strcpy (cp, passwd->pw_gecos);
cp += strlen (cp) + 1;
strcpy (cp, passwd->pw_dir);
cp += strlen (cp) + 1;
strcpy (cp, passwd->pw_shell);
cp += strlen (cp) + 1;
return cp - buf;
}
/*
* pw_unpack - convert a packed (struct pwd) record to a (struct pwd)
*/
int pw_unpack (char *buf, int len, struct passwd *passwd)
{
char *org = buf;
memzero (passwd, sizeof *passwd);
passwd->pw_name = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
passwd->pw_passwd = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
memcpy ((void *) &passwd->pw_uid, (void *) buf, sizeof passwd->pw_uid);
buf += sizeof passwd->pw_uid;
if (buf - org > len)
return -1;
memcpy ((void *) &passwd->pw_gid, (void *) buf, sizeof passwd->pw_gid);
buf += sizeof passwd->pw_gid;
if (buf - org > len)
return -1;
passwd->pw_gecos = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
passwd->pw_dir = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
passwd->pw_shell = buf;
buf += strlen (buf) + 1;
if (buf - org > len)
return -1;
return 0;
}

View File

@ -1,107 +0,0 @@
/*
* Copyright 1990 - 1994, Julianne Frances Haugh
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Julianne F. Haugh nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: sppack.c,v 1.5 2005/05/25 18:20:22 kloczek Exp $")
#include <stdio.h>
#include <sys/types.h>
#include "defines.h"
int spw_pack (const struct spwd *spwd, char *buf)
{
char *cp;
cp = buf;
strcpy (cp, spwd->sp_namp);
cp += strlen (cp) + 1;
strcpy (cp, spwd->sp_pwdp);
cp += strlen (cp) + 1;
memcpy (cp, &spwd->sp_min, sizeof spwd->sp_min);
cp += sizeof spwd->sp_min;
memcpy (cp, &spwd->sp_max, sizeof spwd->sp_max);
cp += sizeof spwd->sp_max;
memcpy (cp, &spwd->sp_lstchg, sizeof spwd->sp_lstchg);
cp += sizeof spwd->sp_lstchg;
memcpy (cp, &spwd->sp_warn, sizeof spwd->sp_warn);
cp += sizeof spwd->sp_warn;
memcpy (cp, &spwd->sp_inact, sizeof spwd->sp_inact);
cp += sizeof spwd->sp_inact;
memcpy (cp, &spwd->sp_expire, sizeof spwd->sp_expire);
cp += sizeof spwd->sp_expire;
memcpy (cp, &spwd->sp_flag, sizeof spwd->sp_flag);
cp += sizeof spwd->sp_flag;
return cp - buf;
}
int spw_unpack (char *buf, int len, struct spwd *spwd)
{
char *org = buf;
spwd->sp_namp = buf;
buf += strlen (buf) + 1;
spwd->sp_pwdp = buf;
buf += strlen (buf) + 1;
memcpy (&spwd->sp_min, buf, sizeof spwd->sp_min);
buf += sizeof spwd->sp_min;
memcpy (&spwd->sp_max, buf, sizeof spwd->sp_max);
buf += sizeof spwd->sp_max;
memcpy (&spwd->sp_lstchg, buf, sizeof spwd->sp_lstchg);
buf += sizeof spwd->sp_lstchg;
memcpy (&spwd->sp_warn, buf, sizeof spwd->sp_warn);
buf += sizeof spwd->sp_warn;
memcpy (&spwd->sp_inact, buf, sizeof spwd->sp_inact);
buf += sizeof spwd->sp_inact;
memcpy (&spwd->sp_expire, buf, sizeof spwd->sp_expire);
buf += sizeof spwd->sp_expire;
memcpy (&spwd->sp_flag, buf, sizeof spwd->sp_flag);
buf += sizeof spwd->sp_flag;
if (buf - org > len)
return -1;
return 0;
}

View File

@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: chowntty.c,v 1.11 2005/03/31 05:14:50 kloczek Exp $")
RCSID ("$Id: chowntty.c,v 1.12 2005/08/09 18:03:15 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
@ -110,7 +110,7 @@ void chown_tty (const char *tty, const struct passwd *info)
info->pw_name));
closelog ();
if (!(err == EROFS && info->pw_uid == 0))
if (err != EROFS)
exit (1);
}
#ifdef __linux__

View File

@ -34,7 +34,7 @@
#include <config.h>
#include "rcsid.h"
RCSID ("$Id: setupenv.c,v 1.17 2005/07/06 11:49:21 kloczek Exp $")
RCSID ("$Id: setupenv.c,v 1.18 2005/08/09 18:09:42 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
@ -260,12 +260,6 @@ void setup_env (struct passwd *info)
addenv ("PATH", cp);
}
/*
* MAILDIR environment variable for Qmail
*/
if ((cp = getdef_str ("QMAIL_DIR")))
addenv_path ("MAILDIR", info->pw_dir, cp);
/*
* Create the MAIL environmental variable and export it. login.defs
* knows the prefix.

View File

@ -1,84 +1,95 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "CHAGE" 1 "" "" ""
.SH NAME
.\" ** You probably do not want to edit this file directly **
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.0).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
.TH "CHAGE" "1" "08/09/2005" "User Commands" "User Commands"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.SH "NAME"
chage \- change user password expiry information
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 6
\fBchage\fR [\fIoptions\fR] \fIuser\fR
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBchage\fR 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\&.
\fBchage\fR
command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change her password.
.SH "OPTIONS"
.PP
The options which apply to the \fBchage\fR command are:
The options which apply to the
\fBchage\fR
command are:
.TP
\fB\-d\fR, \fB\-\-lastday\fR \fILAST_DAY\fR
Set the number of days since January 1st, 1970 when the password was last changed\&. The date may also be expressed in the format YYYY\-MM\-DD (or the format more commonly used in your area)\&.
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).
.TP
\fB\-E\fR, \fB\-\-expiredate\fR \fIEXPIRE_DATE\fR
Set the date on which the user's account will no longer be accessible\&. The \fIEXPIRE_DATE\fR option is the number of days since January 1, 1970 on which the accounted is locked\&. The date may also be expressed in the format YYYY\-MM\-DD (or the format more commonly used in your area)\&. A user whose account is locked must contact the system administrator before being able to use the system again\&. Passing the number \fI\-1\fR as the \fIEXPIRE_DATE\fR will remove an accounts expiration date\&.
Set the date on which the user's account will no longer be accessible. The
\fIEXPIRE_DATE\fR
option is the number of days since January 1, 1970 on which the accounted is locked. The date may also be expressed in the format YYYY\-MM\-DD (or the format more commonly used in your area). A user whose account is locked must contact the system administrator before being able to use the system again.
Passing the number
\fI\-1\fR
as the
\fIEXPIRE_DATE\fR
will remove an account expiration date.
.TP
\fB\-I\fR, \fB\-\-inactive\fR \fIINACTIVE\fR
Set the number of days of inactivity after a password has expired before the account is locked\&. The \fIINACTIVE\fR option is the number of days of inactivity\&. A value of 0 disables this feature\&. A user whose account is locked must contact the system administrator before being able to use the system again\&.
Set the number of days of inactivity after a password has expired before the account is locked. The
\fIINACTIVE\fR
option is the number of days of inactivity. A user whose account is locked must contact the system administrator before being able to use the system again.
Passing the number
\fI\-1\fR
as the
\fIINACTIVE\fR
will remove an accounts inactivity.
.TP
\fB\-l\fR, \fB\-\-list\fR
Show account aging information\&.
Show account aging information.
.TP
\fB\-m\fR, \fB\-\-mindays\fR \fIMIN_DAYS\fR
Set the minimum number of days between password changes\&. A value of zero for this field indicates that the user may change her password at any time\&.
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.
.TP
\fB\-M\fR, \fB\-\-maxdays\fR \fIMAX_DAYS\fR
Set maximum number of days during which a password is valid\&. When \fIMAX_DAYS\fR plus \fILAST_DAY\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\&.
Set maximum number of days during which a password is valid. When
\fIMAX_DAYS\fR
plus
\fILAST_DAY\fR
is less than the current day, the user will be required to change her password before being able to use her account. This occurence can be planned for in advance by use of the
\fB\-W\fR
option, which provides the user with advance warning.
Passing the number
\fI\-1\fR
as the
\fIMAX_DAYS\fR
will remove checking a password validation.
.TP
\fB\-W\fR, \fBwarndays\fR \fIWARN_DAYS\fR
Set the number of days of warning before a password change is required\&. The \fIWARN_DAYS\fR option is the number of days prior to the password expiring that a user will be warned her password is about to expire\&.
Set the number of days of warning before a password change is required. The
\fIWARN_DAYS\fR
option is the number of days prior to the password expiring that a user will be warned her password is about to expire.
.PP
If none of the options are selected, \fBchage\fR 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 \fI[ ]\fR marks\&.
If none of the options are selected,
\fBchage\fR
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
\fI[ ]\fR
marks.
.SH "NOTE"
.PP
The \fBchage\fR program requires shadow password file to be available\&. Its functionality is not available when passwords are stored in the passwd file\&.
The
\fBchage\fR
program requires shadow password file to be available. Its functionality is not available when passwords are stored in the passwd file.
.PP
The \fBchage\fR command is restricted to the root user, except for the \fB\-l\fR option, which may be used by an unprivileged user to determine when her password or account is due to expire\&.
The
\fBchage\fR
command is restricted to the root user, except for the
\fB\-l\fR
option, which may be used by an unprivileged user to determine when her password or account is due to expire.
.SH "FILES"
.TP
\fI/etc/passwd\fR
user account information
@ -86,12 +97,9 @@ user account information
\fI/etc/shadow\fR
secure user account information
.SH "SEE ALSO"
.PP
\fBpasswd\fR(5), \fBshadow\fR(5)\&.
\fBpasswd\fR(5),
\fBshadow\fR(5).
.SH "AUTHOR"
.PP
Julianne Frances Haugh <jockgrrl@ix\&.netcom\&.com>
Julianne Frances Haugh <jockgrrl@ix.netcom.com>

View File

@ -2,7 +2,7 @@
<!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.10 2005/06/15 12:39:27 kloczek Exp $ -->
<!-- $Id: chage.1.xml,v 1.15 2005/08/10 08:25:00 kloczek Exp $ -->
<refmeta>
<refentrytitle>chage</refentrytitle>
<manvolnum>1</manvolnum>
@ -25,7 +25,7 @@
<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.
between password changes and the date of the last password change.
This information is used by the system to determine when a user must
change her password.
</para>
@ -60,10 +60,11 @@
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'>EXPIRE_DATE</emphasis> will remove an accounts
expiration date.
administrator before being able to use the system again.
</para>
<para>
Passing the number <emphasis remap='I'>-1</emphasis> as the <emphasis
remap='I'>EXPIRE_DATE</emphasis> will remove an account expiration date.
</para>
</listitem>
</varlistentry>
@ -76,9 +77,12 @@
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.
inactivity. A user whose account is locked must contact the system
administrator before being able to use the system again.
</para>
<para>
Passing the number <emphasis remap='I'>-1</emphasis> as the <emphasis
remap='I'>INACTIVE</emphasis> will remove an accounts inactivity.
</para>
</listitem>
</varlistentry>
@ -114,10 +118,14 @@
When <emphasis remap='I'>MAX_DAYS</emphasis> plus <emphasis
remap='I'>LAST_DAY</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
to use her account. This occurence can be planned for in
advance by use of the <option>-W</option> option, which provides
the user with advance warning.
</para>
<para>
Passing the number <emphasis remap='I'>-1</emphasis> as the <emphasis
remap='I'>MAX_DAYS</emphasis> will remove checking a password validation.
</para>
</listitem>
</varlistentry>
<varlistentry>

View File

@ -1,59 +1,46 @@
.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "CHFN" 1 "" "" ""
.SH NAME
.\" ** You probably do not want to edit this file directly **
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.0).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
.TH "CHFN" "1" "08/10/2005" "User Commands" "User Commands"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.SH "NAME"
chfn \- change real user name and information
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 5
\fBchfn\fR [\-f\ \fIfull_name\fR] [\-r\ \fIroom_no\fR] [\-w\ \fIwork_ph\fR] [\-h\ \fIhome_ph\fR] [\-o\ \fIother\fR] [\fIuser\fR]
.ad
.hy
.SH "DESCRIPTION"