10 #include <pion/PionAdminRights.hpp>
13 #include <sys/types.h>
23 const boost::int16_t PionAdminRights::ADMIN_USER_ID = 0;
24 boost::mutex PionAdminRights::m_mutex;
30 : m_logger(PION_GET_LOGGER(
"pion.PionAdminRights")),
31 m_lock(m_mutex), m_user_id(-1), m_has_rights(false), m_use_log(use_log)
34 m_user_id = geteuid();
35 if ( seteuid(ADMIN_USER_ID) != 0 ) {
37 PION_LOG_ERROR(m_logger,
"Unable to upgrade to administrative rights");
43 PION_LOG_DEBUG(m_logger,
"Upgraded to administrative rights");
52 if ( seteuid(m_user_id) == 0 ) {
54 PION_LOG_DEBUG(m_logger,
"Released administrative rights");
57 PION_LOG_ERROR(m_logger,
"Unable to release administrative rights");
PionAdminRights(bool use_log=true)
void release(void)
releases administrative rights