проверить права администратора внутри скрипта Python

15

Как проверить, что мой скрипт на python запущен с правами администратора (sudo) под BSD-подобной ОС? Необходимо отобразить предупреждение для пользователя, чтобы оно выполнялось без прав администратора.

grigoryvp
источник

Ответы:

37

Как насчет этого? Проверьте, если uid == 0:

[kbrandt@kbrandt-admin: ~] python -c 'import os; print os.getuid()'
196677

[kbrandt@kbrandt-admin: ~] sudo python -c 'import os; print os.getuid()'
0
Кайл Брандт
источник
1
Я фактически сократил это :-). Я также использую открытую аутентификацию для Linux, которая создает большой UID путем хеширования Windows SID.
Кайл Брандт
3

Как насчет этого:

import os
username=os.system("whoami")
if username is not "root":
    print "You aren't root"
else:
    print "Hello, "+username
Severe_admin
источник
2

Не поддавайтесь искушению сопоставить имя пользователя со строкой «root».

Как правило, вам придется либо предоставлять менее эффективные выноски для получения текстового представления UID, либо вы будете полагаться на переменные среды, которые могут быть не столь заслуживающими доверия.

Дэн Карли
источник