summaryrefslogtreecommitdiff
path: root/lib/common/UnixUser.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common/UnixUser.h')
-rwxr-xr-xlib/common/UnixUser.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/common/UnixUser.h b/lib/common/UnixUser.h
new file mode 100755
index 00000000..c895eb2a
--- /dev/null
+++ b/lib/common/UnixUser.h
@@ -0,0 +1,37 @@
+// --------------------------------------------------------------------------
+//
+// File
+// Name: UnixUser.h
+// Purpose: Interface for managing the UNIX user of the current process
+// Created: 21/1/04
+//
+// --------------------------------------------------------------------------
+
+#ifndef UNIXUSER__H
+#define UNIXUSER__H
+
+class UnixUser
+{
+public:
+ UnixUser(const char *Username);
+ UnixUser(uid_t UID, gid_t GID);
+ ~UnixUser();
+private:
+ // no copying allowed
+ UnixUser(const UnixUser &);
+ UnixUser &operator=(const UnixUser &);
+public:
+
+ void ChangeProcessUser(bool Temporary = false);
+
+ uid_t GetUID() {return mUID;}
+ gid_t GetGID() {return mGID;}
+
+private:
+ uid_t mUID;
+ gid_t mGID;
+ bool mRevertOnDestruction;
+};
+
+#endif // UNIXUSER__H
+