From d3d0096ab170eec3ccfb35615a246a4d5d31b878 Mon Sep 17 00:00:00 2001 From: Dan Harkless Date: Tue, 17 Aug 1999 23:09:46 +0000 Subject: [PATCH] Automated #define of MAILGROUP and installation of inc as setgid mail when the mail spool directory isn't world-writable. --- acconfig.h | 17 +++++++---------- configure.in | 38 ++++++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/acconfig.h b/acconfig.h index 5d2429e..5051962 100644 --- a/acconfig.h +++ b/acconfig.h @@ -12,16 +12,6 @@ */ /* - * Define to 1 if you need to make `inc' set-group-id - * because your mail spool is not world writable. This - * will add some extra security checks, although I can't - * guarantee it is safe. Also, you will need to change the - * group and add the setgid bit to `inc' manually after - * installation. - */ -/* #define MAILGROUP 1 */ - -/* * Turn on locale (setlocale) support */ #define LOCALE 1 @@ -231,6 +221,13 @@ */ #undef ATTVIBUG +/* + * Define to 1 if you need to make `inc' set-group-id because your mail spool is + * not world writable. There are no guarantees as to the safety of doing this, + * but this #define will add some extra security checks. + */ +#undef MAILGROUP + /* Define ruserpass as _ruserpass if your libraries have a bug * * such that it can't find ruserpass, but can find _ruserpass. */ #undef ruserpass diff --git a/configure.in b/configure.in index 63274ce..6b3367f 100644 --- a/configure.in +++ b/configure.in @@ -151,6 +151,10 @@ AC_PROG_RANLIB dnl Check for `ranlib' AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk AC_PROG_LEX dnl Check for lex/flex +dnl Look for `cut' +pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb +AC_PATH_PROG(cutpath, cut, no, [$pathtmp]) + dnl Check for lorder and tsort commands AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl @@ -163,9 +167,9 @@ if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then AC_SUBST(TSORT)dnl fi -dnl Look for `sendmail' -pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin -AC_PATH_PROG(sendmailpath, sendmail, no, [$pathtmp]) +dnl Look for `ls' +pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb +AC_PATH_PROG(lspath, ls, no, [$pathtmp]) dnl Look for `more' pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin @@ -178,6 +182,10 @@ if test -z "$pagerpath"; then fi AC_SUBST(pagerpath)dnl +dnl Look for `sendmail' +pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin +AC_PATH_PROG(sendmailpath, sendmail, no, [$pathtmp]) + dnl Look for `vi' pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin AC_PATH_PROG(vipath, vi, no, [$pathtmp]) @@ -203,9 +211,9 @@ if test "$nmh_cv_attvibug" = yes; then AC_DEFINE(ATTVIBUG) fi -dnl --------------- -dnl FIND MAIL SPOOL -dnl --------------- +dnl ---------------------------------------------------------- +dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL +dnl ---------------------------------------------------------- AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool, [for mailspool in /var/mail dnl /var/spool/mail dnl @@ -219,6 +227,24 @@ nmh_cv_mailspool=$mailspool mailspool=$nmh_cv_mailspool AC_SUBST(mailspool)dnl +dnl See whether the mail spool directory is world-writable. +if test "$lspath" != "no" -a "$cutpath" != "no"; then + AC_CACHE_CHECK(whether the mail spool is world-writable, + nmh_cv_mailspool_world_writable, + [if test "`$lspath -dl $mailspool | $cutpath -c9`" = "-"; then + nmh_cv_mailspool_world_writable=no + else + nmh_cv_mailspool_world_writable=yes + fi]) +fi + +dnl ...If it's not, we need to #define MAILGROUP to 1 and make inc setgid mail. +if test "$nmh_cv_mailspool_world_writable" = "no"; then + AC_DEFINE(MAILGROUP) + SETGID_MAIL=1 +fi +AC_SUBST(SETGID_MAIL)dnl + dnl ------------------ dnl CHECK HEADER FILES dnl ------------------ -- 1.7.10.4