[svn-upgrade] Integrating new upstream version, shadow (4.0.12)
This commit is contained in:
parent
1de90a599c
commit
e89f3546f2
58
NEWS
58
NEWS
@ -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
54
configure
vendored
@ -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
|
||||
|
16
configure.in
16
configure.in
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
9
lib/exitcodes.h
Normal 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 */
|
60
lib/getdef.c
60
lib/getdef.c
@ -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}
|
||||
};
|
||||
|
||||
|
90
lib/grpack.c
90
lib/grpack.c
@ -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;
|
||||
}
|
145
lib/gspack.c
145
lib/gspack.c
@ -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 /*} */
|
@ -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 *);
|
||||
|
||||
|
117
lib/pwpack.c
117
lib/pwpack.c
@ -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;
|
||||
}
|
107
lib/sppack.c
107
lib/sppack.c
@ -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;
|
||||
}
|
@ -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__
|
||||
|
@ -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.
|
||||
|
122
man/chage.1
122
man/chage.1
@ -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>
|
||||
|
@ -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>
|
||||
|
69
man/chfn.1
69
man/chfn.1
@ -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"
|