def has_admin():
import os
if os.name == 'nt':
try:
# only windows users with admin privileges can read the C:\windows\temp
temp = os.listdir(os.sep.join([os.environ.get('SystemRoot','C:\\windows'),'temp']))
except:
return (os.environ['USERNAME'],False)
else:
return (os.environ['USERNAME'],True)
else:
if 'SUDO_USER' in os.environ and os.geteuid() == 0:
return (os.environ['SUDO_USER'],True)
else:
return (os.environ['USERNAME'],False)
这是一篇关于how to determine if an application requires elevated privileges的短文。
您可以使用pywin32或ctypes执行CreateProcess()调用。
我建议使用ctypes,因为它现在是python中的标准,这里有一个good example of using CreateProcess with ctypes。
使用pywin32时,应该可以使用以下方法…:
是的,pywin32似乎确实支持Python 3。
我需要一个简单的Windows/Posix解决方案来测试用户是否对文件系统具有根/管理员权限,而不需要安装第三方解决方案。我知道依赖环境变量时存在漏洞,但它们符合我的目的。可以扩展这种方法来读/写注册表。
我在WinXP、WinVista和Wine上用Python 2.6/2.7进行了测试。如果有人知道这对Pyton 3.x和/或Win7不起作用,请告知。谢谢。
相关问题 更多 >
编程相关推荐