diff options
| author | Alexander Barton <alex@barton.de> | 2002-11-08 23:09:26 +0000 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2002-11-08 23:09:26 +0000 |
| commit | ae39724a63171b011e58b27f2754256ecba70a12 (patch) | |
| tree | 1d7d74ac7e1ba887af85df78b6fbeb402f76efcc | |
| parent | 8da254ea74a1b099e6bcbda5c9a261db71203c51 (diff) | |
| download | ngircd-ae39724a63171b011e58b27f2754256ecba70a12.tar.gz ngircd-ae39724a63171b011e58b27f2754256ecba70a12.zip | |
- in ServerUID und ServerGID kann nun jeweils auch der Name (und nicht nur
die numerische ID) verwendet werden.
| -rw-r--r-- | doc/sample-ngircd.conf | 12 | ||||
| -rw-r--r-- | src/ngircd/conf.c | 25 |
2 files changed, 27 insertions, 10 deletions
diff --git a/doc/sample-ngircd.conf b/doc/sample-ngircd.conf index db886ad6..4220c552 100644 --- a/doc/sample-ngircd.conf +++ b/doc/sample-ngircd.conf @@ -1,4 +1,4 @@ -# $Id: sample-ngircd.conf,v 1.12 2002/11/02 23:13:18 alex Exp $ +# $Id: sample-ngircd.conf,v 1.13 2002/11/08 23:09:26 alex Exp $ # # Das ist eine Beispiel-Konfiguration fuer den ngIRCd, die an die @@ -42,14 +42,16 @@ ;MotdFile = /usr/local/etc/ngircd.motd # User-ID, unter der der Daemon laufen soll (dazu muss der Server - # jedoch mit root-Rechten gestartet werden). + # jedoch mit root-Rechten gestartet werden). Es kann der Name oder + # die numerische ID angegeben werden. # ACHTUNG: Die Konfigurations- und MOTD-Datei muessen fuer diesen # Benutzer lesbar sein, ansonsten schlaegt ein RESTART fehl! - ;ServerUID = 65534 + ;ServerUID = ircd # Group-ID, zu der der Daemon wechseln soll (hierzu muss der Server - # jedoch mit root-Rechten gestartet werden) - ;ServerGID = 65534 + # jedoch mit root-Rechten gestartet werden). Es kann der Name oder + # die numerische ID angegeben werden. + ;ServerGID = daemon # Nach <PingTimeout> Sekunden verschickt der Server bei Inaktivitaet # von einem Client diesem ein PING. diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c index cf8b2684..d87db500 100644 --- a/src/ngircd/conf.c +++ b/src/ngircd/conf.c @@ -9,7 +9,7 @@ * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. * - * $Id: conf.c,v 1.35 2002/11/02 22:59:01 alex Exp $ + * $Id: conf.c,v 1.36 2002/11/08 23:09:26 alex Exp $ * * conf.h: Konfiguration des ngircd */ @@ -25,6 +25,9 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <pwd.h> +#include <grp.h> +#include <sys/types.h> #include "ngircd.h" #include "conn.h" @@ -67,6 +70,8 @@ Conf_Test( VOID ) { /* Konfiguration einlesen, ueberpruefen und ausgeben. */ + struct passwd *pwd; + struct group *grp; INT i; Use_Log = FALSE; @@ -98,8 +103,12 @@ Conf_Test( VOID ) printf( "%u", Conf_ListenPorts[i] ); } puts( "" ); - printf( " ServerUID = %ld\n", (LONG)Conf_UID ); - printf( " ServerGID = %ld\n", (LONG)Conf_GID ); + pwd = getpwuid( Conf_UID ); + if( pwd ) printf( " ServerUID = %s\n", pwd->pw_name ); + else printf( " ServerUID = %ld\n", (LONG)Conf_UID ); + grp = getgrgid( Conf_GID ); + if( grp ) printf( " ServerGID = %s\n", grp->gr_name ); + else printf( " ServerGID = %ld\n", (LONG)Conf_GID ); printf( " PingTimeout = %d\n", Conf_PingTimeout ); printf( " PongTimeout = %d\n", Conf_PongTimeout ); printf( " ConnectRetry = %d\n", Conf_ConnectRetry ); @@ -298,6 +307,8 @@ Read_Config( VOID ) LOCAL VOID Handle_GLOBAL( INT Line, CHAR *Var, CHAR *Arg ) { + struct passwd *pwd; + struct group *grp; CHAR *ptr; LONG port; @@ -376,13 +387,17 @@ Handle_GLOBAL( INT Line, CHAR *Var, CHAR *Arg ) if( strcasecmp( Var, "ServerUID" ) == 0 ) { /* UID, mit der der Daemon laufen soll */ - Conf_UID = (UINT)atoi( Arg ); + pwd = getpwnam( Arg ); + if( pwd ) Conf_UID = pwd->pw_uid; + else Conf_UID = (UINT)atoi( Arg ); return; } if( strcasecmp( Var, "ServerGID" ) == 0 ) { /* GID, mit der der Daemon laufen soll */ - Conf_GID = (UINT)atoi( Arg ); + grp = getgrnam( Arg ); + if( grp ) Conf_GID = grp->gr_gid; + else Conf_GID = (UINT)atoi( Arg ); return; } if( strcasecmp( Var, "PingTimeout" ) == 0 ) |