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
|
SHARED_ONLY = Yes
|
||||||
COMMENT = Internet Relay Chat server
|
COMMENT = Internet Relay Chat server
|
||||||
|
|
||||||
DISTNAME = ircd-hybrid-7.2.3
|
DISTNAME = ircd-hybrid-7.2.3
|
||||||
PKGNAME = ${DISTNAME}p1
|
PKGNAME = ${DISTNAME}p2
|
||||||
CATEGORIES = net
|
CATEGORIES = net
|
||||||
|
|
||||||
HOMEPAGE = http://ircd-hybrid.com/
|
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 $
|
$OpenBSD: patch-include_defaults_h,v 1.2 2009/02/09 15:14:22 form Exp $
|
||||||
--- include/defaults.h.orig Wed Feb 28 05:17:43 2007
|
--- include/defaults.h.orig Wed Feb 28 10:17:43 2007
|
||||||
+++ include/defaults.h Tue Jan 27 21:23:01 2009
|
+++ include/defaults.h Sun Feb 8 14:28:26 2009
|
||||||
@@ -50,11 +50,11 @@
|
@@ -47,14 +47,19 @@
|
||||||
|
* AUTOMODPATH = directory for autoloaded modules
|
||||||
|
*/
|
||||||
|
|
||||||
|
+/* users */
|
||||||
|
+#ifndef IRCD_USER
|
||||||
|
+#define IRCD_USER "_ircd-hybrid"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
/* dirs */
|
/* dirs */
|
||||||
#define DPATH IRCD_PREFIX
|
#define DPATH IRCD_PREFIX
|
||||||
#define BINPATH IRCD_PREFIX "/bin/"
|
#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 */
|
/* files */
|
||||||
#define SPATH BINPATH "/ircd" /* ircd executable */
|
#define SPATH BINPATH "/ircd" /* ircd executable */
|
||||||
@@ -70,7 +70,7 @@
|
@@ -70,7 +75,7 @@
|
||||||
#define RKPATH ETCPATH "/rkline.conf"
|
#define RKPATH ETCPATH "/rkline.conf"
|
||||||
#define MPATH ETCPATH "/ircd.motd" /* MOTD file */
|
#define MPATH ETCPATH "/ircd.motd" /* MOTD file */
|
||||||
#define LPATH LOGPATH "/ircd.log" /* ircd logfile */
|
#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.
|
as required and insert the following into /etc/rc.local.
|
||||||
|
|
||||||
if [ -x ${TRUEPREFIX}/bin/ircd ]; then
|
if [ -x ${TRUEPREFIX}/bin/ircd ]; then
|
||||||
|
echo -n ' ircd'
|
||||||
install -d -o _ircd-hybrid /var/run/ircd
|
install -d -o _ircd-hybrid /var/run/ircd
|
||||||
sudo -u _ircd-hybrid ${TRUEPREFIX}/bin/ircd >/dev/null
|
${TRUEPREFIX}/bin/ircd
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user