diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.in | 132 | ||||
-rw-r--r-- | src/grpunconv.c | 10 | ||||
-rw-r--r-- | src/login.c | 10 | ||||
-rw-r--r-- | src/passwd.c | 8 | ||||
-rw-r--r-- | src/pwconv.c | 4 | ||||
-rw-r--r-- | src/pwunconv.c | 12 | ||||
-rw-r--r-- | src/su.c | 7 | ||||
-rw-r--r-- | src/useradd.c | 14 | ||||
-rw-r--r-- | src/userdel.c | 16 |
9 files changed, 122 insertions, 91 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index 9ac0af3..3b5387b 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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. @@ -16,6 +16,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -238,6 +255,11 @@ DIST_SOURCES = chage.c chfn.c chgpasswd.c chpasswd.c chsh.c expiry.c \ lastlog.c $(login_SOURCES) logoutd.c newgrp.c newusers.c \ nologin.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) \ sulogin.c useradd.c userdel.c usermod.c vipw.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -256,6 +278,7 @@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -301,6 +324,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -325,7 +349,6 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ @@ -340,6 +363,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -372,7 +396,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -483,8 +506,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -535,8 +561,11 @@ clean-noinstPROGRAMS: rm -f $$list install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -578,8 +607,11 @@ clean-sbinPROGRAMS: rm -f $$list install-ubinPROGRAMS: $(ubin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(ubindir)" || $(MKDIR_P) "$(DESTDIR)$(ubindir)" @list='$(ubin_PROGRAMS)'; test -n "$(ubindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(ubindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(ubindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -621,8 +653,11 @@ clean-ubinPROGRAMS: rm -f $$list install-usbinPROGRAMS: $(usbin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(usbindir)" || $(MKDIR_P) "$(DESTDIR)$(usbindir)" @list='$(usbin_PROGRAMS)'; test -n "$(usbindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(usbindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(usbindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -662,103 +697,103 @@ clean-usbinPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -chage$(EXEEXT): $(chage_OBJECTS) $(chage_DEPENDENCIES) +chage$(EXEEXT): $(chage_OBJECTS) $(chage_DEPENDENCIES) $(EXTRA_chage_DEPENDENCIES) @rm -f chage$(EXEEXT) $(LINK) $(chage_OBJECTS) $(chage_LDADD) $(LIBS) -chfn$(EXEEXT): $(chfn_OBJECTS) $(chfn_DEPENDENCIES) +chfn$(EXEEXT): $(chfn_OBJECTS) $(chfn_DEPENDENCIES) $(EXTRA_chfn_DEPENDENCIES) @rm -f chfn$(EXEEXT) $(LINK) $(chfn_OBJECTS) $(chfn_LDADD) $(LIBS) -chgpasswd$(EXEEXT): $(chgpasswd_OBJECTS) $(chgpasswd_DEPENDENCIES) +chgpasswd$(EXEEXT): $(chgpasswd_OBJECTS) $(chgpasswd_DEPENDENCIES) $(EXTRA_chgpasswd_DEPENDENCIES) @rm -f chgpasswd$(EXEEXT) $(LINK) $(chgpasswd_OBJECTS) $(chgpasswd_LDADD) $(LIBS) -chpasswd$(EXEEXT): $(chpasswd_OBJECTS) $(chpasswd_DEPENDENCIES) +chpasswd$(EXEEXT): $(chpasswd_OBJECTS) $(chpasswd_DEPENDENCIES) $(EXTRA_chpasswd_DEPENDENCIES) @rm -f chpasswd$(EXEEXT) $(LINK) $(chpasswd_OBJECTS) $(chpasswd_LDADD) $(LIBS) -chsh$(EXEEXT): $(chsh_OBJECTS) $(chsh_DEPENDENCIES) +chsh$(EXEEXT): $(chsh_OBJECTS) $(chsh_DEPENDENCIES) $(EXTRA_chsh_DEPENDENCIES) @rm -f chsh$(EXEEXT) $(LINK) $(chsh_OBJECTS) $(chsh_LDADD) $(LIBS) -expiry$(EXEEXT): $(expiry_OBJECTS) $(expiry_DEPENDENCIES) +expiry$(EXEEXT): $(expiry_OBJECTS) $(expiry_DEPENDENCIES) $(EXTRA_expiry_DEPENDENCIES) @rm -f expiry$(EXEEXT) $(LINK) $(expiry_OBJECTS) $(expiry_LDADD) $(LIBS) -faillog$(EXEEXT): $(faillog_OBJECTS) $(faillog_DEPENDENCIES) +faillog$(EXEEXT): $(faillog_OBJECTS) $(faillog_DEPENDENCIES) $(EXTRA_faillog_DEPENDENCIES) @rm -f faillog$(EXEEXT) $(LINK) $(faillog_OBJECTS) $(faillog_LDADD) $(LIBS) -gpasswd$(EXEEXT): $(gpasswd_OBJECTS) $(gpasswd_DEPENDENCIES) +gpasswd$(EXEEXT): $(gpasswd_OBJECTS) $(gpasswd_DEPENDENCIES) $(EXTRA_gpasswd_DEPENDENCIES) @rm -f gpasswd$(EXEEXT) $(LINK) $(gpasswd_OBJECTS) $(gpasswd_LDADD) $(LIBS) -groupadd$(EXEEXT): $(groupadd_OBJECTS) $(groupadd_DEPENDENCIES) +groupadd$(EXEEXT): $(groupadd_OBJECTS) $(groupadd_DEPENDENCIES) $(EXTRA_groupadd_DEPENDENCIES) @rm -f groupadd$(EXEEXT) $(LINK) $(groupadd_OBJECTS) $(groupadd_LDADD) $(LIBS) -groupdel$(EXEEXT): $(groupdel_OBJECTS) $(groupdel_DEPENDENCIES) +groupdel$(EXEEXT): $(groupdel_OBJECTS) $(groupdel_DEPENDENCIES) $(EXTRA_groupdel_DEPENDENCIES) @rm -f groupdel$(EXEEXT) $(LINK) $(groupdel_OBJECTS) $(groupdel_LDADD) $(LIBS) -groupmems$(EXEEXT): $(groupmems_OBJECTS) $(groupmems_DEPENDENCIES) +groupmems$(EXEEXT): $(groupmems_OBJECTS) $(groupmems_DEPENDENCIES) $(EXTRA_groupmems_DEPENDENCIES) @rm -f groupmems$(EXEEXT) $(LINK) $(groupmems_OBJECTS) $(groupmems_LDADD) $(LIBS) -groupmod$(EXEEXT): $(groupmod_OBJECTS) $(groupmod_DEPENDENCIES) +groupmod$(EXEEXT): $(groupmod_OBJECTS) $(groupmod_DEPENDENCIES) $(EXTRA_groupmod_DEPENDENCIES) @rm -f groupmod$(EXEEXT) $(LINK) $(groupmod_OBJECTS) $(groupmod_LDADD) $(LIBS) -groups$(EXEEXT): $(groups_OBJECTS) $(groups_DEPENDENCIES) +groups$(EXEEXT): $(groups_OBJECTS) $(groups_DEPENDENCIES) $(EXTRA_groups_DEPENDENCIES) @rm -f groups$(EXEEXT) $(LINK) $(groups_OBJECTS) $(groups_LDADD) $(LIBS) -grpck$(EXEEXT): $(grpck_OBJECTS) $(grpck_DEPENDENCIES) +grpck$(EXEEXT): $(grpck_OBJECTS) $(grpck_DEPENDENCIES) $(EXTRA_grpck_DEPENDENCIES) @rm -f grpck$(EXEEXT) $(LINK) $(grpck_OBJECTS) $(grpck_LDADD) $(LIBS) -grpconv$(EXEEXT): $(grpconv_OBJECTS) $(grpconv_DEPENDENCIES) +grpconv$(EXEEXT): $(grpconv_OBJECTS) $(grpconv_DEPENDENCIES) $(EXTRA_grpconv_DEPENDENCIES) @rm -f grpconv$(EXEEXT) $(LINK) $(grpconv_OBJECTS) $(grpconv_LDADD) $(LIBS) -grpunconv$(EXEEXT): $(grpunconv_OBJECTS) $(grpunconv_DEPENDENCIES) +grpunconv$(EXEEXT): $(grpunconv_OBJECTS) $(grpunconv_DEPENDENCIES) $(EXTRA_grpunconv_DEPENDENCIES) @rm -f grpunconv$(EXEEXT) $(LINK) $(grpunconv_OBJECTS) $(grpunconv_LDADD) $(LIBS) -id$(EXEEXT): $(id_OBJECTS) $(id_DEPENDENCIES) +id$(EXEEXT): $(id_OBJECTS) $(id_DEPENDENCIES) $(EXTRA_id_DEPENDENCIES) @rm -f id$(EXEEXT) $(LINK) $(id_OBJECTS) $(id_LDADD) $(LIBS) -lastlog$(EXEEXT): $(lastlog_OBJECTS) $(lastlog_DEPENDENCIES) +lastlog$(EXEEXT): $(lastlog_OBJECTS) $(lastlog_DEPENDENCIES) $(EXTRA_lastlog_DEPENDENCIES) @rm -f lastlog$(EXEEXT) $(LINK) $(lastlog_OBJECTS) $(lastlog_LDADD) $(LIBS) -login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES) +login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES) $(EXTRA_login_DEPENDENCIES) @rm -f login$(EXEEXT) $(LINK) $(login_OBJECTS) $(login_LDADD) $(LIBS) -logoutd$(EXEEXT): $(logoutd_OBJECTS) $(logoutd_DEPENDENCIES) +logoutd$(EXEEXT): $(logoutd_OBJECTS) $(logoutd_DEPENDENCIES) $(EXTRA_logoutd_DEPENDENCIES) @rm -f logoutd$(EXEEXT) $(LINK) $(logoutd_OBJECTS) $(logoutd_LDADD) $(LIBS) -newgrp$(EXEEXT): $(newgrp_OBJECTS) $(newgrp_DEPENDENCIES) +newgrp$(EXEEXT): $(newgrp_OBJECTS) $(newgrp_DEPENDENCIES) $(EXTRA_newgrp_DEPENDENCIES) @rm -f newgrp$(EXEEXT) $(LINK) $(newgrp_OBJECTS) $(newgrp_LDADD) $(LIBS) -newusers$(EXEEXT): $(newusers_OBJECTS) $(newusers_DEPENDENCIES) +newusers$(EXEEXT): $(newusers_OBJECTS) $(newusers_DEPENDENCIES) $(EXTRA_newusers_DEPENDENCIES) @rm -f newusers$(EXEEXT) $(LINK) $(newusers_OBJECTS) $(newusers_LDADD) $(LIBS) -nologin$(EXEEXT): $(nologin_OBJECTS) $(nologin_DEPENDENCIES) +nologin$(EXEEXT): $(nologin_OBJECTS) $(nologin_DEPENDENCIES) $(EXTRA_nologin_DEPENDENCIES) @rm -f nologin$(EXEEXT) $(LINK) $(nologin_OBJECTS) $(nologin_LDADD) $(LIBS) -passwd$(EXEEXT): $(passwd_OBJECTS) $(passwd_DEPENDENCIES) +passwd$(EXEEXT): $(passwd_OBJECTS) $(passwd_DEPENDENCIES) $(EXTRA_passwd_DEPENDENCIES) @rm -f passwd$(EXEEXT) $(LINK) $(passwd_OBJECTS) $(passwd_LDADD) $(LIBS) -pwck$(EXEEXT): $(pwck_OBJECTS) $(pwck_DEPENDENCIES) +pwck$(EXEEXT): $(pwck_OBJECTS) $(pwck_DEPENDENCIES) $(EXTRA_pwck_DEPENDENCIES) @rm -f pwck$(EXEEXT) $(LINK) $(pwck_OBJECTS) $(pwck_LDADD) $(LIBS) -pwconv$(EXEEXT): $(pwconv_OBJECTS) $(pwconv_DEPENDENCIES) +pwconv$(EXEEXT): $(pwconv_OBJECTS) $(pwconv_DEPENDENCIES) $(EXTRA_pwconv_DEPENDENCIES) @rm -f pwconv$(EXEEXT) $(LINK) $(pwconv_OBJECTS) $(pwconv_LDADD) $(LIBS) -pwunconv$(EXEEXT): $(pwunconv_OBJECTS) $(pwunconv_DEPENDENCIES) +pwunconv$(EXEEXT): $(pwunconv_OBJECTS) $(pwunconv_DEPENDENCIES) $(EXTRA_pwunconv_DEPENDENCIES) @rm -f pwunconv$(EXEEXT) $(LINK) $(pwunconv_OBJECTS) $(pwunconv_LDADD) $(LIBS) -su$(EXEEXT): $(su_OBJECTS) $(su_DEPENDENCIES) +su$(EXEEXT): $(su_OBJECTS) $(su_DEPENDENCIES) $(EXTRA_su_DEPENDENCIES) @rm -f su$(EXEEXT) $(LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS) -sulogin$(EXEEXT): $(sulogin_OBJECTS) $(sulogin_DEPENDENCIES) +sulogin$(EXEEXT): $(sulogin_OBJECTS) $(sulogin_DEPENDENCIES) $(EXTRA_sulogin_DEPENDENCIES) @rm -f sulogin$(EXEEXT) $(LINK) $(sulogin_OBJECTS) $(sulogin_LDADD) $(LIBS) -useradd$(EXEEXT): $(useradd_OBJECTS) $(useradd_DEPENDENCIES) +useradd$(EXEEXT): $(useradd_OBJECTS) $(useradd_DEPENDENCIES) $(EXTRA_useradd_DEPENDENCIES) @rm -f useradd$(EXEEXT) $(LINK) $(useradd_OBJECTS) $(useradd_LDADD) $(LIBS) -userdel$(EXEEXT): $(userdel_OBJECTS) $(userdel_DEPENDENCIES) +userdel$(EXEEXT): $(userdel_OBJECTS) $(userdel_DEPENDENCIES) $(EXTRA_userdel_DEPENDENCIES) @rm -f userdel$(EXEEXT) $(LINK) $(userdel_OBJECTS) $(userdel_LDADD) $(LIBS) -usermod$(EXEEXT): $(usermod_OBJECTS) $(usermod_DEPENDENCIES) +usermod$(EXEEXT): $(usermod_OBJECTS) $(usermod_DEPENDENCIES) $(EXTRA_usermod_DEPENDENCIES) @rm -f usermod$(EXEEXT) $(LINK) $(usermod_OBJECTS) $(usermod_LDADD) $(LIBS) -vipw$(EXEEXT): $(vipw_OBJECTS) $(vipw_DEPENDENCIES) +vipw$(EXEEXT): $(vipw_OBJECTS) $(vipw_DEPENDENCIES) $(EXTRA_vipw_DEPENDENCIES) @rm -f vipw$(EXEEXT) $(LINK) $(vipw_OBJECTS) $(vipw_LDADD) $(LIBS) @@ -927,10 +962,15 @@ uninstall: uninstall-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/src/grpunconv.c b/src/grpunconv.c index 829f4c8..416b6a5 100644 --- a/src/grpunconv.c +++ b/src/grpunconv.c @@ -37,7 +37,7 @@ #include <config.h> -#ident "$Id: grpunconv.c 3640 2011-11-19 21:51:52Z nekral-guest $" +#ident "$Id: grpunconv.c 3726 2012-05-18 19:32:32Z nekral-guest $" #include <stdio.h> #include <stdlib.h> @@ -205,13 +205,7 @@ int main (int argc, char **argv) } } - if (sgr_close () == 0) { - fprintf (stderr, - _("%s: failure while writing changes to %s\n"), - Prog, sgr_dbname ()); - SYSLOG ((LOG_ERR, "failure while writing changes to %s", sgr_dbname ())); - fail_exit (3); - } + (void) sgr_close (); /* was only open O_RDONLY */ if (gr_close () == 0) { fprintf (stderr, diff --git a/src/login.c b/src/login.c index fe628de..2e5f65e 100644 --- a/src/login.c +++ b/src/login.c @@ -2,7 +2,7 @@ * Copyright (c) 1989 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2001, Marek Michałkiewicz * Copyright (c) 2001 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2011, Nicolas François + * Copyright (c) 2007 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: login.c 3549 2011-11-06 18:38:51Z nekral-guest $" +#ident "$Id: login.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <errno.h> #include <grp.h> @@ -126,12 +126,10 @@ static void usage (void); static void setup_tty (void); static void process_flags (int argc, char *const *argv); static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *user); -#ifndef USE_PAM static void update_utmp (const char *user, const char *tty, const char *host, /*@null@*/const struct utmp *utent); -#endif /* ! USE_PAM */ #ifndef USE_PAM static struct faillog faillog; @@ -473,7 +471,6 @@ static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *use return failent_user; } -#ifndef USE_PAM /* * update_utmp - Update or create an utmp entry in utmp, wtmp, utmpw, and * wtmpx @@ -499,7 +496,6 @@ static void update_utmp (const char *user, free (utx); #endif /* USE_UTMPX */ } -#endif /* ! USE_PAM */ /* * login - create a new login session for a user @@ -1215,13 +1211,11 @@ int main (int argc, char **argv) } } -#ifndef USE_PAM /* * The utmp entry needs to be updated to indicate the new status * of the session, the new PID and SID. */ update_utmp (username, tty, hostname, utent); -#endif /* ! USE_PAM */ /* The pwd and spwd entries for the user have been copied. * diff --git a/src/passwd.c b/src/passwd.c index 37b898d..8e566a2 100644 --- a/src/passwd.c +++ b/src/passwd.c @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: passwd.c 3643 2011-11-19 22:00:00Z nekral-guest $" +#ident "$Id: passwd.c 3710 2012-02-13 20:32:00Z nekral-guest $" #include <errno.h> #include <fcntl.h> @@ -1057,6 +1057,12 @@ int main (int argc, char **argv) */ sp = getspnam (name); /* !USE_PAM, no need for xgetspnam */ if (NULL == sp) { + if (errno == EACCES) { + (void) fprintf (stderr, + _("%s: Permission denied.\n"), + Prog); + exit (E_NOPERM); + } sp = pwd_to_spwd (pw); } diff --git a/src/pwconv.c b/src/pwconv.c index 0bbca10..3f059e4 100644 --- a/src/pwconv.c +++ b/src/pwconv.c @@ -1,7 +1,7 @@ /* * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2002 - 2006, Tomasz Kłoczko - * Copyright (c) 2009 - 2011, Nicolas François + * Copyright (c) 2009 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,7 @@ #include <config.h> -#ident "$Id: pwconv.c 3640 2011-11-19 21:51:52Z nekral-guest $" +#ident "$Id: pwconv.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <errno.h> #include <fcntl.h> diff --git a/src/pwunconv.c b/src/pwunconv.c index 3d24c2f..a706d60 100644 --- a/src/pwunconv.c +++ b/src/pwunconv.c @@ -2,7 +2,7 @@ * Copyright (c) 1989 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2001 - 2005, Tomasz Kłoczko - * Copyright (c) 2008 - 2011, Nicolas François + * Copyright (c) 2008 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: pwunconv.c 3640 2011-11-19 21:51:52Z nekral-guest $" +#ident "$Id: pwunconv.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <fcntl.h> #include <pwd.h> @@ -221,13 +221,7 @@ int main (int argc, char **argv) } } - if (spw_close () == 0) { - fprintf (stderr, - _("%s: failure while writing changes to %s\n"), - Prog, spw_dbname ()); - SYSLOG ((LOG_ERR, "failure while writing changes to %s", spw_dbname ())); - fail_exit (3); - } + (void) spw_close (); /* was only open O_RDONLY */ if (pw_close () == 0) { fprintf (stderr, @@ -2,7 +2,7 @@ * Copyright (c) 1989 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2000 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2011, Nicolas François + * Copyright (c) 2007 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,7 +53,7 @@ #include <config.h> -#ident "$Id: su.c 3560 2011-11-06 18:39:59Z nekral-guest $" +#ident "$Id: su.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <getopt.h> #include <grp.h> @@ -1092,6 +1092,9 @@ int main (int argc, char **argv) if (fd >= 0) { err = ioctl (fd, TIOCNOTTY, (char *) 0); (void) close (fd); + } else if (ENXIO == errno) { + /* There are no controlling terminal already */ + err = 0; } #endif /* USE_PAM */ diff --git a/src/useradd.c b/src/useradd.c index 4fdb29c..bfddfc6 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -2,7 +2,7 @@ * Copyright (c) 1991 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2000 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2011, Nicolas François + * Copyright (c) 2007 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: useradd.c 3650 2011-11-21 22:02:15Z nekral-guest $" +#ident "$Id: useradd.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <assert.h> #include <ctype.h> @@ -167,8 +167,7 @@ static bool home_added = false; #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 E_SE_UPDATE 14 /* can't update SELinux user mapping */ +#define E_SE_UPDATE 14 /* can't update SELinux user mapping */ #define DGROUP "GROUP=" #define DHOME "HOME=" @@ -557,11 +556,12 @@ static int set_defaults (void) */ wlen = snprintf (buf, sizeof buf, "%s-", USER_DEFAULTS_FILE); assert (wlen < (int) sizeof buf); - if ((rename (USER_DEFAULTS_FILE, buf) != 0) && (ENOENT != errno)) { + unlink (buf); + if ((link (USER_DEFAULTS_FILE, buf) != 0) && (ENOENT != errno)) { int err = errno; fprintf (stderr, - _("%s: rename: %s: %s\n"), - Prog, USER_DEFAULTS_FILE, strerror (err)); + _("%s: Cannot create backup file (%s): %s\n"), + Prog, buf, strerror (err)); unlink (new_file); return -1; } diff --git a/src/userdel.c b/src/userdel.c index 0eb2289..4439f62 100644 --- a/src/userdel.c +++ b/src/userdel.c @@ -2,7 +2,7 @@ * Copyright (c) 1991 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2000 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2011, Nicolas François + * Copyright (c) 2007 - 2012, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,7 +32,7 @@ #include <config.h> -#ident "$Id: userdel.c 3640 2011-11-19 21:51:52Z nekral-guest $" +#ident "$Id: userdel.c 3743 2012-05-25 11:51:53Z nekral-guest $" #include <errno.h> #include <fcntl.h> @@ -333,22 +333,22 @@ static void remove_usergroup (void) * We can remove this group, it is not the primary * group of any remaining user. */ - if (gr_remove (grp->gr_name) == 0) { + if (gr_remove (user_name) == 0) { fprintf (stderr, _("%s: cannot remove entry '%s' from %s\n"), - Prog, grp->gr_name, gr_dbname ()); + Prog, user_name, gr_dbname ()); fail_exit (E_GRP_UPDATE); } #ifdef WITH_AUDIT audit_logger (AUDIT_DEL_GROUP, Prog, "deleting group", - grp->gr_name, AUDIT_NO_ID, + user_name, AUDIT_NO_ID, SHADOW_AUDIT_SUCCESS); #endif /* WITH_AUDIT */ SYSLOG ((LOG_INFO, "removed group '%s' owned by '%s'\n", - grp->gr_name, user_name)); + user_name, user_name)); #ifdef SHADOWGRP if (sgr_locate (user_name) != NULL) { @@ -361,12 +361,12 @@ static void remove_usergroup (void) #ifdef WITH_AUDIT audit_logger (AUDIT_DEL_GROUP, Prog, "deleting shadow group", - grp->gr_name, AUDIT_NO_ID, + user_name, AUDIT_NO_ID, SHADOW_AUDIT_SUCCESS); #endif /* WITH_AUDIT */ SYSLOG ((LOG_INFO, "removed shadow group '%s' owned by '%s'\n", - grp->gr_name, user_name)); + user_name, user_name)); } #endif /* SHADOWGRP */ |