verifique os direitos de administrador dentro do script python

15

Como verificar se meu script python está sendo executado sob direitos de administrador (sudo) no sistema operacional semelhante ao BSD? Precisa exibir um aviso amigável para que seja executado sem direitos de administrador.

grigoryvp
fonte

Respostas:

37

Que tal agora? Verifique se 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
Kyle Brandt
fonte
1
Na verdade, eu o abreviei :-). Eu também uso aberto para autenticação do Linux, que cria um UID grande com hash do SID do Windows.
Kyle Brandt
3

Que tal esse:

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

Não fique tentado a combinar um nome de usuário com a string "root".

Geralmente, você precisará fornecer frases de destaque menos eficientes para obter a representação textual do UID ou dependerá de variáveis ​​de ambiente que podem não ser tão confiáveis.

Dan Carley
fonte