Назад | Перейти на главную страницу

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

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

Как насчет этого? Проверить, если 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

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

import os
username=os.system("whoami")
if username is not "root":
    print "You aren't root"
else:
    print "Hello, "+username

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

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