Blob Blame History Raw
diff --git a/base/password.py b/base/password.py
index bd68f2a..bff9f80 100644
--- a/base/password.py
+++ b/base/password.py
@@ -157,6 +157,28 @@ class Password(object):
                 log.warn("%s distro is not found in AUTH_TYPES" % distro_name)
                 self.__authType = 'su'
 
+        # check if caller is in wheel group - use 'su' if he isnt -
+        # or if the caller is root (just for showing 'root' username)
+        # in the prompt
+        import os
+        from grp import getgrnam
+
+        user = os.getenv('USER')
+
+        try:
+            members = getgrnam('wheel').gr_mem
+        except KeyError:
+            try:
+                members = getgrnam('sudo').gr_mem
+            except:
+                return
+
+        if user in members:
+            self.__authType = 'sudo'
+        else:
+            self.__authType = 'su'
+
+
     def __getPasswordDisplayString(self):
         if self.__authType == "su":
             return "Please enter the root/superuser password: "