サードパーティのソリューションをインストールせずに、ユーザーがファイルシステムに対するroot / admin権限を持っているかどうかをテストするには、単純なWindows/Posixソリューションが必要でした。環境変数に依存する場合に脆弱性があることは理解していますが、それらは私の目的に適していました。このアプローチを拡張して、レジストリの読み取り/書き込みを行うことができる場合があります。
WinXP、WinVista、WineでPython 2.6/2.7を使用してこれをテストしました。これがPyton3.xおよび/またはWin7で機能しないことを誰かが知っている場合は、アドバイスしてください。ありがとう。
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)