Set mISDNcapi egid to MISDN_GROUP
To allow access to the filesystem socket the effective group is changed to the MISDN_GROUP, which is uucp or dialout usually. Signed-off-by: Karsten Keil <kkeil@linux-pingi.de>
This commit is contained in:
parent
db4bc04f95
commit
d010a8996c
|
@ -14,7 +14,7 @@ else
|
|||
_USE_SOFTFAX =
|
||||
endif
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -Werror -Wall $(_USE_SOFTFAX) $(_MEMLEAKDEBUG)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -Werror -Wall $(_USE_SOFTFAX) $(_MEMLEAKDEBUG) -DMISDN_GROUP=\"$(MISDN_GROUP)\"
|
||||
|
||||
EXTRA_DIST = capi20.conf.sample
|
||||
|
||||
|
|
|
@ -204,7 +204,7 @@ mISDNcapid_SOURCES = daemon.c application.c lplci.c mplci.c ncci.c m_capi.h m_ca
|
|||
|
||||
mISDNcapid_LDADD = ../lib/libmisdn.la -lcapi20
|
||||
mISDNcapid_LDFLAGS = -shared
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -Werror -Wall $(_USE_SOFTFAX) $(_MEMLEAKDEBUG)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/include -Werror -Wall $(_USE_SOFTFAX) $(_MEMLEAKDEBUG) -DMISDN_GROUP=\"$(MISDN_GROUP)\"
|
||||
EXTRA_DIST = capi20.conf.sample
|
||||
CLEANFILES = *~
|
||||
MISDN_SOCKET_DIR = /var/run/mISDNcapid
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <grp.h>
|
||||
#include "m_capi.h"
|
||||
#include "mc_buffer.h"
|
||||
#include "m_capi_sock.h"
|
||||
|
@ -1478,6 +1480,7 @@ int main(int argc, char *argv[])
|
|||
int ret, i, j, nb, c, exitcode = 1, ver, libdebug;
|
||||
struct sockaddr_un mcaddr;
|
||||
struct pController *pc;
|
||||
struct group *grp;
|
||||
|
||||
KeepTemporaryFiles = 0;
|
||||
config_file = def_config;
|
||||
|
@ -1501,6 +1504,19 @@ int main(int argc, char *argv[])
|
|||
mISDN_set_debug_level(libdebug);
|
||||
iprint("Init mISDN lib version %x, debug = %x (%x)\n", ver, debugmask, libdebug);
|
||||
|
||||
grp = getgrnam(MISDN_GROUP);
|
||||
if (!grp) {
|
||||
fprintf(stderr, "Cannot get %s group ID - %s\n", MISDN_GROUP, strerror(errno));
|
||||
return 1;
|
||||
} else {
|
||||
if (setegid(grp->gr_gid) < 0) {
|
||||
fprintf(stderr, "Cannot set effective group to %s gid:%d - %s\n",
|
||||
MISDN_GROUP, (int)grp->gr_gid, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
iprint("Did set eGID to %s gid:%d\n", MISDN_GROUP, (int)grp->gr_gid);
|
||||
}
|
||||
|
||||
mc_buffer_init();
|
||||
|
||||
snprintf(_TempDirectory, 80, "%s/mISDNd_XXXXXX", MISDND_TEMP_DIR);
|
||||
|
|
Loading…
Reference in New Issue