Submitted By: Alexander E. Patrakov (semzx at newmail dot ru) Date: 2003-08-13 Initial Package Version: 0.77 Origin: Alexander E. Patrakov Description: Fix pam_group and pam_time modules. 1) Make pam_group look at the configuration file in the right place 2) Make these modules accept things like ":0" for the tty name, since xdm and kdm generate these names. The patch is not yet submitted to PAM maintainers. Maybe it should go into the book. diff -ur Linux-PAM-0.77.orig/modules/pam_group/Makefile Linux-PAM-0.77/modules/pam_group/Makefile --- Linux-PAM-0.77.orig/modules/pam_group/Makefile 2000-11-20 04:54:04.000000000 +0500 +++ Linux-PAM-0.77/modules/pam_group/Makefile 2003-02-20 17:32:07.000000000 +0500 @@ -11,7 +11,7 @@ LOCAL_CONFILE=./group.conf INSTALLED_CONFILE=$(SCONFIGD)/group.conf -DEFS=-DDEFAULT_CONF_FILE=\"$(CONFILE)\" +DEFS=-DDEFAULT_CONF_FILE=\"$(INSTALLED_CONFILE)\" CFLAGS += $(DEFS) MODULE_SIMPLE_INSTALL=bash -f ../install_conf "$(FAKEROOT)" "$(SCONFIGD)" "$(INSTALLED_CONFILE)" "$(TITLE)" "$(LOCAL_CONFILE)" diff -ur Linux-PAM-0.77.orig/modules/pam_group/pam_group.c Linux-PAM-0.77/modules/pam_group/pam_group.c --- Linux-PAM-0.77.orig/modules/pam_group/pam_group.c 2001-05-08 11:02:50.000000000 +0600 +++ Linux-PAM-0.77/modules/pam_group/pam_group.c 2003-02-20 17:32:44.000000000 +0500 @@ -254,7 +254,7 @@ default: if (isalpha(c) || c == '*' || isdigit(c) || c == '_' - || c == '-' || c == '.' || c == '/') { + || c == '-' || c == '.' || c == '/' || c == ':') { token = 1; } else if (token) { --to; @@ -285,7 +285,7 @@ if (next == VAL) { if (c == '!') not = !not; - else if (isalpha(c) || c == '*') { + else if (isalpha(c) || c == '*' || c == ':' || isdigit(c)) { right = not ^ agrees(me, x+at, l, rule); if (oper == AND) left &= right; diff -ur Linux-PAM-0.77.orig/modules/pam_time/pam_time.c Linux-PAM-0.77/modules/pam_time/pam_time.c --- Linux-PAM-0.77.orig/modules/pam_time/pam_time.c 2001-05-08 11:02:50.000000000 +0600 +++ Linux-PAM-0.77/modules/pam_time/pam_time.c 2003-02-20 17:33:54.000000000 +0500 @@ -256,7 +256,7 @@ default: if (isalpha(c) || c == '*' || isdigit(c) || c == '_' - || c == '-' || c == '.' || c == '/') { + || c == '-' || c == '.' || c == '/' || c == ':') { token = 1; } else if (token) { --to; @@ -287,7 +287,7 @@ if (next == VAL) { if (c == '!') not = !not; - else if (isalpha(c) || c == '*') { + else if (isalpha(c) || c == '*' || c == ':' || isdigit(c)) { right = not ^ agrees(me, x+at, l, rule); if (oper == AND) left &= right;