Open Lighting Architecture  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Files | Classes
Credentials

Detailed Description

User & Group Information.

Files

file  Credentials.cpp
file  Credentials.h
 User & Group Information.

Classes

struct  ola::PasswdEntry
 Contains information about a user. More...
struct  ola::GroupEntry
 Contains information about a group. More...

Get / Set User ID

uid_t ola::GetUID ()
 Get the real UID of the process.
uid_t ola::GetEUID ()
 Get the effective UID of the process.
bool ola::SetUID (uid_t new_uid)
 Set the effective UID of the process.

Get / Set Group ID

gid_t ola::GetGID ()
 Get the real Group ID.
gid_t ola::GetEGID ()
 Get the effective group ID.
bool ola::SetGID (gid_t new_gid)
 Set the effective Group ID of the process.

Lookup User Information

bool ola::GetPasswdName (const std::string &name, PasswdEntry *passwd)
 Lookup a user account by username.
bool ola::GetPasswdUID (uid_t uid, PasswdEntry *passwd)
 Lookup a user account by UID.

Lookup Group Information.

bool ola::GetGroupName (const std::string &name, GroupEntry *passwd)
 Lookup a group account by name.
bool ola::GetGroupGID (gid_t gid, GroupEntry *passwd)
 Lookup a group account by GID.

Function Documentation

gid_t ola::GetEGID ( )

Get the effective group ID.

Returns
the effective Group ID
uid_t ola::GetEUID ( )

Get the effective UID of the process.

Returns
effective user id of the process
gid_t ola::GetGID ( )

Get the real Group ID.

Returns
the real Group ID
bool ola::GetGroupGID ( gid_t  gid,
GroupEntry *  passwd 
)

Lookup a group account by GID.

Note
This is only thread safe & reentrant if the underlying OS supports it.
Wraps getgrpid()/getgrpid_r().
Parameters
[in]gidis the Group ID to match against
[out]passwdis a GroupEntry to be populated upon success
Returns
true on success and false otherwise
bool ola::GetGroupName ( const std::string &  name,
GroupEntry *  passwd 
)

Lookup a group account by name.

Note
This is only thread safe & reentrant if the underlying OS supports it.
Wraps getgrnam()/getgrnam_r().
Parameters
[in]namethe name of the group to match
[out]passwdis a GroupEntry to be populated upon success
Returns
true on success and false otherwise
bool ola::GetPasswdName ( const std::string &  name,
PasswdEntry *  passwd 
)

Lookup a user account by username.

Note
Only thread safe and reentrant if the underlying OS supports it.
Wraps getpwnam() / getpwnam_r().
Parameters
[in]nameusername to search for.
[out]passwdstruct to hold information for username name
Returns
true on success, false otherwise
bool ola::GetPasswdUID ( uid_t  uid,
PasswdEntry *  passwd 
)

Lookup a user account by UID.

Note
Only thread safe and reentrant if the underlying OS supports it.
Wraps getpwuid()/getpwuid_r().
Parameters
[in]uidis the User ID to match against
[out]passwdstruct to hold information for uid
Returns
true on success, false otherwise
uid_t ola::GetUID ( )

Get the real UID of the process.

Returns
real user id of the proccess
bool ola::SetGID ( gid_t  new_gid)

Set the effective Group ID of the process.

Note
This is a one way street. Only valid if the current egid is 0, or egid == new_gid
Parameters
new_gidnew Group ID to set process group to
Returns
true on success, false otherwise
bool ola::SetUID ( uid_t  new_uid)

Set the effective UID of the process.

Note
This is a one way street, and is only valid if the current euid is 0, or euid == new_uid
Parameters
new_uidis the user id to set the processes to
Returns
true on success, false otherwise