s3:modules: Update getdate.y to work with newer bison versions
[samba.git] / source3 / lib / util_sec.c
index ac999e360d1b917ad05f994ddc68ff75e4cf465f..760f8b06906e7990852a721112658be2a055ee36 100644 (file)
@@ -60,8 +60,22 @@ void sec_init(void)
        static int initialized;
 
        if (!initialized) {
+
+#ifndef AUTOCONF_TEST
+               if (uid_wrapper_enabled()) {
+                       setenv("UID_WRAPPER_MYUID", "1", 1);
+               }
+#endif
+
                initial_uid = geteuid();
                initial_gid = getegid();
+
+#ifndef AUTOCONF_TEST
+               if (uid_wrapper_enabled()) {
+                       unsetenv("UID_WRAPPER_MYUID");
+               }
+#endif
+
                initialized = 1;
        }
 }
@@ -82,6 +96,26 @@ gid_t sec_initial_gid(void)
        return initial_gid;
 }
 
+/**
+ * @brief Check if we are running in root mode.
+ *
+ * @return If we samba root privileges it returns true, false otehrwise.
+ */
+bool root_mode(void)
+{
+       uid_t euid;
+
+       euid = geteuid();
+
+#ifndef AUTOCONF_TEST
+       if (uid_wrapper_enabled()) {
+               return (euid == initial_uid || euid == (uid_t)0);
+       }
+#endif
+
+       return (initial_uid == euid);
+}
+
 /****************************************************************************
 are we running in non-root mode?
 ****************************************************************************/