Чтобы проверить, является ли пользователь администратором в Python, вы можете использовать различные методы в зависимости от контекста и операционной системы. Вот несколько возможных подходов:
Метод 1: метод, специфичный для Windows, с использованием ctypes и функции GetUserName():
import ctypes
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
print("User is an administrator.")
else:
print("User is not an administrator.")
Метод 2: метод, специфичный для Unix/Linux, с использованием модуля osи функции geteuid():
import os
def is_admin():
return os.geteuid() == 0
if is_admin():
print("User is an administrator.")
else:
print("User is not an administrator.")
Метод 3. Межплатформенный метод с использованием модуля subprocessи команды sudo:
import subprocess
def is_admin():
return subprocess.call(['sudo', '-n', 'true'], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL) == 0
if is_admin():
print("User is an administrator.")
else:
print("User is not an administrator.")
Обратите внимание, что для правильной работы этих методов могут потребоваться определенные привилегии или зависимости, поэтому обязательно используйте их правильно и обрабатывайте любые исключения, которые могут возникнуть.