add -u and -g command line args to set user and group.

properly handle portability for mlockall and setrlimit
Tested on linux, Freebsd, solaris, mac.
FSCORE-47

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6033 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris
2007-10-23 15:56:23 +00:00
parent 20380ea307
commit b382c0a41f
5 changed files with 238 additions and 8 deletions
+13
View File
@@ -60,6 +60,19 @@ typedef apr_os_thread_t switch_thread_id_t;
#include <sys/mman.h>
#endif
#ifndef WIN32
/* setuid, setgid */
#include <unistd.h>
/* getgrnam, getpwnam */
#include <pwd.h>
#include <grp.h>
#ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
#endif
#endif
/* #define DEBUG_ALLOC */
#define DO_EVENTS
+12
View File
@@ -1413,6 +1413,18 @@ SWITCH_DECLARE(switch_status_t) switch_core_management_exec(char *relative_oid,
*/
SWITCH_DECLARE(int32_t) set_high_priority(void);
/*!
\brief Change user and/or group of the running process
\long Several possible combinations:
- user only (group NULL): switch to user and his primary group (and supplementary groups, if supported)
- user and group: switch to user and specified group (only)
- group only (user NULL): switch group only
\param user name of the user to switch to (or NULL)
\param group name of the group to switch to (or NULL)
\return 0 on success, -1 otherwise
*/
SWITCH_DECLARE(int32_t) change_user_group(const char *user, const char *group);
/*!
\brief Run endlessly until the system is shutdown
\param bg divert console to the background