В Python определение того, имеет ли текущий пользователь root-доступ или права администратора, является общим требованием. Цель этой статьи — предоставить вам несколько методов достижения этой цели, а также примеры кода. К концу этой статьи вы получите полное представление о различных подходах к проверке корневого доступа в Python.
Способ 1: использование модуля os
import os
def check_root():
return os.geteuid() == 0
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
Метод 2. Проверка платформы
import platform
def check_root():
return platform.system() == 'Linux' and os.geteuid() == 0
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
Метод 3. Использование модуля ctypes
import ctypes
def check_root():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
Метод 4. Проверка переменных среды
import os
def check_root():
return os.environ.get('USER') == 'root'
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
Метод 5. Использование модуля getpass
import getpass
def check_root():
return getpass.getuser() == 'root'
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
Метод 6. Использование модуля psutil
import psutil
def check_root():
return psutil.Process().is_running() and psutil.Process().uids().real == 0
if check_root():
print("Root access granted!")
else:
print("You do not have root access.")
В этой статье мы рассмотрели различные методы проверки root-доступа в Python. Используя модуль os, информацию о платформе, ctypes, переменные среды, модуль getpass и psutil, вы можете определить, имеет ли текущий пользователь права root или администратора. В зависимости от вашего конкретного варианта использования выберите метод, который лучше всего соответствует вашим потребностям.