我想为KDE应用编写一些Qt代码,以区分用户是root用户与用户使用sudo请求提升权限的时间,因此应用可以为每个用例显示不同的消息。检查uid == 0
会检查两种情况,但我如何区分它们?
答案 0 :(得分:3)
您可以使用QProcessEnvironment
class阅读SUDO_USER
环境变量:
QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment();
qDebug() << "USER : " << system_env.value("USER");
qDebug() << "SUDOER: " << system_env.value("SUDO_USER");
或#include <unistd.h>
并使用getlogin
:
std::cout << "LOGGED IN USER: " << getlogin() << std::endl;