Allow starting by root (set user context to _ircd-hybrid in that case).
reviewed by simon@ and ajacoutot@ ok bernd@
This commit is contained in:
parent
aa99206c3d
commit
faeca641e3
@ -1,10 +1,10 @@
|
||||
# $OpenBSD: Makefile,v 1.3 2009/02/07 09:58:42 simon Exp $
|
||||
# $OpenBSD: Makefile,v 1.4 2009/02/09 15:14:22 form Exp $
|
||||
|
||||
SHARED_ONLY = Yes
|
||||
COMMENT = Internet Relay Chat server
|
||||
|
||||
DISTNAME = ircd-hybrid-7.2.3
|
||||
PKGNAME = ${DISTNAME}p1
|
||||
PKGNAME = ${DISTNAME}p2
|
||||
CATEGORIES = net
|
||||
|
||||
HOMEPAGE = http://ircd-hybrid.com/
|
||||
|
@ -1,7 +1,15 @@
|
||||
$OpenBSD: patch-include_defaults_h,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
|
||||
--- include/defaults.h.orig Wed Feb 28 05:17:43 2007
|
||||
+++ include/defaults.h Tue Jan 27 21:23:01 2009
|
||||
@@ -50,11 +50,11 @@
|
||||
$OpenBSD: patch-include_defaults_h,v 1.2 2009/02/09 15:14:22 form Exp $
|
||||
--- include/defaults.h.orig Wed Feb 28 10:17:43 2007
|
||||
+++ include/defaults.h Sun Feb 8 14:28:26 2009
|
||||
@@ -47,14 +47,19 @@
|
||||
* AUTOMODPATH = directory for autoloaded modules
|
||||
*/
|
||||
|
||||
+/* users */
|
||||
+#ifndef IRCD_USER
|
||||
+#define IRCD_USER "_ircd-hybrid"
|
||||
+#endif
|
||||
+
|
||||
/* dirs */
|
||||
#define DPATH IRCD_PREFIX
|
||||
#define BINPATH IRCD_PREFIX "/bin/"
|
||||
@ -18,7 +26,7 @@ $OpenBSD: patch-include_defaults_h,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
|
||||
|
||||
/* files */
|
||||
#define SPATH BINPATH "/ircd" /* ircd executable */
|
||||
@@ -70,7 +70,7 @@
|
||||
@@ -70,7 +75,7 @@
|
||||
#define RKPATH ETCPATH "/rkline.conf"
|
||||
#define MPATH ETCPATH "/ircd.motd" /* MOTD file */
|
||||
#define LPATH LOGPATH "/ircd.log" /* ircd logfile */
|
||||
|
12
net/ircd-hybrid/patches/patch-include_stdinc_h
Normal file
12
net/ircd-hybrid/patches/patch-include_stdinc_h
Normal file
@ -0,0 +1,12 @@
|
||||
$OpenBSD: patch-include_stdinc_h,v 1.1 2009/02/09 15:14:22 form Exp $
|
||||
--- include/stdinc.h.orig Wed Feb 28 10:17:43 2007
|
||||
+++ include/stdinc.h Sun Feb 8 14:33:40 2009
|
||||
@@ -94,6 +94,8 @@
|
||||
#include <stdarg.h>
|
||||
#include <signal.h>
|
||||
#include <ctype.h>
|
||||
+#include <login_cap.h>
|
||||
+#include <pwd.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#define PATH_MAX (MAX_PATH - 1)
|
33
net/ircd-hybrid/patches/patch-src_ircd_c
Normal file
33
net/ircd-hybrid/patches/patch-src_ircd_c
Normal file
@ -0,0 +1,33 @@
|
||||
$OpenBSD: patch-src_ircd_c,v 1.1 2009/02/09 15:14:22 form Exp $
|
||||
--- src/ircd.c.orig Wed Feb 28 10:17:46 2007
|
||||
+++ src/ircd.c Sun Feb 8 14:30:08 2009
|
||||
@@ -168,7 +168,6 @@ make_daemon(void)
|
||||
}
|
||||
else if (pid > 0)
|
||||
{
|
||||
- print_startup(pid);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -544,8 +543,19 @@ main(int argc, char *argv[])
|
||||
#ifndef _WIN32
|
||||
if (geteuid() == 0)
|
||||
{
|
||||
- fprintf(stderr, "Don't run ircd as root!!!\n");
|
||||
- return(-1);
|
||||
+ struct passwd *pw;
|
||||
+
|
||||
+ if ((pw = getpwnam(IRCD_USER)) == NULL)
|
||||
+ {
|
||||
+ fprintf(stderr, "Don't run ircd as root!!!\n");
|
||||
+ return(-1);
|
||||
+ }
|
||||
+
|
||||
+ if (setusercontext(NULL, pw, pw->pw_uid, LOGIN_SETALL) < 0)
|
||||
+ {
|
||||
+ fprintf(stderr, "Can's set user context to %s!\n", IRCD_USER);
|
||||
+ return (-1);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Setup corefile size immediately after boot -kre */
|
@ -2,6 +2,7 @@ To start ircd-hybrid at boot time, edit ${SYSCONFDIR}/ircd-hybrid/ircd.conf
|
||||
as required and insert the following into /etc/rc.local.
|
||||
|
||||
if [ -x ${TRUEPREFIX}/bin/ircd ]; then
|
||||
echo -n ' ircd'
|
||||
install -d -o _ircd-hybrid /var/run/ircd
|
||||
sudo -u _ircd-hybrid ${TRUEPREFIX}/bin/ircd >/dev/null
|
||||
${TRUEPREFIX}/bin/ircd
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user