Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何区分用户是root还是sudo';D_C++_Qt_Root_Sudo_Kde - Fatal编程技术网

C++ 如何区分用户是root还是sudo';D

C++ 如何区分用户是root还是sudo';D,c++,qt,root,sudo,kde,C++,Qt,Root,Sudo,Kde,我想为KDE应用程序编写一些Qt代码,区分用户是root用户时和用户使用sudo请求提升权限时,这样应用程序可以为每个用例显示不同的消息。检查uid==0会捕获这两种情况,但如何区分它们?您可以使用以下方法读取SUDO\u USER环境变量: QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment(); qDebug() << "USER : " << system_env.valu

我想为KDE应用程序编写一些Qt代码,区分用户是root用户时和用户使用sudo请求提升权限时,这样应用程序可以为每个用例显示不同的消息。检查
uid==0
会捕获这两种情况,但如何区分它们?

您可以使用以下方法读取
SUDO\u USER
环境变量:

QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment();
qDebug() << "USER  : " << system_env.value("USER");
qDebug() << "SUDOER: " << system_env.value("SUDO_USER");
std::cout << "LOGGED IN USER: " << getlogin() << std::endl;