Exemple #1
0
def is_win32user_an_admin():
    WHO_AM_I = "C:\\WINDOWS\\System32\\whoami.exe"
    if not os.path.exists(WHO_AM_I):
        import win32security
        import ntsecuritycon
        subAuths = ntsecuritycon.SECURITY_BUILTIN_DOMAIN_RID, \
            ntsecuritycon.DOMAIN_ALIAS_RID_ADMINS
        sidAdmins = win32security.SID(ntsecuritycon.SECURITY_NT_AUTHORITY,
                                      subAuths)
        return win32security.CheckTokenMembership(None, sidAdmins)
    else:
        import subprocess

        p = subprocess.Popen([WHO_AM_I, "/GROUPS", "/SID"],
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)
        if p.wait() != 0:
            p = subprocess.Popen([WHO_AM_I, "/GROUPS"],
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE)
            if p.wait() != 0:
                return False

        for line in p.stdout.readlines():
            if "S-1-5-32-544 " in line or "S-1-5-32-544\r\n" in line:
                return True

        return False
Exemple #2
0
def is_root():
    """Gets whether the current user is root"""
    if os.name == 'nt':
        sid = win32security.CreateWellKnownSid(win32security.WinLocalSystemSid,
                                               None)
        return win32security.CheckTokenMembership(None, sid)
    else:
        return os.geteuid() == 0
Exemple #3
0
def is_user_admin():
    # import ctypes
    # return ctypes.windll.shell32.IsUserAnAdmin() != 0
    import win32security

    WinBuiltinAdministratorsSid = 26  # not exported by win32security. according to WELL_KNOWN_SID_TYPE enumeration from http://msdn.microsoft.com/en-us/library/windows/desktop/aa379650%28v=vs.85%29.aspx
    admins = win32security.CreateWellKnownSid(WinBuiltinAdministratorsSid)

    return win32security.CheckTokenMembership(None, admins)
def is_admin():
    """@return: True if the current user is an 'Admin' whatever that
    means (root on Unix), otherwise False.

    Warning: The inner function fails unless you have Windows XP SP2 or
    higher. The failure causes a traceback to be printed and this
    function to return False.
    """

    import win32security
    # WARNING: requires Windows XP SP2 or higher!
    try:
        adminSid = win32security.CreateWellKnownSid(
            win32security.WinBuiltinAdministratorsSid, None)
        return win32security.CheckTokenMembership(None, adminSid)
    except:
        traceback.print_exc()
        print("Admin check failed, assuming not an admin.")
        return False
Exemple #5
0
def isUserAdmin():

    if os.name == 'nt':
        import ctypes
        import win32security
        # WARNING: requires Windows XP SP2 or higher!
        try:
            adminSid = win32security.CreateWellKnownSid(
                win32security.WinBuiltinAdministratorsSid, None)
            return win32security.CheckTokenMembership(None, adminSid)
            #return ctypes.windll.shell32.IsUserAnAdmin()
        except:
            traceback.print_exc()
            print("Admin check failed, assuming not an admin.")
            return False
    elif os.name == 'posix':
        # Check for root on Posix
        return os.getuid() == 0
    else:
        raise RuntimeError("Unsupported operating system for this module: %s" %
                           (os.name, ))