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

This commit is contained in:
nekral-guest
2007-10-07 11:45:40 +00:00
parent e637799f9b
commit b0e078d9c8
177 changed files with 59452 additions and 14990 deletions

View File

@@ -4,8 +4,6 @@ EXTRA_DIST = .indent.pro
ubindir = ${prefix}/bin
usbindir = ${prefix}/sbin
DEFS = -D_HAVE_CONFIG_H -DLOCALEDIR=\"$(datadir)/locale\"
INCLUDES = \
-I${top_srcdir}/lib \
-I$(top_srcdir)/libmisc
@@ -49,7 +47,7 @@ noinst_PROGRAMS = id sulogin
suidbins = su
suidubins = chage chfn chsh expiry gpasswd newgrp passwd
LDADD = $(top_builddir)/libmisc/libmisc.la \
LDADD = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
chpasswd_LDADD = $(LDADD) $(LIBPAM)
@@ -68,14 +66,13 @@ useradd_LDADD = $(LDADD) $(LIBPAM)
userdel_LDADD = $(LDADD) $(LIBPAM)
usermod_LDADD = $(LDADD) $(LIBPAM)
install-exec-hook:
ln -sf newgrp $(DESTDIR)$(bindir)/sg
ln -sf vipw $(DESTDIR)$(bindir)/vigr
install-am: all-am
$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
ln -sf newgrp $(DESTDIR)$(ubindir)/sg
ln -sf vipw $(DESTDIR)$(usbindir)/vigr
for i in $(suidbins); do \
chmod 4755 $(DESTDIR)$(bindir)/$$i; \
chmod -f 4755 $(DESTDIR)$(bindir)/$$i; \
done
install-data-hook:
for i in $(suidubins); do \
chmod 4755 $(DESTDIR)$(ubindir)/$$i; \
chmod -f 4755 $(DESTDIR)$(ubindir)/$$i; \
done

View File

