A very low-level interface to getpwnam() and the get/set/e/uid/gid functions. More...
#include <gidentity.h>
Public Member Functions | |
Identity (const std::string &login_name) | |
Constructor for the named identity. More... | |
bool | isRoot () const |
Returns true if the userid is zero. More... | |
std::string | str () const |
Returns a string representation. More... | |
void | setRealUser (bool do_throw=true) |
Sets the real userid. More... | |
void | setEffectiveUser (bool do_throw=true) |
Sets the effective userid. More... | |
void | setEffectiveUser (SignalSafe) |
Sets the effective userid. More... | |
void | setRealGroup (bool do_throw=true) |
Sets the real group id. More... | |
void | setEffectiveGroup (bool do_throw=true) |
Sets the effective group id. More... | |
void | setEffectiveGroup (SignalSafe) |
Sets the effective group id. More... | |
bool | operator== (const Identity &) const |
Comparison operator. More... | |
bool | operator!= (const Identity &) const |
Comparison operator. More... | |
Static Public Member Functions | |
static Identity | effective () |
Returns the current effective identity. More... | |
static Identity | real () |
Returns the calling process's real identity. More... | |
static Identity | root () |
Returns the superuser identity. More... | |
static Identity | invalid () |
Returns an invalid identity. More... | |
A very low-level interface to getpwnam() and the get/set/e/uid/gid functions.
Definition at line 41 of file gidentity.h.
|
explicit |
Constructor for the named identity.
Throws if NoSuchUser.
Definition at line 39 of file gidentity_unix.cpp.
References G_ASSERT, G::limits::get_pwnam_r_buffer, and Identity().
Referenced by Identity().
|
static |
Returns the current effective identity.
Definition at line 86 of file gidentity_unix.cpp.
Referenced by G::Process::beOrdinary(), G::Process::beSpecial(), G::Process::revokeExtraGroups(), and G::NewProcess::spawn().
|
static |
Returns an invalid identity.
Definition at line 102 of file gidentity_unix.cpp.
Referenced by G::Root::start(), and G::Root::stop().
bool G::Identity::isRoot | ( | ) | const |
Returns true if the userid is zero.
Definition at line 122 of file gidentity_unix.cpp.
Referenced by G::Process::beSpecial(), and G::NewProcess::spawn().
bool G::Identity::operator!= | ( | const Identity & | other | ) | const |
Comparison operator.
Definition at line 132 of file gidentity_unix.cpp.
bool G::Identity::operator== | ( | const Identity & | other | ) | const |
Comparison operator.
Definition at line 127 of file gidentity_unix.cpp.
|
static |
Returns the calling process's real identity.
Definition at line 94 of file gidentity_unix.cpp.
Referenced by G::Process::beNobody(), G::Process::beOrdinary(), G::Process::beSpecial(), and G::Process::revokeExtraGroups().
|
static |
Returns the superuser identity.
Definition at line 107 of file gidentity_unix.cpp.
Referenced by G::Process::beNobody(), and G::Process::beOrdinary().
void G::Identity::setEffectiveGroup | ( | bool | do_throw = true | ) |
Sets the effective group id.
Definition at line 152 of file gidentity_unix.cpp.
void G::Identity::setEffectiveGroup | ( | SignalSafe | ) |
Sets the effective group id.
A signal-safe, reentrant overload.
Definition at line 157 of file gidentity_unix.cpp.
void G::Identity::setEffectiveUser | ( | bool | do_throw = true | ) |
Sets the effective userid.
Definition at line 142 of file gidentity_unix.cpp.
void G::Identity::setEffectiveUser | ( | SignalSafe | ) |
Sets the effective userid.
A signal-safe, reentrant overload.
Definition at line 137 of file gidentity_unix.cpp.
void G::Identity::setRealGroup | ( | bool | do_throw = true | ) |
Sets the real group id.
Definition at line 162 of file gidentity_unix.cpp.
void G::Identity::setRealUser | ( | bool | do_throw = true | ) |
Sets the real userid.
Definition at line 147 of file gidentity_unix.cpp.
std::string G::Identity::str | ( | ) | const |
Returns a string representation.
Definition at line 115 of file gidentity_unix.cpp.
Referenced by G::operator<<().