mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
Add login classes support for suexec
'PORTCOMMENT' is discarded. PR: ports/45139 Submitted by: maintainer
This commit is contained in:
parent
9313e86409
commit
83bf12be6f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=69866
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= apache
|
||||
PORTVERSION= ${APACHE_VERSION}.${RA_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= russian www
|
||||
MASTER_SITES= http://www.apache.org/dist/httpd/ \
|
||||
ftp://ftp.ccs.neu.edu/net/mirrors/ftp.apache.org/apache/dist/httpd/ \
|
||||
@ -54,15 +55,16 @@ DEFAULT_PATH?=/bin:/usr/bin:${PREFIX}/bin
|
||||
.if defined(WITH_APACHE_SUEXEC)
|
||||
|
||||
APACHE_SUEXEC_DOCROOT?=${DOCUMENT_ROOT}
|
||||
APACHE_SUEXEC_LOG?=/var/log/httpd-suexec.log
|
||||
APACHE_SUEXEC_USERDIR?=public_html
|
||||
|
||||
SUEXEC_CONF= \
|
||||
SUEXEC_CONF=\
|
||||
--enable-suexec \
|
||||
--suexec-docroot=${APACHE_SUEXEC_DOCROOT} \
|
||||
--suexec-caller=www \
|
||||
--suexec-uidmin=1000 \
|
||||
--suexec-gidmin=1000 \
|
||||
--suexec-logfile=/var/log/httpd-suexec.log \
|
||||
--suexec-logfile=${APACHE_SUEXEC_LOG} \
|
||||
--suexec-userdir=${APACHE_SUEXEC_USERDIR} \
|
||||
--suexec-safepath=${DEFAULT_PATH}
|
||||
|
||||
@ -81,14 +83,13 @@ SUEXEC_MAN=
|
||||
|
||||
.endif # WITH_APACHE_SUEXEC
|
||||
|
||||
|
||||
#
|
||||
# Configutre parameters
|
||||
#
|
||||
|
||||
USE_PERL5= yes
|
||||
HAS_CONFIGURE= yes
|
||||
CONFIGURE_ARGS= \
|
||||
CONFIGURE_ARGS=\
|
||||
--prefix=${PREFIX} \
|
||||
--server-uid=www \
|
||||
--server-gid=www \
|
||||
@ -97,7 +98,7 @@ CONFIGURE_ARGS= \
|
||||
--without-confadjust
|
||||
|
||||
.if defined(WITH_DSO_MODULES)
|
||||
CONFIGURE_ARGS+= \
|
||||
CONFIGURE_ARGS+=\
|
||||
--enable-shared=max \
|
||||
--disable-shared=so \
|
||||
--disable-shared=charset \
|
||||
@ -109,7 +110,7 @@ CONFIGURE_ARGS+= \
|
||||
|
||||
PLIST_SUB+= DSO_MOD=""
|
||||
.else
|
||||
CONFIGURE_ARGS+= \
|
||||
CONFIGURE_ARGS+=\
|
||||
--enable-shared=remain \
|
||||
--enable-module=most \
|
||||
--enable-module=auth_db \
|
||||
@ -124,13 +125,12 @@ OPTIM= -DDOCUMENT_LOCATION=\\"${DOCUMENT_ROOT}\\" \
|
||||
-DDEFAULT_PATH=\\"${DEFAULT_PATH}\\" \
|
||||
-DACCEPT_FILTER_NAME=\\"httpready\\"
|
||||
|
||||
.if defined(APACHE_HARD_SERVER_LIMIT)
|
||||
.if defined(APACHE_HARD_SERVER_LIMIT)
|
||||
OPTIM+= -DHARD_SERVER_LIMIT=${APACHE_HARD_SERVER_LIMIT}
|
||||
.else
|
||||
OPTIM+= -DHARD_SERVER_LIMIT=512
|
||||
.endif
|
||||
|
||||
|
||||
.if defined(APACHE_PERF_TUNING)
|
||||
OPTIM+= -DBUFFERED_LOGS
|
||||
CFLAGS+= -O6 -fomit-frame-pointer
|
||||
@ -164,7 +164,8 @@ pre-fetch:
|
||||
@${ECHO_MSG} " suexec docroot: ${APACHE_SUEXEC_DOCROOT}"
|
||||
@${ECHO_MSG} " suexec userdir: ${APACHE_SUEXEC_USERDIR}"
|
||||
@${ECHO_MSG} " suexec safepath: ${DEFAULT_PATH}"
|
||||
@${ECHO_MSG} " These values could be defined as APACHE_SUEXEC_DOCROOT, APACHE_SUEXEC_USERDIR and DEFAULT_PATH."
|
||||
@${ECHO_MSG} " suexec log: ${APACHE_SUEXEC_LOG}"
|
||||
@${ECHO_MSG} " These values could be defined as APACHE_SUEXEC_DOCROOT, APACHE_SUEXEC_USERDIR, DEFAULT_PATH and APACHE_SUEXEC_LOG."
|
||||
.else
|
||||
@${ECHO_MSG} "You could define WITH_APACHE_SUEXEC to build suexec support."
|
||||
.endif
|
||||
|
20
russian/apache13/files/patch-ba
Normal file
20
russian/apache13/files/patch-ba
Normal file
@ -0,0 +1,20 @@
|
||||
--- src/support/Makefile.tmpl.orig Sat Mar 2 20:46:23 2002
|
||||
+++ src/support/Makefile.tmpl Tue Oct 22 00:31:18 2002
|
||||
@@ -7,7 +7,7 @@
|
||||
# LIBS=-L$(SSLLOC)/lib -lssl -lcrypto -lm -lap -los $(EXTRA_LIBS) $(LIBS1)
|
||||
# INCLUDES=-I$(SSLLOC)/include $(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
|
||||
|
||||
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
|
||||
+CFLAGS=-DLOGIN_CAP $(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
|
||||
LIBS=-lm -lap -los $(EXTRA_LIBS) $(LIBS1)
|
||||
INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
|
||||
LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) -L$(OSDIR) -L$(SRCDIR)/ap
|
||||
@@ -50,7 +50,7 @@
|
||||
-e 's%@LIBS_SHLIB@%$(LIBS_SHLIB)%g' && chmod a+x apxs
|
||||
|
||||
suexec: suexec.o
|
||||
- $(CC) $(CFLAGS) -o suexec $(LDFLAGS) suexec.o $(LIBS)
|
||||
+ $(CC) $(CFLAGS) -lutil -o suexec $(LDFLAGS) suexec.o $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS) *.o
|
75
russian/apache13/files/patch-bb
Normal file
75
russian/apache13/files/patch-bb
Normal file
@ -0,0 +1,75 @@
|
||||
--- src/support/suexec.c.orig Thu Mar 14 00:05:37 2002
|
||||
+++ src/support/suexec.c Wed Sep 25 00:22:18 2002
|
||||
@@ -90,6 +90,9 @@
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef LOGIN_CAP
|
||||
+#include <login_cap.h>
|
||||
+#endif
|
||||
|
||||
#include "suexec.h"
|
||||
|
||||
@@ -296,11 +299,14 @@
|
||||
fprintf(stderr, " -D DOC_ROOT=\"%s\"\n", DOC_ROOT);
|
||||
#endif
|
||||
#ifdef GID_MIN
|
||||
- fprintf(stderr, " -D GID_MID=%d\n", GID_MIN);
|
||||
+ fprintf(stderr, " -D GID_MIN=%d\n", GID_MIN);
|
||||
#endif
|
||||
#ifdef HTTPD_USER
|
||||
fprintf(stderr, " -D HTTPD_USER=\"%s\"\n", HTTPD_USER);
|
||||
#endif
|
||||
+#ifdef LOGIN_CAP
|
||||
+ fprintf(stderr, " -D LOGIN_CAP\n");
|
||||
+#endif
|
||||
#ifdef LOG_EXEC
|
||||
fprintf(stderr, " -D LOG_EXEC=\"%s\"\n", LOG_EXEC);
|
||||
#endif
|
||||
@@ -311,7 +317,7 @@
|
||||
fprintf(stderr, " -D SUEXEC_UMASK=%03o\n", SUEXEC_UMASK);
|
||||
#endif
|
||||
#ifdef UID_MIN
|
||||
- fprintf(stderr, " -D UID_MID=%d\n", UID_MIN);
|
||||
+ fprintf(stderr, " -D UID_MIN=%d\n", UID_MIN);
|
||||
#endif
|
||||
#ifdef USERDIR_SUFFIX
|
||||
fprintf(stderr, " -D USERDIR_SUFFIX=\"%s\"\n", USERDIR_SUFFIX);
|
||||
@@ -461,7 +467,28 @@
|
||||
|
||||
/*
|
||||
* Change UID/GID here so that the following tests work over NFS.
|
||||
- *
|
||||
+ */
|
||||
+
|
||||
+#ifdef LOGIN_CAP
|
||||
+ /*
|
||||
+ * Set user context (resources, priority and grouplist).
|
||||
+ * If unsuccessful, error out.
|
||||
+ */
|
||||
+ if (setusercontext(NULL, pw, uid, LOGIN_SETRESOURCES | LOGIN_SETPRIORITY |
|
||||
+ LOGIN_SETGROUP | LOGIN_SETLOGIN) == -1) {
|
||||
+ log_err("emerg: failed to set user context (%ld: %s)\n", uid, cmd);
|
||||
+ exit(108);
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Set gid to the target group. If unsuccessful, error out.
|
||||
+ */
|
||||
+ if ((setgid(gid)) != 0) {
|
||||
+ log_err("emerg: failed to setgid (%ld: %s)\n", gid, cmd);
|
||||
+ exit(109);
|
||||
+ }
|
||||
+#else /* !LOGIN_CAP */
|
||||
+ /*
|
||||
* Initialize the group access list for the target user,
|
||||
* and setgid() to the target group. If unsuccessful, error out.
|
||||
*/
|
||||
@@ -469,6 +496,7 @@
|
||||
log_err("emerg: failed to setgid (%ld: %s)\n", gid, cmd);
|
||||
exit(109);
|
||||
}
|
||||
+#endif /* LOGIN_CAP */
|
||||
|
||||
/*
|
||||
* setuid() to the target user. Error out on fail.
|
Loading…
Reference in New Issue
Block a user