2015-04-28 4 views
5

Ho un'applicazione Qt che deve essere eseguibile come sudo. In questo momento, ho uno script che dovrebbero eseguire per avviare il programma come sudo che aggiunge un argomento che controllo per assicurarsi che siano stati lanciati dallo script.Controllare se l'applicazione Qt C++ è in esecuzione come sudo

Questa tecnica funziona, ma in realtà non controlla se sudo, controlla solo che lo script l'abbia lanciato.

Qualche idea su come eseguire un test sudo più preciso?

+0

A meno che non sto equivoco qualcosa che non si può solo fare un controllo condizionale in base all'ID utente e continuare solo se l'utente è root? – Matt

+2

Deve essere eseguito usando 'sudo'? Qualche altro meccanismo per eseguirlo come root non è adeguato? – Barmar

+1

Cerca la manpage: man getuid –

risposta

0

Ancora una volta, grazie a tutti per l'aiuto. il

if (geteuid()) {NotSudoDialog *sw = new NotSudoDialog; sw->show();} 
else {MainWindow *kt = new MainWindow; kt->show(); } 

la tecnica funziona alla grande. Il mio "hacky" vede se hanno funzionato da script, ma è molto più elegante.

Per coloro che hanno a cuore, il programma deve essere eseguito come sudo perché fa le routine di hardware di basso livello e utilizza il GPIO sul Raspberry Pi