【发布时间】:2018-10-13 21:47:40
【问题描述】:
我想为 KDE 应用程序编写一些 Qt 代码,以区分用户是 root 用户还是用户使用 sudo 请求提升权限的时间,因此应用程序可以为每个用例显示不同的消息。检查uid == 0 会捕获这两种情况,但我如何区分它们呢?
【问题讨论】:
我想为 KDE 应用程序编写一些 Qt 代码,以区分用户是 root 用户还是用户使用 sudo 请求提升权限的时间,因此应用程序可以为每个用例显示不同的消息。检查uid == 0 会捕获这两种情况,但我如何区分它们呢?
【问题讨论】:
您可以使用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;
【讨论】: