перевірити права адміністратора всередині сценарію 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.
Кайл Брандт


2

Не спокушайтесь співставити ім'я користувача з рядком "root".

Як правило, вам доведеться або надати менш ефективні описи, щоб отримати текстове подання UID, або ви будете покладатися на змінні середовища, які можуть бути не такими надійними.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.