How to run QProcess as root?

I need to run gphoto2from a Qt program. I'm doing it:

QString gphotoProgram = "/usr/bin/gphoto2";
QStringList gphotoArguments;
gphotoArguments << "--capture-image";
QProcess *gphotoProcess = new QProcess(this);
gphotoProcess->start(gphotoProgram, gphotoArguments);

but it never enters the state Runningthis way, since it gphoto2usually requires administrator privileges to run on the command line.

How can I run this QProcesswith proper execute permissions gphoto2?

Edit: I definitely want the user to not enter a password, which means that gksudo, kdesudo or any other graphical solution is not a valid option for me.

+2
source share
4 answers

gphoto2 . , .

+2

sudo, "gksudo" :

QString gphotoProgram = "gksudo /usr/bin/gphoto2"

sudo-er, , root.

+1

PolicyKit QProcess sudo.

pkexec

QString gphotoProgram = "pkexec/usr/bin/gphoto2";

+1

Don't GNOME and KDE have their own sudo graphical shells? (I myself am Windows.) You can use QProcess to run "sudo" and let it take care of raising and subsequently starting gphoto.

0
source

Source: https://habr.com/ru/post/1691029/


All Articles