verifica os direitos de administrador dentro do script python

13

Como verificar se o meu script python está sendo executado sob direitos de administrador (sudo) sob um sistema operacional semelhante ao BSD? Precisa exibir um aviso de fácil utilização para que seja executado sem direitos de administrador.

    
por grigoryvp 01.06.2009 / 15:03

3 respostas

32

Que tal isso? 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
    
por 01.06.2009 / 15:09
3

Que tal um:

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

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

Geralmente, você terá que 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.

    
por 01.06.2009 / 15:47

Tags