mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 17:35:06 -05:00
sys_solaris: add support for dropping root privileges
On Solaris, use the privops helper for the ntp_adjtime(), settimeofday(), and bind() system calls.
This commit is contained in:
4
configure
vendored
4
configure
vendored
@@ -411,6 +411,10 @@ case $OPERATINGSYSTEM in
|
|||||||
add_def __EXTENSIONS__
|
add_def __EXTENSIONS__
|
||||||
add_def _XOPEN_SOURCE 1
|
add_def _XOPEN_SOURCE 1
|
||||||
add_def _XOPEN_SOURCE_EXTENDED 1
|
add_def _XOPEN_SOURCE_EXTENDED 1
|
||||||
|
if [ $feat_droproot = "1" ]; then
|
||||||
|
add_def FEAT_PRIVDROP
|
||||||
|
priv_ops="ADJUSTTIMEX SETTIME BINDSOCKET"
|
||||||
|
fi
|
||||||
echo "Configuring for Solaris (" $SYSTEM "SunOS version" $VERSION ")"
|
echo "Configuring for Solaris (" $SYSTEM "SunOS version" $VERSION ")"
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
|
|||||||
2
sys.c
2
sys.c
@@ -90,6 +90,8 @@ void SYS_DropRoot(uid_t uid, gid_t gid)
|
|||||||
{
|
{
|
||||||
#if defined(LINUX) && defined (FEAT_PRIVDROP)
|
#if defined(LINUX) && defined (FEAT_PRIVDROP)
|
||||||
SYS_Linux_DropRoot(uid, gid);
|
SYS_Linux_DropRoot(uid, gid);
|
||||||
|
#elif defined(SOLARIS) && defined(FEAT_PRIVDROP)
|
||||||
|
SYS_Solaris_DropRoot(uid, gid);
|
||||||
#elif (defined(NETBSD) || defined(FREEBSD)) && defined(FEAT_PRIVDROP)
|
#elif (defined(NETBSD) || defined(FREEBSD)) && defined(FEAT_PRIVDROP)
|
||||||
SYS_NetBSD_DropRoot(uid, gid);
|
SYS_NetBSD_DropRoot(uid, gid);
|
||||||
#elif defined(MACOSX) && defined(FEAT_PRIVDROP)
|
#elif defined(MACOSX) && defined(FEAT_PRIVDROP)
|
||||||
|
|||||||
@@ -28,8 +28,10 @@
|
|||||||
|
|
||||||
#include "sysincl.h"
|
#include "sysincl.h"
|
||||||
|
|
||||||
|
#include "privops.h"
|
||||||
#include "sys_solaris.h"
|
#include "sys_solaris.h"
|
||||||
#include "sys_timex.h"
|
#include "sys_timex.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
@@ -48,3 +50,14 @@ SYS_Solaris_Finalise(void)
|
|||||||
{
|
{
|
||||||
SYS_Timex_Finalise();
|
SYS_Timex_Finalise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ================================================== */
|
||||||
|
|
||||||
|
#ifdef FEAT_PRIVDROP
|
||||||
|
void
|
||||||
|
SYS_Solaris_DropRoot(uid_t uid, gid_t gid)
|
||||||
|
{
|
||||||
|
PRV_StartHelper();
|
||||||
|
UTI_DropRoot(uid, gid);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -31,4 +31,6 @@ void SYS_Solaris_Initialise(void);
|
|||||||
|
|
||||||
void SYS_Solaris_Finalise(void);
|
void SYS_Solaris_Finalise(void);
|
||||||
|
|
||||||
|
void SYS_Solaris_DropRoot(uid_t uid, gid_t gid);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user