controlla i diritti di amministratore all'interno dello script python


15

Come verificare che il mio script Python sia in esecuzione con i diritti di amministratore (sudo) in un sistema operativo simile a BSD? È necessario visualizzare un avviso intuitivo per essere eseguito senza diritti di amministratore.

Risposte:


37

Cosa ne pensi di questo? Verifica 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
In realtà l'ho abbreviato :-). Uso anche open per l'autenticazione Linux, che crea un UID di grandi dimensioni eseguendo l'hashing del SID di Windows.
Kyle Brandt,

3

Che ne dici di quello:

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

2

Non essere tentato di abbinare un nome utente alla stringa "root".

Generalmente dovrai fornire callout meno efficienti per ottenere la rappresentazione testuale dell'UID o farai affidamento su variabili di ambiente che potrebbero non essere così affidabili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.