@@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.7.8 from Makefile.am.
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Free Software Foundation, Inc.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -14,6 +14,8 @@
@SET_MAKE@
SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c usermod.c vipw.c
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -21,7 +23,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -35,7 +36,192 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = groups$(EXEEXT) login$(EXEEXT) su$(EXEEXT)
ubin_PROGRAMS = faillog$(EXEEXT) lastlog$(EXEEXT) chage$(EXEEXT) \
chfn$(EXEEXT) chsh$(EXEEXT) expiry$(EXEEXT) gpasswd$(EXEEXT) \
newgrp$(EXEEXT) passwd$(EXEEXT)
usbin_PROGRAMS = chpasswd$(EXEEXT) groupadd$(EXEEXT) groupdel$(EXEEXT) \
groupmod$(EXEEXT) grpck$(EXEEXT) grpconv$(EXEEXT) \
grpunconv$(EXEEXT) logoutd$(EXEEXT) mkpasswd$(EXEEXT) \
newusers$(EXEEXT) pwck$(EXEEXT) pwconv$(EXEEXT) \
pwunconv$(EXEEXT) useradd$(EXEEXT) userdel$(EXEEXT) \
usermod$(EXEEXT) vipw$(EXEEXT)
noinst_PROGRAMS = id$(EXEEXT) sulogin$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ubindir)" \
"$(DESTDIR)$(usbindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
ubinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
usbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(ubin_PROGRAMS) \
$(usbin_PROGRAMS)
chage_SOURCES = chage.c
chage_OBJECTS = chage.$(OBJEXT)
am__DEPENDENCIES_1 = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
am__DEPENDENCIES_2 =
chage_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
chfn_SOURCES = chfn.c
chfn_OBJECTS = chfn.$(OBJEXT)
chfn_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
chpasswd_SOURCES = chpasswd.c
chpasswd_OBJECTS = chpasswd.$(OBJEXT)
chpasswd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
chsh_SOURCES = chsh.c
chsh_OBJECTS = chsh.$(OBJEXT)
chsh_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
expiry_SOURCES = expiry.c
expiry_OBJECTS = expiry.$(OBJEXT)
expiry_LDADD = $(LDADD)
expiry_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
faillog_SOURCES = faillog.c
faillog_OBJECTS = faillog.$(OBJEXT)
faillog_LDADD = $(LDADD)
faillog_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
gpasswd_SOURCES = gpasswd.c
gpasswd_OBJECTS = gpasswd.$(OBJEXT)
gpasswd_LDADD = $(LDADD)
gpasswd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
groupadd_SOURCES = groupadd.c
groupadd_OBJECTS = groupadd.$(OBJEXT)
groupadd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
groupdel_SOURCES = groupdel.c
groupdel_OBJECTS = groupdel.$(OBJEXT)
groupdel_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
groupmod_SOURCES = groupmod.c
groupmod_OBJECTS = groupmod.$(OBJEXT)
groupmod_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
groups_SOURCES = groups.c
groups_OBJECTS = groups.$(OBJEXT)
groups_LDADD = $(LDADD)
groups_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
grpck_SOURCES = grpck.c
grpck_OBJECTS = grpck.$(OBJEXT)
grpck_LDADD = $(LDADD)
grpck_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
grpconv_SOURCES = grpconv.c
grpconv_OBJECTS = grpconv.$(OBJEXT)
grpconv_LDADD = $(LDADD)
grpconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
grpunconv_SOURCES = grpunconv.c
grpunconv_OBJECTS = grpunconv.$(OBJEXT)
grpunconv_LDADD = $(LDADD)
grpunconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
id_SOURCES = id.c
id_OBJECTS = id.$(OBJEXT)
id_LDADD = $(LDADD)
id_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
lastlog_SOURCES = lastlog.c
lastlog_OBJECTS = lastlog.$(OBJEXT)
lastlog_LDADD = $(LDADD)
lastlog_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
login_SOURCES = login.c
login_OBJECTS = login.$(OBJEXT)
login_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
logoutd_SOURCES = logoutd.c
logoutd_OBJECTS = logoutd.$(OBJEXT)
logoutd_LDADD = $(LDADD)
logoutd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
mkpasswd_SOURCES = mkpasswd.c
mkpasswd_OBJECTS = mkpasswd.$(OBJEXT)
mkpasswd_LDADD = $(LDADD)
mkpasswd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
newgrp_SOURCES = newgrp.c
newgrp_OBJECTS = newgrp.$(OBJEXT)
newgrp_LDADD = $(LDADD)
newgrp_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
newusers_SOURCES = newusers.c
newusers_OBJECTS = newusers.$(OBJEXT)
newusers_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
passwd_SOURCES = passwd.c
passwd_OBJECTS = passwd.$(OBJEXT)
passwd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_2)
pwck_SOURCES = pwck.c
pwck_OBJECTS = pwck.$(OBJEXT)
pwck_LDADD = $(LDADD)
pwck_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
pwconv_SOURCES = pwconv.c
pwconv_OBJECTS = pwconv.$(OBJEXT)
pwconv_LDADD = $(LDADD)
pwconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
pwunconv_SOURCES = pwunconv.c
pwunconv_OBJECTS = pwunconv.$(OBJEXT)
pwunconv_LDADD = $(LDADD)
pwunconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
am_su_OBJECTS = su.$(OBJEXT) suauth.$(OBJEXT)
su_OBJECTS = $(am_su_OBJECTS)
su_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
sulogin_SOURCES = sulogin.c
sulogin_OBJECTS = sulogin.$(OBJEXT)
sulogin_LDADD = $(LDADD)
sulogin_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
useradd_SOURCES = useradd.c
useradd_OBJECTS = useradd.$(OBJEXT)
useradd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
userdel_SOURCES = userdel.c
userdel_OBJECTS = userdel.$(OBJEXT)
userdel_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
usermod_SOURCES = usermod.c
usermod_OBJECTS = usermod.$(OBJEXT)
usermod_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
vipw_SOURCES = vipw.c
vipw_OBJECTS = vipw.$(OBJEXT)
vipw_LDADD = $(LDADD)
vipw_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c \
gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c \
grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c \
mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c \
pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c \
usermod.c vipw.c
DIST_SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c \
gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c \
grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c \
mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c \
pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c \
usermod.c vipw.c
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
@@ -55,8 +241,7 @@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = -D_HAVE_CONFIG_H -DLOCALEDIR=\"$(datadir)/locale\"
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
@@ -81,6 +266,7 @@ LIBMD = @LIBMD@
LIBOBJS = @LIBOBJS@
LIBPAM = @LIBPAM@
LIBS = @LIBS@
LIBSELINUX = @LIBSELINUX@
LIBSKEY = @LIBSKEY@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
@@ -125,6 +311,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -145,6 +333,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -152,61 +341,20 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
EXTRA_DIST = .indent.pro
ubindir = ${prefix}/bin
usbindir = ${prefix}/sbin
INCLUDES = \
-I${top_srcdir}/lib \
-I$(top_srcdir)/libmisc
# XXX why are login and su in /bin anyway (other than for
# historical reasons)?
#
# if the system is screwed so badly that it can't mount /usr,
# you can (hopefully) boot single user, and then you're root
# so you don't need these programs for recovery.
#
# also /lib/libshadow.so.x.xx (if any) could be moved to /usr/lib
# and installation would be much simpler (just two directories,
# $prefix/bin and $prefix/sbin, no install-data hacks...)
bin_PROGRAMS = groups login su
ubin_PROGRAMS = faillog lastlog chage chfn chsh expiry gpasswd newgrp passwd
usbin_PROGRAMS = \
chpasswd \
groupadd \
groupdel \
groupmod \
grpck \
grpconv \
grpunconv \
logoutd \
mkpasswd \
newusers \
pwck \
pwconv \
pwunconv \
useradd \
userdel \
usermod \
vipw
noinst_PROGRAMS = id sulogin
# id and groups are from gnu, sulogin from sysvinit
suidbins = su
suidubins = chage chfn chsh expiry gpasswd newgrp passwd
LDADD = $(top_builddir)/libmisc/libmisc.la \
LDADD = $(top_builddir)/libmisc/libmisc.a \
$(top_builddir)/lib/libshadow.la
chpasswd_LDADD = $(LDADD) $(LIBPAM)
chage_LDADD = $(LDADD) $(LIBPAM)
chfn_LDADD = $(LDADD) $(LIBPAM)
@@ -222,254 +370,50 @@ su_LDADD = $(LDADD) $(LIBPAM)
useradd_LDADD = $(LDADD) $(LIBPAM)
userdel_LDADD = $(LDADD) $(LIBPAM)
usermod_LDADD = $(LDADD) $(LIBPAM)
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
bin_PROGRAMS = groups$(EXEEXT) login$(EXEEXT) su$(EXEEXT)
noinst_PROGRAMS = id$(EXEEXT) sulogin$(EXEEXT)
ubin_PROGRAMS = faillog$(EXEEXT) lastlog$(EXEEXT) chage$(EXEEXT) \
chfn$(EXEEXT) chsh$(EXEEXT) expiry$(EXEEXT) gpasswd$(EXEEXT) \
newgrp$(EXEEXT) passwd$(EXEEXT)
usbin_PROGRAMS = chpasswd$(EXEEXT) groupadd$(EXEEXT) groupdel$(EXEEXT) \
groupmod$(EXEEXT) grpck$(EXEEXT) grpconv$(EXEEXT) \
grpunconv$(EXEEXT) logoutd$(EXEEXT) mkpasswd$(EXEEXT) \
newusers$(EXEEXT) pwck$(EXEEXT) pwconv$(EXEEXT) \
pwunconv$(EXEEXT) useradd$(EXEEXT) userdel$(EXEEXT) \
usermod$(EXEEXT) vipw$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(ubin_PROGRAMS) \
$(usbin_PROGRAMS)
chage_SOURCES = chage.c
chage_OBJECTS = chage.$(OBJEXT)
chage_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
chage_LDFLAGS =
chfn_SOURCES = chfn.c
chfn_OBJECTS = chfn.$(OBJEXT)
chfn_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
chfn_LDFLAGS =
chpasswd_SOURCES = chpasswd.c
chpasswd_OBJECTS = chpasswd.$(OBJEXT)
chpasswd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
chpasswd_LDFLAGS =
chsh_SOURCES = chsh.c
chsh_OBJECTS = chsh.$(OBJEXT)
chsh_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
chsh_LDFLAGS =
expiry_SOURCES = expiry.c
expiry_OBJECTS = expiry.$(OBJEXT)
expiry_LDADD = $(LDADD)
expiry_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
expiry_LDFLAGS =
faillog_SOURCES = faillog.c
faillog_OBJECTS = faillog.$(OBJEXT)
faillog_LDADD = $(LDADD)
faillog_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
faillog_LDFLAGS =
gpasswd_SOURCES = gpasswd.c
gpasswd_OBJECTS = gpasswd.$(OBJEXT)
gpasswd_LDADD = $(LDADD)
gpasswd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
gpasswd_LDFLAGS =
groupadd_SOURCES = groupadd.c
groupadd_OBJECTS = groupadd.$(OBJEXT)
groupadd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
groupadd_LDFLAGS =
groupdel_SOURCES = groupdel.c
groupdel_OBJECTS = groupdel.$(OBJEXT)
groupdel_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
groupdel_LDFLAGS =
groupmod_SOURCES = groupmod.c
groupmod_OBJECTS = groupmod.$(OBJEXT)
groupmod_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
groupmod_LDFLAGS =
groups_SOURCES = groups.c
groups_OBJECTS = groups.$(OBJEXT)
groups_LDADD = $(LDADD)
groups_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
groups_LDFLAGS =
grpck_SOURCES = grpck.c
grpck_OBJECTS = grpck.$(OBJEXT)
grpck_LDADD = $(LDADD)
grpck_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
grpck_LDFLAGS =
grpconv_SOURCES = grpconv.c
grpconv_OBJECTS = grpconv.$(OBJEXT)
grpconv_LDADD = $(LDADD)
grpconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
grpconv_LDFLAGS =
grpunconv_SOURCES = grpunconv.c
grpunconv_OBJECTS = grpunconv.$(OBJEXT)
grpunconv_LDADD = $(LDADD)
grpunconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
grpunconv_LDFLAGS =
id_SOURCES = id.c
id_OBJECTS = id.$(OBJEXT)
id_LDADD = $(LDADD)
id_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
id_LDFLAGS =
lastlog_SOURCES = lastlog.c
lastlog_OBJECTS = lastlog.$(OBJEXT)
lastlog_LDADD = $(LDADD)
lastlog_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
lastlog_LDFLAGS =
login_SOURCES = login.c
login_OBJECTS = login.$(OBJEXT)
login_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
login_LDFLAGS =
logoutd_SOURCES = logoutd.c
logoutd_OBJECTS = logoutd.$(OBJEXT)
logoutd_LDADD = $(LDADD)
logoutd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
logoutd_LDFLAGS =
mkpasswd_SOURCES = mkpasswd.c
mkpasswd_OBJECTS = mkpasswd.$(OBJEXT)
mkpasswd_LDADD = $(LDADD)
mkpasswd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
mkpasswd_LDFLAGS =
newgrp_SOURCES = newgrp.c
newgrp_OBJECTS = newgrp.$(OBJEXT)
newgrp_LDADD = $(LDADD)
newgrp_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
newgrp_LDFLAGS =
newusers_SOURCES = newusers.c
newusers_OBJECTS = newusers.$(OBJEXT)
newusers_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
newusers_LDFLAGS =
passwd_SOURCES = passwd.c
passwd_OBJECTS = passwd.$(OBJEXT)
passwd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
passwd_LDFLAGS =
pwck_SOURCES = pwck.c
pwck_OBJECTS = pwck.$(OBJEXT)
pwck_LDADD = $(LDADD)
pwck_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
pwck_LDFLAGS =
pwconv_SOURCES = pwconv.c
pwconv_OBJECTS = pwconv.$(OBJEXT)
pwconv_LDADD = $(LDADD)
pwconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
pwconv_LDFLAGS =
pwunconv_SOURCES = pwunconv.c
pwunconv_OBJECTS = pwunconv.$(OBJEXT)
pwunconv_LDADD = $(LDADD)
pwunconv_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
pwunconv_LDFLAGS =
am_su_OBJECTS = su.$(OBJEXT) suauth.$(OBJEXT)
su_OBJECTS = $(am_su_OBJECTS)
su_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
su_LDFLAGS =
sulogin_SOURCES = sulogin.c
sulogin_OBJECTS = sulogin.$(OBJEXT)
sulogin_LDADD = $(LDADD)
sulogin_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
sulogin_LDFLAGS =
useradd_SOURCES = useradd.c
useradd_OBJECTS = useradd.$(OBJEXT)
useradd_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
useradd_LDFLAGS =
userdel_SOURCES = userdel.c
userdel_OBJECTS = userdel.$(OBJEXT)
userdel_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
userdel_LDFLAGS =
usermod_SOURCES = usermod.c
usermod_OBJECTS = usermod.$(OBJEXT)
usermod_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
usermod_LDFLAGS =
vipw_SOURCES = vipw.c
vipw_OBJECTS = vipw.$(OBJEXT)
vipw_LDADD = $(LDADD)
vipw_DEPENDENCIES = $(top_builddir)/libmisc/libmisc.la \
$(top_builddir)/lib/libshadow.la
vipw_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/chage.Po ./$(DEPDIR)/chfn.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/chpasswd.Po ./$(DEPDIR)/chsh.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/expiry.Po ./$(DEPDIR)/faillog.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/gpasswd.Po ./$(DEPDIR)/groupadd.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/groupdel.Po ./$(DEPDIR)/groupmod.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/groups.Po ./$(DEPDIR)/grpck.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/grpconv.Po ./$(DEPDIR)/grpunconv.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/id.Po ./$(DEPDIR)/lastlog.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/login.Po ./$(DEPDIR)/logoutd.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/mkpasswd.Po ./$(DEPDIR)/newgrp.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/newusers.Po ./$(DEPDIR)/passwd.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/pwck.Po ./$(DEPDIR)/pwconv.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/pwunconv.Po ./$(DEPDIR)/su.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/suauth.Po ./$(DEPDIR)/sulogin.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/useradd.Po ./$(DEPDIR)/userdel.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/usermod.Po ./$(DEPDIR)/vipw.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c \
gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c \
grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c \
mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c \
pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c \
usermod.c vipw.c
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
SOURCES = chage.c chfn.c chpasswd.c chsh.c expiry.c faillog.c gpasswd.c groupadd.c groupdel.c groupmod.c groups.c grpck.c grpconv.c grpunconv.c id.c lastlog.c login.c logoutd.c mkpasswd.c newgrp.c newusers.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) sulogin.c useradd.c userdel.c usermod.c vipw.c
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -477,8 +421,8 @@ uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
rm -f $(DESTDIR)$(bindir)/$$f; \
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
rm -f "$(DESTDIR)$(bindir)/$$f"; \
done
clean-binPROGRAMS:
@@ -494,18 +438,17 @@ clean-noinstPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
ubinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
install-ubinPROGRAMS: $(ubin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(ubindir)
test -z "$(ubindir)" || $(mkdir_p) "$(DESTDIR)$(ubindir)"
@list='$(ubin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ubinPROGRAMS_INSTALL) $$p $(DESTDIR)$(ubindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ubinPROGRAMS_INSTALL) $$p $(DESTDIR)$(ubindir)/$$f || exit 1; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ubinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(ubindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ubinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(ubindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -513,8 +456,8 @@ uninstall-ubinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(ubin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(ubindir)/$$f"; \
rm -f $(DESTDIR)$(ubindir)/$$f; \
echo " rm -f '$(DESTDIR)$(ubindir)/$$f'"; \
rm -f "$(DESTDIR)$(ubindir)/$$f"; \
done
clean-ubinPROGRAMS:
@@ -523,18 +466,17 @@ clean-ubinPROGRAMS:
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
usbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
install-usbinPROGRAMS: $(usbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(usbindir)
test -z "$(usbindir)" || $(mkdir_p) "$(DESTDIR)$(usbindir)"
@list='$(usbin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(usbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(usbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(usbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(usbindir)/$$f || exit 1; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(usbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(usbindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(usbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(usbindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -542,8 +484,8 @@ uninstall-usbinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(usbin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(usbindir)/$$f"; \
rm -f $(DESTDIR)$(usbindir)/$$f; \
echo " rm -f '$(DESTDIR)$(usbindir)/$$f'"; \
rm -f "$(DESTDIR)$(usbindir)/$$f"; \
done
clean-usbinPROGRAMS:
@@ -647,7 +589,7 @@ vipw$(EXEEXT): $(vipw_OBJECTS) $(vipw_DEPENDENCIES)
$(LINK) $(vipw_LDFLAGS) $(vipw_OBJECTS) $(vipw_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@@ -686,37 +628,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vipw.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
@am__fastdepCC_TRUE@ fi
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -728,14 +658,6 @@ distclean-libtool:
-rm -f libtool
uninstall-info-am:
ETAGS = etags
ETAGSFLAGS =
CTAGS = ctags
CTAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -744,6 +666,7 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -755,10 +678,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -781,10 +705,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -798,7 +718,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -816,21 +736,19 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(ubindir) $(DESTDIR)$(usbindir)
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ubindir)" "$(DESTDIR)$(usbindir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_STRIP_FLAG=-s \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -838,7 +756,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -859,17 +777,15 @@ dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-ubinPROGRAMS install-usbinPROGRAMS
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-exec-am: install-binPROGRAMS
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
install-info: install-info-am
@@ -902,28 +818,27 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
clean-generic clean-libtool clean-noinstPROGRAMS \
clean-ubinPROGRAMS clean-usbinPROGRAMS ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-binPROGRAMS install-data install-data-am \
install-exec install-exec-am install-info install-info-am \
install-man install-strip install-ubinPROGRAMS \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip install-ubinPROGRAMS \
install-usbinPROGRAMS installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \
pdf-am ps ps-am tags uninstall uninstall-am \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-info-am uninstall-ubinPROGRAMS \
uninstall-usbinPROGRAMS
install-exec-hook:
ln -sf newgrp $(DESTDIR)$(bindir)/sg
ln -sf vipw $(DESTDIR)$(bindir)/vigr
install-am: all-am
$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
ln -sf newgrp $(DESTDIR)$(ubindir)/sg
ln -sf vipw $(DESTDIR)$(usbindir)/vigr
for i in $(suidbins); do \
chmod 4755 $(DESTDIR)$(bindir)/$$i; \
chmod -f 4755 $(DESTDIR)$(bindir)/$$i; \
done
install-data-hook:
for i in $(suidubins); do \
chmod 4755 $(DESTDIR)$(ubindir)/$$i; \
chmod -f 4755 $(DESTDIR)$(ubindir)/$$i; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: chage.c,v 1.32 2003/06/19 17:57:15 kloczek Exp $")
RCSID (PKG_VER "$Id: chage.c,v 1.34 2004/10/11 13:42:49 kloczek Exp $")
#include <sys/types.h>
#include <stdio.h>
#include <fcntl.h>
@@ -221,7 +221,7 @@ static void print_date (time_t date)
* list_fields - display the current values of the expiration fields
*
* display the password age information from the password fields. Date
* values will be displayed as a calendar date, or the word "Never" if
* values will be displayed as a calendar date, or the word "never" if
* the date is 1/1/70, which is day number 0.
*/
@@ -231,26 +231,13 @@ static void list_fields (void)
long expires;
/*
* Start with the easy numbers - the number of days before the
* password can be changed, the number of days after which the
* password must be chaged, the number of days before the password
* expires that the user is told, and the number of days after the
* password expires that the account becomes unusable.
*/
printf (_("Minimum:\t%ld\n"), mindays);
printf (_("Maximum:\t%ld\n"), maxdays);
printf (_("Warning:\t%ld\n"), warndays);
printf (_("Inactive:\t%ld\n"), inactdays);
/*
* The "last change" date is either "Never" or the date the password
* The "last change" date is either "never" or the date the password
* was last modified. The date is the number of days since 1/1/1970.
*/
printf (_("Last Change:\t\t"));
printf (_("Last password change\t\t\t\t\t: "));
if (lastday <= 0) {
printf (_("Never\n"));
printf (_("never\n"));
} else {
changed = lastday * SCALE;
print_date (changed);
@@ -261,10 +248,10 @@ static void list_fields (void)
* date plus the number of days the password is valid for.
*/
printf (_("Password Expires:\t"));
printf (_("Password expires\t\t\t\t\t: "));
if (lastday <= 0 || maxdays >= 10000 * (DAY / SCALE)
|| maxdays <= 0) {
printf (_("Never\n"));
printf (_("never\n"));
} else {
expires = changed + maxdays * SCALE;
print_date (expires);
@@ -277,10 +264,10 @@ static void list_fields (void)
* active will be disabled.
*/
printf (_("Password Inactive:\t"));
printf (_("Password inactive\t\t\t\t\t: "));
if (lastday <= 0 || inactdays <= 0 ||
maxdays >= 10000 * (DAY / SCALE) || maxdays <= 0) {
printf (_("Never\n"));
printf (_("never\n"));
} else {
expires = changed + (maxdays + inactdays) * SCALE;
print_date (expires);
@@ -291,13 +278,25 @@ static void list_fields (void)
* password expiring or not.
*/
printf (_("Account Expires:\t"));
printf (_("Account expires\t\t\t\t\t\t: "));
if (expdays <= 0) {
printf (_("Never\n"));
printf (_("never\n"));
} else {
expires = expdays * SCALE;
print_date (expires);
}
/*
* Start with the easy numbers - the number of days before the
* password can be changed, the number of days after which the
* password must be chaged, the number of days before the password
* expires that the user is told, and the number of days after the
* password expires that the account becomes unusable.
*/
printf (_("Minimum number of days between password change\t\t: %ld\n"), mindays);
printf (_("Maximum number of days between password change\t\t: %ld\n"), maxdays);
printf (_("Number of days of warning before password expires\t: %ld\n"), warndays);
}
#ifdef USE_PAM
@@ -698,6 +697,40 @@ int main (int argc, char **argv)
exit (1);
}
#ifdef USE_PAM
retval = PAM_SUCCESS;
pampw = getpwuid(getuid());
if (pampw == NULL) {
retval = PAM_USER_UNKNOWN;
}
if (retval == PAM_SUCCESS) {
retval = pam_start("chage", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
retval = pam_authenticate(pamh, 0);
if (retval != PAM_SUCCESS) {
pam_end(pamh, retval);
}
}
if (retval == PAM_SUCCESS) {
retval = pam_acct_mgmt(pamh, 0);
if (retval != PAM_SUCCESS) {
pam_end(pamh, retval);
}
}
if (retval != PAM_SUCCESS) {
fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
exit (1);
}
OPENLOG("chage");
#endif /* USE_PAM */
/*
* Close the password file. If any entries were modified, the file
* will be re-written.

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: chpasswd.c,v 1.18 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: chpasswd.c,v 1.19 2004/10/11 06:26:40 kloczek Exp $")
#include <stdio.h>
#include "prototypes.h"
#include "defines.h"
@@ -105,6 +105,12 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
/* XXX - use getopt() */
if (!(argc == 1 || (argc == 2 && !strcmp(argv[1], "-e"))))
usage();
if (argc == 2)
eflg = 1;
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -115,7 +121,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("chpasswd", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -139,12 +145,6 @@ int main (int argc, char **argv)
}
#endif /* USE_PAM */
/* XXX - use getopt() */
if (!(argc == 1 || (argc == 2 && !strcmp (argv[1], "-e"))))
usage ();
if (argc == 2)
eflg = 1;
/*
* Lock the password file and open it for reading. This will bring
* all of the entries into memory where they may be updated.

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: groupadd.c,v 1.27 2004/01/05 01:08:56 kloczek Exp $")
RCSID (PKG_VER "$Id: groupadd.c,v 1.29 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <stdio.h>
#include <grp.h>
@@ -315,7 +315,7 @@ static void check_new_name (void)
* All invalid group names land here.
*/
fprintf (stderr, _("%s: %s is a not a valid group name\n"),
fprintf (stderr, _("%s: %s is not a valid group name\n"),
Prog, group_name);
exit (E_BAD_ARG);
@@ -499,6 +499,10 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
OPENLOG("groupadd");
process_flags(argc, argv);
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -509,7 +513,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("groupadd", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -531,9 +535,9 @@ int main (int argc, char **argv)
Prog);
exit (1);
}
#endif /* USE_PAM */
OPENLOG (Prog);
OPENLOG ("groupadd");
#endif /* USE_PAM */
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();
@@ -550,7 +554,6 @@ int main (int argc, char **argv)
sg_dbm_mode = O_RDWR;
#endif /* SHADOWGRP */
#endif /* NDBM */
process_flags (argc, argv);
/*
* Start with a quick check to see if the group exists.

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: groupdel.c,v 1.17 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: groupdel.c,v 1.18 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <stdio.h>
#include <grp.h>
@@ -294,6 +294,11 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
if (argc != 2)
usage();
group_name = argv[1];
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -304,7 +309,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("groupdel", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -328,12 +333,7 @@ int main (int argc, char **argv)
}
#endif /* USE_PAM */
if (argc != 2)
usage ();
group_name = argv[1];
OPENLOG (Prog);
OPENLOG ("groupdel");
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: groupmod.c,v 1.22 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: groupmod.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <stdio.h>
#include <grp.h>
@@ -339,7 +339,7 @@ static void check_new_name (void)
* All invalid group names land here.
*/
fprintf (stderr, _("%s: %s is a not a valid group name\n"),
fprintf (stderr, _("%s: %s is not a valid group name\n"),
Prog, group_newname);
exit (E_BAD_ARG);
}
@@ -490,6 +490,8 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
process_flags(argc, argv);
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -500,7 +502,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("groupmod", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -524,7 +526,7 @@ int main (int argc, char **argv)
}
#endif /* USE_PAM */
OPENLOG (Prog);
OPENLOG ("groupmod");
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();
@@ -541,7 +543,6 @@ int main (int argc, char **argv)
sg_dbm_mode = O_RDWR;
#endif /* SHADOWGRP */
#endif /* NDBM */
process_flags (argc, argv);
/*
* Start with a quick check to see if the group exists.

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: grpck.c,v 1.20 2002/01/05 15:41:43 kloczek Exp $")
RCSID (PKG_VER "$Id: grpck.c,v 1.21 2004/10/11 06:26:40 kloczek Exp $")
#include <stdio.h>
#include <fcntl.h>
#include <grp.h>
@@ -166,7 +166,7 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
OPENLOG (Prog);
OPENLOG ("grpck");
/*
* Parse the command line arguments

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: login.c,v 1.35 2003/12/17 12:52:25 kloczek Exp $")
RCSID (PKG_VER "$Id: login.c,v 1.37 2004/08/04 10:33:43 kloczek Exp $")
#include "prototypes.h"
#include "defines.h"
#include <sys/stat.h>
@@ -566,10 +566,10 @@ int main (int argc, char **argv)
else if (amroot)
memzero (utent.ut_host, sizeof utent.ut_host);
#endif
if (hflg && fflg) {
reason = PW_RLOGIN;
if (fflg)
preauth_flag++;
}
if (hflg)
reason = PW_RLOGIN;
#ifdef RLOGIN
if (rflg
&& do_rlogin (hostname, username, sizeof username,
@@ -785,6 +785,11 @@ int main (int argc, char **argv)
setpwent ();
pwd = getpwnam (pam_user);
if (fflg) {
retcode = pam_acct_mgmt(pamh, 0);
PAM_FAIL_CHECK;
}
if (!pwd || setup_groups (pwd))
exit (1);

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: logoutd.c,v 1.23 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: logoutd.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
@@ -184,7 +184,7 @@ int main (int argc, char **argv)
Prog = Basename (argv[0]);
OPENLOG (Prog);
OPENLOG ("logoutd");
/*
* Scan the utmpx/utmp file once per minute looking for users that

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: mkpasswd.c,v 1.9 2002/01/05 15:41:43 kloczek Exp $")
RCSID (PKG_VER "$Id: mkpasswd.c,v 1.10 2004/08/18 09:52:32 kloczek Exp $")
#include <sys/stat.h>
#include "prototypes.h"
#include "defines.h"
@@ -63,7 +63,6 @@ extern DBM *sp_dbm;
#ifdef SHADOWGRP
extern DBM *sg_dbm;
#endif
char *fgetsx ();
char *Progname;
int vflg = 0;

View File

@@ -36,7 +36,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: newusers.c,v 1.18 2003/12/17 01:33:29 kloczek Exp $")
RCSID (PKG_VER "$Id: newusers.c,v 1.19 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include "prototypes.h"
@@ -331,6 +331,9 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
if (argc > 1 && argv[1][0] == '-')
usage ();
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -341,7 +344,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("newusers", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -365,9 +368,6 @@ int main (int argc, char **argv)
}
#endif /* USE_PAM */
if (argc > 1 && argv[1][0] == '-')
usage ();
if (argc == 2) {
if (!freopen (argv[1], "r", stdin)) {
snprintf (buf, sizeof buf, "%s: %s", Prog,

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: pwck.c,v 1.23 2002/01/10 13:01:28 kloczek Exp $")
RCSID (PKG_VER "$Id: pwck.c,v 1.24 2004/10/11 06:26:40 kloczek Exp $")
#include <stdio.h>
#include <fcntl.h>
#include <grp.h>
@@ -148,7 +148,7 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
OPENLOG (Prog);
OPENLOG ("pwsk");
/*
* Parse the command line arguments

160
src/su.c
View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: su.c,v 1.26 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: su.c,v 1.27 2004/10/23 23:19:07 kloczek Exp $")
#include <sys/types.h>
#include <stdio.h>
#ifdef USE_PAM
@@ -134,6 +134,112 @@ static void su_failure (const char *tty)
exit (1);
}
#ifdef USE_PAM
static int caught = 0;
/* Signal handler for parent process later */
static void su_catch_sig (int sig)
{
++caught;
}
/* This I ripped out of su.c from sh-utils after the Mandrake pam patch
* have been applied. Some work was needed to get it integrated into
* su.c from shadow.
*/
static void run_shell (const char *shellstr, char *args[], int doshell)
{
int child;
sigset_t ourset;
int status;
int ret;
child = fork ();
if (child == 0) { /* child shell */
pam_end (pamh, PAM_SUCCESS);
if (doshell)
shell (shellstr, (char *) args[0]);
else
(void) execv (shellstr, (char **) args);
{
int exit_status = (errno == ENOENT ? 127 : 126);
exit (exit_status);
}
} else if (child == -1) {
(void) fprintf (stderr, "%s: Cannot fork user shell\n",
Prog);
SYSLOG ((LOG_WARN, "Cannot execute %s", pwent.pw_shell));
closelog ();
exit (1);
}
/* parent only */
sigfillset (&ourset);
if (sigprocmask (SIG_BLOCK, &ourset, NULL)) {
(void) fprintf (stderr, "%s: signal malfunction\n", Prog);
caught = 1;
}
if (!caught) {
struct sigaction action;
action.sa_handler = su_catch_sig;
sigemptyset (&action.sa_mask);
action.sa_flags = 0;
sigemptyset (&ourset);
if (sigaddset (&ourset, SIGTERM)
|| sigaddset (&ourset, SIGALRM)
|| sigaction (SIGTERM, &action, NULL)
|| sigprocmask (SIG_UNBLOCK, &ourset, NULL)
) {
fprintf (stderr,
"%s: signal masking malfunction\n", Prog);
caught = 1;
}
}
if (!caught) {
do {
int pid;
pid = waitpid (-1, &status, WUNTRACED);
if (WIFSTOPPED (status)) {
kill (getpid (), SIGSTOP);
/* once we get here, we must have resumed */
kill (pid, SIGCONT);
}
} while (WIFSTOPPED (status));
}
if (caught) {
fprintf (stderr, "\nSession terminated, killing shell...");
kill (child, SIGTERM);
}
ret = pam_close_session (pamh, 0);
if (ret != PAM_SUCCESS) {
SYSLOG ((LOG_ERR, "pam_close_session: %s",
pam_strerror (pamh, ret)));
fprintf (stderr, "%s: %s\n", Prog,
pam_strerror (pamh, ret));
pam_end (pamh, ret);
exit (1);
}
ret = pam_end (pamh, PAM_SUCCESS);
if (caught) {
sleep (2);
kill (child, SIGKILL);
fprintf (stderr, " ...killed.\n");
exit (-1);
}
exit (WEXITSTATUS (status));
}
#endif
/*
* su - switch user id
@@ -152,6 +258,7 @@ static void su_failure (const char *tty)
int main (int argc, char **argv)
{
char *cp;
char **envcp;
const char *tty = 0; /* Name of tty SU is run from */
int doshell = 0;
int fakelogin = 0;
@@ -252,6 +359,16 @@ int main (int argc, char **argv)
*/
if ((cp = getenv ("TERM")))
addenv ("TERM", cp);
#ifndef USE_PAM
/*
* Also leave DISPLAY and XAUTHORITY if present, else
* pam_xauth will not work.
*/
if ((cp = getenv ("DISPLAY")))
addenv ("DISPLAY", cp);
if ((cp = getenv ("XAUTHORITY")))
addenv ("XAUTHORITY", cp);
#endif /* !USE_PAM */
} else {
while (*envp)
addenv (*envp++, NULL);
@@ -496,7 +613,10 @@ int main (int argc, char **argv)
addenv ("PATH", cp);
}
/* setup the environment for pam later on, else we run into auth problems */
#ifndef USE_PAM
environ = newenvp; /* make new environment active */
#endif
if (getenv ("IFS")) /* don't export user IFS ... */
addenv ("IFS= \t\n", NULL); /* ... instead, set a safe IFS */
@@ -544,16 +664,37 @@ int main (int argc, char **argv)
exit (1);
}
ret = pam_open_session (pamh, 0);
if (ret != PAM_SUCCESS) {
SYSLOG ((LOG_ERR, "pam_open_session: %s",
pam_strerror (pamh, ret)));
fprintf (stderr, "%s: %s\n", Prog,
pam_strerror (pamh, ret));
pam_end (pamh, ret);
exit (1);
}
/* we need to setup the environment *after* pam_open_session(),
* else the UID is changed before stuff like pam_xauth could
* run, and we cannot access /etc/shadow and co
*/
environ = newenvp; /* make new environment active */
/* update environment with all pam set variables */
envcp = pam_getenvlist (pamh);
if (envcp) {
while (*envcp) {
putenv (*envcp);
envcp++;
}
}
/* become the new user */
if (change_uid (&pwent)) {
pam_setcred (pamh, PAM_DELETE_CRED);
pam_end (pamh, PAM_ABORT);
exit (1);
}
/* now we are done using PAM */
pam_end (pamh, PAM_SUCCESS);
#else /* !USE_PAM */
if (!amroot) /* no limits if su from root */
setup_limits (&pwent);
@@ -605,14 +746,21 @@ int main (int argc, char **argv)
*/
argv[-1] = pwent.pw_shell;
#ifndef USE_PAM
(void) execv (pwent.pw_shell, &argv[-1]);
#else
run_shell (pwent.pw_shell, &argv[-1], 0);
#endif
(void) fprintf (stderr, _("No shell\n"));
SYSLOG ((LOG_WARN, "Cannot execute %s", pwent.pw_shell));
closelog ();
exit (1);
}
#ifndef USE_PAM
shell (pwent.pw_shell, cp);
#else
run_shell (pwent.pw_shell, &cp, 1);
#endif
/* NOT REACHED */
exit (1);
}

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: useradd.c,v 1.46.2.2 2004/01/14 06:41:06 kloczek Exp $")
RCSID (PKG_VER "$Id: useradd.c,v 1.49 2004/10/24 14:17:21 ankry Exp $")
#include "prototypes.h"
#include "defines.h"
#include "chkname.h"
@@ -77,6 +77,7 @@ static const char *def_gname = "other";
static const char *def_home = "/home";
static const char *def_shell = "";
static const char *def_template = SKEL_DIR;
static const char *def_create_mail_spool = "no";
#ifdef SHADOWPWD
static long def_inactive = -1;
@@ -94,6 +95,7 @@ static gid_t user_gid;
static const char *user_comment = "";
static const char *user_home = "";
static const char *user_shell = "";
static const char *create_mail_spool = "";
#ifdef SHADOWPWD
static long user_expire = -1;
@@ -181,6 +183,7 @@ static int sg_dbm_added;
#define E_NAME_IN_USE 9 /* username already in use */
#define E_GRP_UPDATE 10 /* can't update group file */
#define E_HOMEDIR 12 /* can't create home directory */
#define E_MAIL_SPOOL 13 /* can't create mail spool */
#define DGROUP "GROUP="
#define HOME "HOME="
@@ -188,6 +191,7 @@ static int sg_dbm_added;
#define INACT "INACTIVE="
#define EXPIRE "EXPIRE="
#define SKEL "SKEL="
#define CREATE_MAIL_SPOOL "CREATE_MAIL_SPOOL="
/* local function prototypes */
static void fail_exit (int);
@@ -215,6 +219,7 @@ static void faillog_reset (uid_t);
static void lastlog_reset (uid_t);
static void usr_update (void);
static void create_home (void);
static void create_mail (void);
/*
* fail_exit - undo as much as possible
@@ -403,6 +408,16 @@ static void get_defaults (void)
def_template = xstrdup (cp);
}
/*
* Create by default user mail spoll or not ?
*/
else if (MATCH (buf, CREATE_MAIL_SPOOL)) {
if (*cp == '\0')
cp = CREATE_MAIL_SPOOL; /* XXX warning: const */
def_create_mail_spool = xstrdup (cp);
}
}
}
@@ -424,6 +439,7 @@ static void show_defaults (void)
#endif
printf (_("SHELL=%s\n"), def_shell);
printf (_("SKEL=%s\n"), def_template);
printf (_("CREATE_MAIL_SPOOL=%s\n"), def_create_mail_spool);
}
/*
@@ -448,16 +464,13 @@ static int set_defaults (void)
int out_expire = 0;
int out_shell = 0;
int out_skel = 0;
int out_create_mail_spool = 0;
/*
* Create a temporary file to copy the new output to.
*/
#ifdef HAVE_MKSTEMP
if ((ofd = mkstemp (new_file)) == -1) {
#else
if ((ofd = mktemp (new_file)) == -1) {
#endif
fprintf (stderr,
_("%s: cannot create new defaults file\n"), Prog);
return -1;
@@ -505,6 +518,11 @@ static int set_defaults (void)
} else if (!out_skel && MATCH (buf, SKEL)) {
fprintf (ofp, SKEL "%s\n", def_template);
out_skel++;
} else if (!out_create_mail_spool
&& MATCH (buf, CREATE_MAIL_SPOOL)) {
fprintf (ofp, CREATE_MAIL_SPOOL "%s\n",
def_create_mail_spool);
out_create_mail_spool++;
} else
fprintf (ofp, "%s\n", buf);
}
@@ -532,6 +550,10 @@ static int set_defaults (void)
if (!out_skel)
fprintf (ofp, SKEL "%s\n", def_template);
if (!out_create_mail_spool)
fprintf (ofp, CREATE_MAIL_SPOOL "%s\n",
def_create_mail_spool);
/*
* Flush and close the file. Check for errors to make certain
* the new file is intact.
@@ -569,15 +591,16 @@ static int set_defaults (void)
#ifdef SHADOWPWD
SYSLOG ((LOG_INFO,
"useradd defaults: GROUP=%u, HOME=%s, SHELL=%s, INACTIVE=%ld, "
"EXPIRE=%s, SKEL=%s",
"EXPIRE=%s, SKEL=%s, CREATE_MAIL_SPOOL=%s",
(unsigned int) def_group, def_home, def_shell,
def_inactive, def_expire, def_template));
def_inactive, def_expire, def_template,
def_create_mail_spool));
#else
SYSLOG ((LOG_INFO,
"useradd defaults: GROUP=%u, HOME=%s, SHELL=%s, "
"SKEL=%s",
"SKEL=%s, CREATE_MAIL_SPOOL=%s",
(unsigned int) def_group, def_home, def_shell,
def_template));
def_template, def_create_mail_spool));
#endif
return 0;
}
@@ -702,6 +725,7 @@ static void usage (void)
#ifdef SHADOWPWD
fprintf (stderr, _(" [-f inactive] [-e expire]\n"));
#endif
fprintf (stderr, _(" [-p passwd] name\n"));
fprintf (stderr,
_(" useradd -D [-g group] [-b base] [-s shell]\n"));
#ifdef SHADOWPWD
@@ -1520,6 +1544,58 @@ static void create_home (void)
}
}
/*
* create_mail - create the user's mail spool
*
* create_mail() creates the user's mail spool if it does not already
* exist. It will be created mode 660 owned by the user and group
* 'mail'
*/
static void create_mail (void)
{
char *ms;
int fd;
struct group *mail;
gid_t mail_gid;
mode_t mode;
if (strcasecmp (create_mail_spool, "yes") == 0) {
mail = getgrnam ("mail");
if (mail == NULL) {
fprintf (stderr,
_
("No group named \"mail\" exists, creating mail spool with mode 0600.\n"));
mode = 0600;
mail_gid = user_gid;
} else {
mode = 0660;
mail_gid = mail->gr_gid;
}
ms = malloc (strlen (user_name) + 11);
if (ms != NULL) {
sprintf (ms, "/var/mail/%s", user_name);
if (access (ms, R_OK) != 0) {
fd = open (ms,
O_CREAT | O_EXCL | O_WRONLY |
O_TRUNC);
if (fd != -1) {
fchown (fd, user_id, mail_gid);
fchmod (fd, mode);
close (fd);
}
} else {
fprintf (stderr,
_
("Can't create mail spool for user %s.\n"),
user_name);
fail_exit (E_MAIL_SPOOL);
}
}
free (ms);
}
}
#ifdef USE_PAM
static struct pam_conv conv = {
misc_conv,
@@ -1538,19 +1614,33 @@ int main (int argc, char **argv)
struct passwd *pampw;
int retval;
#endif
/*
* Get my name so that I can use it to report errors.
*/
sys_ngroups = sysconf (_SC_NGROUPS_MAX);
user_groups = malloc ((1 + sys_ngroups) * sizeof (char *));
user_groups[0] = (char *) 0;
Prog = Basename (argv[0]);
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
OPENLOG("useradd");
sys_ngroups = sysconf(_SC_NGROUPS_MAX);
user_groups = malloc((1 + sys_ngroups) * sizeof(char *));
#ifdef SHADOWPWD
is_shadow_pwd = spw_file_present();
#endif
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present();
#endif
get_defaults();
process_flags(argc, argv);
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -1583,17 +1673,10 @@ int main (int argc, char **argv)
Prog);
exit (1);
}
OPENLOG("useradd");
#endif /* USE_PAM */
OPENLOG (Prog);
#ifdef SHADOWPWD
is_shadow_pwd = spw_file_present ();
#endif
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();
#endif
/*
* The open routines for the NDBM files don't use read-write
* as the mode, so we have to clue them in.
@@ -1609,9 +1692,6 @@ int main (int argc, char **argv)
sg_dbm_mode = O_RDWR;
#endif
#endif
get_defaults ();
process_flags (argc, argv);
/*
* See if we are messing with the defaults file, or creating
@@ -1688,6 +1768,8 @@ int main (int argc, char **argv)
Prog);
}
create_mail ();
nscd_flush_cache ("passwd");
nscd_flush_cache ("group");

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: userdel.c,v 1.29 2003/12/17 09:43:30 kloczek Exp $")
RCSID (PKG_VER "$Id: userdel.c,v 1.31 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
@@ -629,6 +629,23 @@ int main (int argc, char **argv)
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
while ((arg = getopt (argc, argv, "fr")) != EOF) {
switch (arg) {
case 'f': /* force remove even if not owned by user */
fflg++;
break;
case 'r': /* remove home dir and mailbox */
rflg++;
break;
default:
usage ();
}
}
if (optind + 1 != argc)
usage ();
#ifdef USE_PAM
retval = PAM_SUCCESS;
pampw = getpwuid (getuid ());
@@ -637,7 +654,7 @@ int main (int argc, char **argv)
}
if (retval == PAM_SUCCESS)
retval = pam_start ("shadow", pampw->pw_name, &conv,
retval = pam_start ("userdel", pampw->pw_name, &conv,
&pamh);
if (retval == PAM_SUCCESS) {
@@ -655,11 +672,12 @@ int main (int argc, char **argv)
if (retval != PAM_SUCCESS) {
fprintf (stderr,
_("%s: PAM authentication failed\n"), Prog);
exit (1);
exit (E_PW_UPDATE);
}
#endif /* USE_PAM */
OPENLOG (Prog);
OPENLOG ("userdel");
#ifdef SHADOWPWD
is_shadow_pwd = spw_file_present ();
#endif
@@ -680,21 +698,6 @@ int main (int argc, char **argv)
sg_dbm_mode = O_RDWR;
#endif
#endif
while ((arg = getopt (argc, argv, "fr")) != EOF) {
switch (arg) {
case 'f': /* force remove even if not owned by user */
fflg++;
break;
case 'r': /* remove home dir and mailbox */
rflg++;
break;
default:
usage ();
}
}
if (optind + 1 != argc)
usage ();
/*
* Start with a quick check to see if the user exists.
*/
@@ -810,9 +813,10 @@ int main (int argc, char **argv)
pam_end (pamh, retval);
}
if (retval != PAM_SUCCESS)
if (retval != PAM_SUCCESS) {
fprintf (stderr, _("%s: PAM chauthtok failed\n"), Prog);
exit (1);
exit (E_PW_UPDATE);
}
if (retval == PAM_SUCCESS)
pam_end (pamh, PAM_SUCCESS);

View File

@@ -30,7 +30,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: usermod.c,v 1.31 2003/06/30 13:17:51 kloczek Exp $")
RCSID (PKG_VER "$Id: usermod.c,v 1.32 2004/10/11 06:26:40 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
@@ -1370,9 +1370,6 @@ int main (int argc, char **argv)
int retval;
#endif
sys_ngroups = sysconf (_SC_NGROUPS_MAX);
user_groups = malloc ((1 + sys_ngroups) * sizeof (char *));
user_groups[0] = (char *) 0;
/*
* Get my name so that I can use it to report errors.
*/
@@ -1382,6 +1379,21 @@ int main (int argc, char **argv)
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
sys_ngroups = sysconf (_SC_NGROUPS_MAX);
user_groups = malloc ((1 + sys_ngroups) * sizeof (char *));
user_groups[0] = (char *) 0;
OPENLOG("usermod");
#ifdef SHADOWPWD
is_shadow_pwd = spw_file_present ();
#endif
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();
#endif
process_flags (argc, argv);
#ifdef USE_PAM
retval = PAM_SUCCESS;
@@ -1392,7 +1404,7 @@ int main (int argc, char **argv)
if (retval == PAM_SUCCESS) {
retval =
pam_start ("shadow", pampw->pw_name, &conv, &pamh);
pam_start ("usermod", pampw->pw_name, &conv, &pamh);
}
if (retval == PAM_SUCCESS) {
@@ -1414,17 +1426,10 @@ int main (int argc, char **argv)
Prog);
exit (1);
}
OPENLOG ("usermod");
#endif /* USE_PAM */
OPENLOG (Prog);
#ifdef SHADOWPWD
is_shadow_pwd = spw_file_present ();
#endif
#ifdef SHADOWGRP
is_shadow_grp = sgr_file_present ();
#endif
/*
* The open routines for the NDBM files don't use read-write as the
* mode, so we have to clue them in.
@@ -1440,7 +1445,6 @@ int main (int argc, char **argv)
sg_dbm_mode = O_RDWR;
#endif
#endif /* NDBM */
process_flags (argc, argv);
/*
* Do the hard stuff - open the files, change the user entries,

View File

@@ -23,7 +23,7 @@
#include <config.h>
#include "rcsid.h"
RCSID (PKG_VER "$Id: vipw.c,v 1.6 2003/06/19 18:11:01 kloczek Exp $")
RCSID (PKG_VER "$Id: vipw.c,v 1.7 2004/06/03 00:27:19 kloczek Exp $")
#include "defines.h"
#include <errno.h>
#include <sys/stat.h>
@@ -62,13 +62,13 @@ create_backup_file (FILE * fp, const char *backup, struct stat *sb)
if (!bkfp)
return -1;
rewind (fp);
while ((c = getc (fp)) != EOF) {
if (putc (c, bkfp) == EOF)
break;
}
if (c != EOF || fflush (bkfp)) {
c = 0;
if (fseek(fp, 0, SEEK_SET) == 0)
while ((c = getc(fp)) != EOF) {
if (putc(c, bkfp) == EOF)
break;
}
if (c != EOF || ferror(fp) || fflush(bkfp)) {
fclose (bkfp);
unlink (backup);
return -1;