Репозитории 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 |
Группа :: Система/Основа
Пакет: 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,