Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37397734
en ru br
Репозитории ALT
S:4.14.0-alt1
5.1: 4.0.4.1-alt9
4.1: 4.0.4.1-alt9
4.0: 4.0.4.1-alt8
3.0: 4.0.4.1-alt5
www.altlinux.org/Changes

Группа :: Система/Основа
Пакет: shadow

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: shadow-4.0.4.1-owl-pam-auth.patch
Скачать


diff -uNrp shadow-4.0.4.1/src/chage.c shadow-4.0.4.1.owl-pam-auth/src/chage.c
--- shadow-4.0.4.1/src/chage.c	2003-06-19 17:57:15 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/chage.c	2004-02-28 23:16:45 +0000
@@ -698,6 +698,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.
diff -uNrp shadow-4.0.4.1/src/chpasswd.c shadow-4.0.4.1.owl-pam-auth/src/chpasswd.c
--- shadow-4.0.4.1/src/chpasswd.c	2003-06-19 18:11:01 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/chpasswd.c	2004-02-28 23:16:45 +0000
@@ -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.
diff -uNrp shadow-4.0.4.1/src/groupadd.c shadow-4.0.4.1.owl-pam-auth/src/groupadd.c
--- shadow-4.0.4.1/src/groupadd.c	2004-01-05 01:08:56 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/groupadd.c	2004-02-28 23:16:45 +0000
@@ -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.
diff -uNrp shadow-4.0.4.1/src/groupdel.c shadow-4.0.4.1.owl-pam-auth/src/groupdel.c
--- shadow-4.0.4.1/src/groupdel.c	2003-06-19 18:11:01 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/groupdel.c	2004-02-28 23:16:45 +0000
@@ -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 ();
diff -uNrp shadow-4.0.4.1/src/groupmod.c shadow-4.0.4.1.owl-pam-auth/src/groupmod.c
--- shadow-4.0.4.1/src/groupmod.c	2003-06-19 18:11:01 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/groupmod.c	2004-02-28 23:16:45 +0000
@@ -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.
diff -uNrp shadow-4.0.4.1/src/grpck.c shadow-4.0.4.1.owl-pam-auth/src/grpck.c
--- shadow-4.0.4.1/src/grpck.c	2002-01-05 15:41:43 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/grpck.c	2004-02-28 23:16:45 +0000
@@ -166,7 +166,7 @@ int main (int argc, char **argv)
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
-	OPENLOG (Prog);
+	OPENLOG ("grpck");
 
 	/*
 	 * Parse the command line arguments
diff -uNrp shadow-4.0.4.1/src/logoutd.c shadow-4.0.4.1.owl-pam-auth/src/logoutd.c
--- shadow-4.0.4.1/src/logoutd.c	2003-06-19 18:11:01 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/logoutd.c	2004-02-28 23:16:45 +0000
@@ -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
diff -uNrp shadow-4.0.4.1/src/newusers.c shadow-4.0.4.1.owl-pam-auth/src/newusers.c
--- shadow-4.0.4.1/src/newusers.c	2003-12-17 01:33:29 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/newusers.c	2004-02-28 23:16:45 +0000
@@ -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,
diff -uNrp shadow-4.0.4.1/src/pwck.c shadow-4.0.4.1.owl-pam-auth/src/pwck.c
--- shadow-4.0.4.1/src/pwck.c	2002-01-10 13:01:28 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/pwck.c	2004-02-28 23:16:45 +0000
@@ -148,7 +148,7 @@ int main (int argc, char **argv)
 	bindtextdomain (PACKAGE, LOCALEDIR);
 	textdomain (PACKAGE);
 
-	OPENLOG (Prog);
+	OPENLOG ("pwsk");
 
 	/*
 	 * Parse the command line arguments
diff -uNrp shadow-4.0.4.1/src/useradd.c shadow-4.0.4.1.owl-pam-auth/src/useradd.c
--- shadow-4.0.4.1/src/useradd.c	2004-01-14 14:21:28 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/useradd.c	2004-02-28 23:16:45 +0000
@@ -1538,19 +1538,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,16 +1597,9 @@ int main (int argc, char **argv)
 			 Prog);
 		exit (1);
 	}
-#endif				/* USE_PAM */
-
-	OPENLOG (Prog);
 
-#ifdef SHADOWPWD
-	is_shadow_pwd = spw_file_present ();
-#endif
-#ifdef SHADOWGRP
-	is_shadow_grp = sgr_file_present ();
-#endif
+	OPENLOG("useradd");
+#endif				/* USE_PAM */
 
 	/*
 	 * The open routines for the NDBM files don't use read-write
@@ -1609,9 +1616,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
diff -uNrp shadow-4.0.4.1/src/userdel.c shadow-4.0.4.1.owl-pam-auth/src/userdel.c
--- shadow-4.0.4.1/src/userdel.c	2003-12-17 09:43:30 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/userdel.c	2004-02-28 23:16:45 +0000
@@ -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) {
@@ -659,7 +676,8 @@ int main (int argc, char **argv)
 	}
 #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.
 	 */
diff -uNrp shadow-4.0.4.1/src/usermod.c shadow-4.0.4.1.owl-pam-auth/src/usermod.c
--- shadow-4.0.4.1/src/usermod.c	2003-06-30 13:17:51 +0000
+++ shadow-4.0.4.1.owl-pam-auth/src/usermod.c	2004-02-28 23:16:45 +0000
@@ -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,16 +1426,9 @@ int main (int argc, char **argv)
 			 Prog);
 		exit (1);
 	}
-#endif				/* USE_PAM */
 
-	OPENLOG (Prog);
-
-#ifdef SHADOWPWD
-	is_shadow_pwd = spw_file_present ();
-#endif
-#ifdef SHADOWGRP
-	is_shadow_grp = sgr_file_present ();
-#endif
+	OPENLOG ("usermod");
+#endif				/* USE_PAM */
 
 	/*
 	 * The open routines for the NDBM files don't use read-write as the
@@ -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,
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin