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


15

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

Ответы:


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

2

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.