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.

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

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.