我如何区分用户是root用户还是用户sudo&d。d

时间:2018-05-03 14:23:52

标签: c++ qt root sudo kde

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

1 个答案:

答案 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;